diff --git a/HANDOFF.md b/HANDOFF.md index d3cadee..ba49d8a 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -235,6 +235,18 @@ Decisioni successive dell'utente (20 ottobre 2026): (erano `home_giorni_giacenza` e `home_is_prioritario`, anche nel PDF). - "Il mio gruppo" mostra sotto il titolo nome e cognome del sorvegliante. +### Assegna aperta dalla Home: senza l'elenco dei territori assegnati (20 ottobre 2026) + +Richiesta dell'utente: "quando provengo da un territorio dalla home, non +mostrare lo storico assegnazioni". Avevo capito la scheda del territorio e +ne avevo nascosto lo storico (commit `f1f3408`, poi annullato con un revert): +intendeva la pagina *Assegna* aperta da "Assegna →" della Home, e come +"storico" l'elenco "Territori Assegnati" sotto il modulo. Ora quel link porta +`?dalla_home=1` e `Assegna::$elencoNascosto` toglie `ElencoAssegnati` (che +così non si carica nemmeno). Dal menu o dalla scheda del territorio l'elenco +c'è come prima. Non si usa il `?da=` del ritorno per capirlo: si trasmette di +pagina in pagina. + ### Storico assegnazioni in linea (20 ottobre 2026) Richiesta dell'utente (screenshot della scheda territorio): le colonne dello @@ -248,13 +260,6 @@ non diventa una scheda). Ordine esplicito: anni dal più recente proclamatore la colonna Campagna ora dice "Sì — …" / "No" come in quella del territorio, e c'è il badge "via gruppo …". Test: `StoricoAssegnazioniTest`. -Poi, su richiesta dell'utente: **aperta dalla Home la scheda del territorio -non mostra lo storico**. I link della Home ("Da assegnare", "Da rientrare") -portano `?dalla_home=1` e `TerritorioShow::$storicoNascosto` salta anche la -query; resta "Mostra lo storico delle assegnazioni". Non si usa il `?da=` del -ritorno per capirlo: si trasmette di pagina in pagina, e un territorio aperto -da *Assegna* (a sua volta aperta dalla Home) sembrerebbe venire dalla Home. - ### Rientro dall'elenco dei territori assegnati (20 ottobre 2026) Richiesta dell'utente ("un tasto che va alla registrazione", dallo screenshot diff --git a/README.md b/README.md index 7ccc7d1..f12c739 100644 --- a/README.md +++ b/README.md @@ -700,9 +700,7 @@ docker compose --profile dev up -d --build - Badge di stato colorati e indicatore di priorità (manuale o automatica) - Dettaglio con visualizzatore PDF e storico assegnazioni per anno teocratico: una tabella sola con le colonne in linea, l'anno come riga di separazione, - dal più recente (lo stesso nella scheda del proclamatore). Aperta dalla - Home, la scheda non mostra lo storico ("Mostra lo storico delle - assegnazioni" lo apre) + dal più recente (lo stesso nella scheda del proclamatore) - Link PDF pubblico condivisibile, a scadenza configurabile - Soft delete con cestino (ripristino o eliminazione definitiva) - Import massivo di PDF da cartella o archivio ZIP, elaborato in background @@ -733,7 +731,8 @@ docker compose --profile dev up -d --build può copiare o condividere il link - L'elenco dei territori assegnati si carica subito dopo la pagina e si filtra nel browser, senza attese; ogni territorio ha il pulsante **Rientro**, che - porta alla registrazione del rientro e poi torna all'elenco + porta alla registrazione del rientro e poi torna all'elenco. Aperta da + "Assegna →" della Home, la pagina mostra solo il modulo, senza l'elenco - Rientro con calcolo automatico dei giorni - **Prompt campagna**: se il territorio era fuori durante una campagna viene chiesto se è stato percorso per la campagna; oltre la soglia "da rientrare" diff --git a/app/Livewire/Assegnazioni/Assegna.php b/app/Livewire/Assegnazioni/Assegna.php index 151d1eb..1e767ba 100644 --- a/app/Livewire/Assegnazioni/Assegna.php +++ b/app/Livewire/Assegnazioni/Assegna.php @@ -23,11 +23,19 @@ class Assegna extends Component // Optional pre-selection from parent context public ?int $preselectedTerritorioId = null; + /** + * Aperta da "Assegna →" della Home (?dalla_home=1, lo mette solo la Home) + * la pagina serve ad assegnare quel territorio: l'elenco dei territori + * assegnati sotto il modulo non si mostra (né si carica). + */ + public bool $elencoNascosto = false; + public function mount(?int $territorioId = null) { $this->preselectedTerritorioId = $territorioId; $this->territorio_id = $territorioId; $this->assigned_at = now()->format('Y-m-d'); + $this->elencoNascosto = request()->boolean('dalla_home'); // ?invia=: riprende l'invio di un link rimasto in sospeso (dalla // scheda del territorio). diff --git a/app/Livewire/Territori/TerritorioShow.php b/app/Livewire/Territori/TerritorioShow.php index 481d6c6..53192da 100644 --- a/app/Livewire/Territori/TerritorioShow.php +++ b/app/Livewire/Territori/TerritorioShow.php @@ -13,36 +13,21 @@ class TerritorioShow extends Component public Territorio $territorio; - /** - * Aperta dalla Home (?dalla_home=1, lo mettono solo i link della Home) la - * scheda non mostra lo storico delle assegnazioni: lì serve il territorio, - * non la sua storia. "Mostra lo storico" lo apre comunque. - */ - public bool $storicoNascosto = false; - public function mount(Territorio $territorio) { $this->territorio = $territorio->load(['zona', 'tipologia', 'assegnazioneCorrente.proclamatore', 'ultimaAssegnazione']); - $this->storicoNascosto = request()->boolean('dalla_home'); - } - - public function mostraStorico(): void - { - $this->storicoNascosto = false; } public function render() { - $assegnazioni = $this->storicoNascosto - ? collect() - : Assegnazione::where('territorio_id', $this->territorio->id) - ->with(['proclamatore', 'annoTeocratico', 'campagna', 'creatoDa', 'rientratoDa']) - ->orderByDesc('assigned_at') - ->orderByDesc('id') - ->get() - ->groupBy(fn($a) => $a->annoTeocratico->label) - // Dal più recente: gli anni ("2026-2027") si ordinano come testo. - ->sortKeysDesc(); + $assegnazioni = Assegnazione::where('territorio_id', $this->territorio->id) + ->with(['proclamatore', 'annoTeocratico', 'campagna', 'creatoDa', 'rientratoDa']) + ->orderByDesc('assigned_at') + ->orderByDesc('id') + ->get() + ->groupBy(fn($a) => $a->annoTeocratico->label) + // Dal più recente: gli anni ("2026-2027") si ordinano come testo. + ->sortKeysDesc(); return view('livewire.territori.territorio-show', [ 'activeAssignment' => $this->territorio->assegnazioneCorrente, diff --git a/resources/views/livewire/assegnazioni/assegna.blade.php b/resources/views/livewire/assegnazioni/assegna.blade.php index f885957..a0a7563 100644 --- a/resources/views/livewire/assegnazioni/assegna.blade.php +++ b/resources/views/livewire/assegnazioni/assegna.blade.php @@ -80,6 +80,9 @@ {{-- Elenco dei territori assegnati: componente a sé, caricato subito dopo la pagina (ElencoAssegnati, #[Lazy]). Le azioni del form non - lo ridisegnano. --}} + lo ridisegnano. Non c'è quando si arriva da "Assegna →" della Home + (Assegna::$elencoNascosto). --}} + @unless($elencoNascosto) + @endunless diff --git a/resources/views/livewire/home.blade.php b/resources/views/livewire/home.blade.php index d675b65..7077ac5 100644 --- a/resources/views/livewire/home.blade.php +++ b/resources/views/livewire/home.blade.php @@ -109,7 +109,7 @@
  • - N° {{ $t->numero }} + N° {{ $t->numero }} @if($t->in_priorita) ★ Prioritario @endif @@ -122,7 +122,7 @@

    @can('territori.assign') - Assegna → + Assegna → @endcan
  • @empty @@ -164,7 +164,7 @@ @php($assegnazioneCorrente = $t->assegnazioneCorrente)
  • - N° {{ $t->numero }} + N° {{ $t->numero }}

    {{ $assegnazioneCorrente?->proclamatore?->nome_completo }} — {{ $assegnazioneCorrente?->giorni }} gg diff --git a/resources/views/livewire/territori/territorio-show.blade.php b/resources/views/livewire/territori/territorio-show.blade.php index 0c790c2..a7a02b2 100644 --- a/resources/views/livewire/territori/territorio-show.blade.php +++ b/resources/views/livewire/territori/territorio-show.blade.php @@ -152,12 +152,7 @@

    @endif - {{-- Assignment history: non quando si arriva dalla Home (TerritorioShow::$storicoNascosto) --}} - @if($storicoNascosto) -
    - Mostra lo storico delle assegnazioni -
    - @else + {{-- Assignment history --}}
    @@ -218,5 +213,4 @@
    @endif
    - @endif
    diff --git a/tests/Feature/InvioLinkTest.php b/tests/Feature/InvioLinkTest.php index 83829e3..97c7539 100644 --- a/tests/Feature/InvioLinkTest.php +++ b/tests/Feature/InvioLinkTest.php @@ -261,6 +261,21 @@ class InvioLinkTest extends TestCase ->assertSee(route('piantine.editor', ['nuovo' => 1]), false); } + public function test_da_assegna_della_home_l_elenco_dei_territori_assegnati_non_c_e(): void + { + $t = $this->territorioConPdf('7'); + $daHome = route('assegnazioni.assegna', ['territorioId' => $t->id, 'dalla_home' => 1]); + + // "Assegna →" della Home porta il segnale... + $this->actingAs($this->admin)->get(route('dashboard'))->assertOk()->assertSee($daHome, false); + + // ...e Assegna non mostra (né carica) l'elenco dei territori assegnati. + $this->get($daHome)->assertOk()->assertDontSee('assegnazioni.elenco-assegnati', false); + // Aperta dal menu o dalla scheda del territorio, l'elenco c'è. + $this->get(route('assegnazioni.assegna'))->assertSee('assegnazioni.elenco-assegnati', false); + $this->get(route('assegnazioni.assegna', ['territorioId' => $t->id]))->assertSee('assegnazioni.elenco-assegnati', false); + } + public function test_dall_elenco_degli_assegnati_si_va_al_rientro(): void { $this->assegna($this->mario(), $this->territorioConPdf('7')); diff --git a/tests/Feature/StoricoAssegnazioniTest.php b/tests/Feature/StoricoAssegnazioniTest.php index 16d692e..42145a4 100644 --- a/tests/Feature/StoricoAssegnazioniTest.php +++ b/tests/Feature/StoricoAssegnazioniTest.php @@ -62,26 +62,6 @@ class StoricoAssegnazioniTest extends TestCase $this->assertSame(2, substr_count($html, 'tm-riga-gruppo')); } - public function test_aperta_dalla_home_la_scheda_del_territorio_non_mostra_lo_storico(): void - { - // La Home manda alla scheda con il segnale dalla_home. - $this->actingAs($this->admin)->get(route('dashboard'))->assertOk() - ->assertSee(route('territori.show', ['territorio' => $this->territorio, 'dalla_home' => 1]), false); - - $this->get(route('territori.show', ['territorio' => $this->territorio, 'dalla_home' => 1]))->assertOk() - ->assertDontSee('Storico Assegnazioni') - ->assertDontSee('Anno Teocratico') - ->assertSee('Mostra lo storico delle assegnazioni'); - - // Su richiesta si apre; aperta da altrove c'è sempre. - \Livewire\Livewire::actingAs($this->admin)->withQueryParams(['dalla_home' => 1]) - ->test(\App\Livewire\Territori\TerritorioShow::class, ['territorio' => $this->territorio]) - ->assertDontSee('Anno Teocratico') - ->call('mostraStorico') - ->assertSee('Anno Teocratico 2025-2026'); - $this->get(route('territori.show', $this->territorio))->assertSee('Storico Assegnazioni'); - } - public function test_nella_scheda_del_proclamatore_una_tabella_sola_dal_piu_recente(): void { $html = $this->actingAs($this->admin)->get(route('proclamatori.show', $this->proclamatore))->assertOk()