++ proclamatori senza email e telefono; il link si copia o si condivide

- Migrazione: tolte le colonne email e telefono dei proclamatori (vuote
  in produzione). Tolti da form, scheda, elenco, XML (un file vecchio si
  importa ignorandoli).
- Invio del link: solo "Copia link" e "Condividi…" (menu di condivisione
  del telefono, navigator.share): il destinatario lo sceglie chi usa
  l'app. Via WhatsApp diretto, canale email, notifica LinkTerritorio,
  componente x-whatsapp.
- Elenco assegnati: "Condividi" al posto di WhatsApp; a condivisione
  fatta il link risulta inviato.
- Informativa privacy, README, HANDOFF e test aggiornati.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Francesco Picone
2026-10-19 16:57:23 +02:00
parent 3000ca9939
commit 7384a4b39d
25 changed files with 436 additions and 674 deletions

View File

@@ -41,14 +41,14 @@ class AssegnaPrestazioniTest extends TestCase
$this->admin->assignRole('amministratore');
}
/** $n assegnazioni aperte, ognuna con PDF e un proclamatore con telefono. */
/** $n assegnazioni aperte, ognuna con PDF. */
private function assegnazioni(int $n): void
{
$zona = Zona::create(['nome' => 'Montepellegrino', 'attivo' => true]);
for ($i = 1; $i <= $n; $i++) {
Storage::disk('public')->put("territori-pdf/t{$i}.pdf", '%PDF-1.4');
$t = Territorio::create(['numero' => (string) $i, 'attivo' => true, 'zona_id' => $zona->id, 'pdf_path' => "territori-pdf/t{$i}.pdf"]);
$p = Proclamatore::create(['nome' => "Nicolò{$i}", 'cognome' => 'Rossi', 'attivo' => true, 'telefono' => '3331234567']);
$p = Proclamatore::create(['nome' => "Nicolò{$i}", 'cognome' => 'Rossi', 'attivo' => true]);
Assegnazione::create([
'territorio_id' => $t->id, 'proclamatore_id' => $p->id, 'anno_teocratico_id' => AnnoTeocratico::sole()->id,
'assigned_at' => now()->subDays($i), 'created_by' => $this->admin->id,