+++fix: add thumbnail support for territori

This commit is contained in:
2026-04-08 09:32:07 +00:00
parent aac13522e5
commit 777f239c7a
43 changed files with 1957 additions and 12 deletions

View File

@@ -3,16 +3,19 @@
namespace App\Livewire\Assegnazioni;
use Livewire\Component;
use Livewire\Attributes\Computed;
use App\Models\Territorio;
use App\Models\Proclamatore;
use App\Models\Assegnazione;
use App\Models\AnnoTeocratico;
use Illuminate\Support\Facades\Storage;
class Assegna extends Component
{
public ?int $territorio_id = null;
public ?int $proclamatore_id = null;
public string $assigned_at = '';
public string $territorioSearch = '';
// Optional pre-selection from parent context
public ?int $preselectedTerritorioId = null;
@@ -80,10 +83,32 @@ class Assegna extends Component
return $this->redirect(route('territori.show', $territorio), navigate: true);
}
#[Computed]
public function selectedThumbnailUrl(): ?string
{
if (!$this->territorio_id) {
return null;
}
$t = Territorio::find($this->territorio_id);
return $t?->thumbnail_path ? Storage::url($t->thumbnail_path) : null;
}
public function render()
{
$territoriDisponibili = Territorio::where('attivo', true)
$territoriQuery = Territorio::where('attivo', true)
->whereDoesntHave('assegnazioni', fn($q) => $q->aperte())
->with(['zona', 'tipologia']);
if (trim($this->territorioSearch) !== '') {
$term = trim($this->territorioSearch);
$territoriQuery->where(function ($q) use ($term) {
$q->where('numero', 'like', "%{$term}%")
->orWhereHas('zona', fn($z) => $z->where('nome', 'like', "%{$term}%"))
->orWhereHas('tipologia', fn($t) => $t->where('nome', 'like', "%{$term}%"));
});
}
$territoriDisponibili = $territoriQuery
->orderBy('numero')
->get();