++ elenco dei territori assegnati: pulsante Rientro su ogni riga
Porta alla registrazione del rientro e torna all'elenco (data-ritorno); solo con il permesso territori.return. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -234,6 +234,15 @@ Decisioni successive dell'utente (20 ottobre 2026):
|
||||
Gli attributi calcolati si chiamano `giacenza_giorni` e `in_priorita`
|
||||
(erano `home_giorni_giacenza` e `home_is_prioritario`, anche nel PDF).
|
||||
- "Il mio gruppo" mostra sotto il titolo nome e cognome del sorvegliante.
|
||||
|
||||
### Rientro dall'elenco dei territori assegnati (20 ottobre 2026)
|
||||
|
||||
Richiesta dell'utente ("un tasto che va alla registrazione", dallo screenshot
|
||||
della pagina *Assegna* con l'elenco filtrato per proclamatore): in
|
||||
`ElencoAssegnati` ogni riga ha **Rientro** (solo con `territori.return`), che
|
||||
apre la registrazione del rientro e, con `data-ritorno`, torna all'elenco.
|
||||
Anche le righe senza PDF lo hanno. L'elenco ha un tetto di peso per riga
|
||||
(`AssegnaPrestazioniTest`, 2,6 KB): il pulsante ci sta.
|
||||
- **Anche i membri si segnalano**: `Proclamatore::gruppo_etichetta`
|
||||
("Gruppo Zisa" / "Sorvegliante del gruppo Zisa") come badge nell'elenco
|
||||
(più il filtro *In un gruppo di servizio*, `filtroStato=gruppo`) e in testa
|
||||
|
||||
@@ -728,7 +728,8 @@ docker compose --profile dev up -d --build
|
||||
"Invia link" per riprendere. Anche dall'elenco dei territori assegnati si
|
||||
può copiare o condividere il link
|
||||
- L'elenco dei territori assegnati si carica subito dopo la pagina e si filtra
|
||||
nel browser, senza attese
|
||||
nel browser, senza attese; ogni territorio ha il pulsante **Rientro**, che
|
||||
porta alla registrazione del rientro e poi torna all'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"
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
@endif
|
||||
@if($pdfUrl)
|
||||
<div class="tm-assegnato-link" data-link data-id="{{ $a->id }}" data-messaggio="{{ $a->messaggioLink($pdfUrl) }}" data-titolo="Territorio N° {{ $a->territorio?->numero }}">
|
||||
{{-- Registra il rientro; finito, si torna qui (data-ritorno) --}}
|
||||
@can('territori.return')<x-btn data-ritorno variante="primary" dimensione="sm" :href="route('assegnazioni.rientra', $a)">Rientro</x-btn>@endcan
|
||||
<code x-on:click="window.getSelection().selectAllChildren($el)">{{ $pdfUrl }}</code>
|
||||
<x-btn variante="secondary" tono="tenue" dimensione="sm" icona class="tm-copia" x-on:click="copia($el)" title="Copia link" aria-label="Copia il link del PDF"><svg aria-hidden="true"><use href="#tm-i-copia"/></svg><svg aria-hidden="true"><use href="#tm-i-spunta"/></svg></x-btn>
|
||||
{{-- Condividi: menu di condivisione del telefono, solo dove il browser lo offre (elencoCercabile.condividi). --}}
|
||||
@@ -59,7 +61,10 @@
|
||||
<x-btn :variante="$a->link_sent ? 'primary' : 'secondary'" tono="tenue" dimensione="sm" wire:click="toggleLinkSent({{ $a->id }})" aria-pressed="{{ $a->link_sent ? 'true' : 'false' }}" title="{{ $a->link_sent ? 'Link inviato — clicca per annullare' : 'Segna come inviato' }}"><svg aria-hidden="true"><use href="{{ $a->link_sent ? '#tm-i-spunta' : '#tm-i-invio' }}"/></svg> {{ $a->link_sent ? 'Link inviato' : 'Non inviato' }}</x-btn>
|
||||
</div>
|
||||
@else
|
||||
<div class="tm-assegnato-link">
|
||||
@can('territori.return')<x-btn data-ritorno variante="primary" dimensione="sm" :href="route('assegnazioni.rientra', $a)">Rientro</x-btn>@endcan
|
||||
<p class="tm-assegnato-senza">Nessun PDF disponibile</p>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
@@ -260,4 +260,14 @@ class InvioLinkTest extends TestCase
|
||||
->get(route('territori.index'))
|
||||
->assertSee(route('piantine.editor', ['nuovo' => 1]), false);
|
||||
}
|
||||
|
||||
public function test_dall_elenco_degli_assegnati_si_va_al_rientro(): void
|
||||
{
|
||||
$this->assegna($this->mario(), $this->territorioConPdf('7'));
|
||||
$a = Assegnazione::sole();
|
||||
|
||||
Livewire::withoutLazyLoading()->actingAs($this->admin)->test(ElencoAssegnati::class)
|
||||
->assertSee('Rientro')
|
||||
->assertSee(route('assegnazioni.rientra', $a), false);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user