From 1da31ce600a8fc6b6defa4123bba22abb02eebcc Mon Sep 17 00:00:00 2001 From: Francesco Picone Date: Wed, 21 Oct 2026 17:35:31 +0200 Subject: [PATCH] ++ Richieste: ordine dei nomi simili, etichetta cartaceo senza blocco if, dati dei test - nomiSimili: sortBy con una closure la usa come comparatore, non come chiave; ora sort() con confronto esplicito (punteggio, poi alfabetico) - elenco degli assegnati: l'etichetta "cartaceo" come espressione, senza i segnaposto di Livewire attorno a @if (58 byte a riga) - RichiesteTest: created_by sulle assegnazioni di prova Co-Authored-By: Claude Opus 5.5 --- HANDOFF.md | 6 ++++-- app/Services/RichiesteServizio.php | 3 ++- .../views/livewire/assegnazioni/elenco-assegnati.blade.php | 7 +++++-- tests/Feature/RichiesteTest.php | 1 + 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/HANDOFF.md b/HANDOFF.md index f59db61..c9e1872 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -107,8 +107,10 @@ Dal documento `_ARCHIVE/ATTIVITA sviluppo Territori Manager 2.0.docx` cancella (passo "Richieste" di `ResetApplication`, ora 12 passi). - **Cartaceo sull'assegnazione** (scelta dell'utente: "va sull'assegnazione"): spunta su *Assegna* e in "Il mio gruppo" (`GruppiServizio::assegna(..., - cartaceo:)`), etichetta "cartaceo" nell'elenco degli assegnati (solo dove è - vera: la riga resta sotto i 2,6 KB) e in "Il mio gruppo", pagina + cartaceo:)`), etichetta "cartaceo" nell'elenco degli assegnati e in "Il mio + gruppo". Nell'elenco è un'espressione, non un blocco `@if`: Livewire mette + due commenti segnaposto attorno a ogni `@if`, 58 byte a riga anche quando è + falso, e la riga superava i 2,6 KB del test di peso. Pagina **Cartacei** (`assegnazioni/cartacei`, `territori.assign`, voce di menu sotto *Assegnazioni*) con i territori cartacei fuori. Passa per l'XML. - **S-13 per email**: `registro:invia-s13 {--anno=}` manda diff --git a/app/Services/RichiesteServizio.php b/app/Services/RichiesteServizio.php index 1a79aee..dfb4ba1 100644 --- a/app/Services/RichiesteServizio.php +++ b/app/Services/RichiesteServizio.php @@ -106,7 +106,8 @@ class RichiesteServizio return [$p, $punti]; }) ->filter(fn ($coppia) => $coppia[1] >= 2) - ->sortBy([[fn ($coppia) => $coppia[1], 'desc'], [fn ($coppia) => mb_strtolower($coppia[0]->nome_completo), 'asc']]) + // Prima il punteggio più alto, a pari punti in ordine alfabetico. + ->sort(fn ($a, $b) => [$b[1], mb_strtolower($a[0]->nome_completo)] <=> [$a[1], mb_strtolower($b[0]->nome_completo)]) ->take($quanti) ->map(fn ($coppia) => $coppia[0]) ->values(); diff --git a/resources/views/livewire/assegnazioni/elenco-assegnati.blade.php b/resources/views/livewire/assegnazioni/elenco-assegnati.blade.php index edbab40..3a1ab8d 100644 --- a/resources/views/livewire/assegnazioni/elenco-assegnati.blade.php +++ b/resources/views/livewire/assegnazioni/elenco-assegnati.blade.php @@ -42,10 +42,13 @@ il metodo condiviso copia(): sono ~80 righe, ogni byte si moltiplica. I pulsanti restano (StileUnificatoTest). "Rientro" porta alla registrazione del rientro e torna qui - (data-ritorno); indirizzo relativo e niente a capo: pesa meno. --}} + (data-ritorno); indirizzo relativo e niente a capo: pesa meno. + L'etichetta "cartaceo" è un'espressione e non un blocco if: + Livewire circonda ogni if con due commenti segnaposto (58 byte + a riga, anche quando è falso). Il testo è fisso, niente dati. --}}
- N° {{ $a->territorio?->numero }} @if($a->territorio?->zona?->nome){{ $a->territorio->zona->nome }}@endif @if($a->cartaceo)cartaceo@endif + N° {{ $a->territorio?->numero }} @if($a->territorio?->zona?->nome){{ $a->territorio->zona->nome }}@endif{!! $a->cartaceo ? ' cartaceo' : '' !!} {{ $nome }} · {{ $a->assigned_at->format('d/m/Y') }} · {{ $a->giorni }}g
@if($a->link_in_sospeso) diff --git a/tests/Feature/RichiesteTest.php b/tests/Feature/RichiesteTest.php index 2f9ada1..05a38f1 100644 --- a/tests/Feature/RichiesteTest.php +++ b/tests/Feature/RichiesteTest.php @@ -81,6 +81,7 @@ class RichiesteTest extends TestCase 'proclamatore_id' => $p->id, 'anno_teocratico_id' => AnnoTeocratico::perData(Carbon::parse($dal))->id, 'assigned_at' => $dal, + 'created_by' => $this->admin->id, 'cartaceo' => $cartaceo, ]); }