++ 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 <noreply@anthropic.com>
This commit is contained in:
Francesco Picone
2026-10-21 17:35:31 +02:00
parent 7904c96db8
commit 1da31ce600
4 changed files with 12 additions and 5 deletions

View File

@@ -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

View File

@@ -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();

View File

@@ -42,10 +42,13 @@
il metodo condiviso copia(): sono ~80 righe, ogni byte si
moltiplica. I pulsanti restano <x-btn> (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. --}}
<div wire:key="assegnato-{{ $a->id }}" data-cerca="{{ $cerca[$a->id] }}" x-show="corrisponde($el.dataset.cerca)" class="tm-assegnato">
<div class="tm-assegnato-testa">
<span><a data-ritorno href="{{ route('territori.show', $a->territorio_id) }}" class="tm-assegnato-numero">N° {{ $a->territorio?->numero }}</a> @if($a->territorio?->zona?->nome)<span class="tm-assegnato-zona">{{ $a->territorio->zona->nome }}</span>@endif @if($a->cartaceo)<span class="tm-cartaceo">cartaceo</span>@endif</span>
<span><a data-ritorno href="{{ route('territori.show', $a->territorio_id) }}" class="tm-assegnato-numero">N° {{ $a->territorio?->numero }}</a> @if($a->territorio?->zona?->nome)<span class="tm-assegnato-zona">{{ $a->territorio->zona->nome }}</span>@endif{!! $a->cartaceo ? ' <span class="tm-cartaceo">cartaceo</span>' : '' !!}</span>
<span class="tm-assegnato-info"><b>{{ $nome }}</b> · {{ $a->assigned_at->format('d/m/Y') }} · <span class="tm-assegnato-giorni {{ $a->giorni > 120 ? 'tm-g-tardi' : ($a->giorni > 90 ? 'tm-g-presto' : '') }}">{{ $a->giorni }}g</span></span>
</div>
@if($a->link_in_sospeso)

View File

@@ -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,
]);
}