App Scadenze – Percorso per principianti

Questa guida riassume i passaggi fondamentali per usare e personalizzare la nuova app Scadenze, con esempi pratici lato backend e frontend. La versione estesa è in docs/guida_scadenze_principianti.md.

1. Setup rapido

  1. Attiva il virtualenv e installa i requisiti con pip install -r requirements.txt.
  2. Esegui le migrazioni: python manage.py migrate scadenze.
  3. Crea un superuser (python manage.py createsuperuser) e accedi all'admin per inserire le prime scadenze.

2. Backend essenziale

File chiave:

  • scadenze/models.py: modelli Scadenza, ScadenzaOccorrenza, log e webhook.
  • scadenze/services.py: generatori di occorrenze, dispatcher alert, sincronizzazione Google.
  • scadenze/forms.py: form principali con Select2 e label descrittive per collegare pratiche/fascicoli/documenti.
  • scadenze/views.py: viste CRUD, generazione massiva e trigger manuale.

Esempio: creare tre occorrenze via shell

from django.utils import timezone
from scadenze.models import Scadenza
from scadenze.services import OccurrenceGenerator

scad = Scadenza.objects.create(titolo="Verifica trimestrale")
OccurrenceGenerator(scad).generate(
    start=timezone.now(),
    count=3,
    metodo_alert="email",
    alert_config={"destinatari": "team@example.com"},
)

Esegui i test dedicati con python manage.py test scadenze.

3. Frontend e UX

  • scadenze/templates/scadenze/home.html: panoramica scadenze con filtri.
  • scadenze/templates/scadenze/detail.html: occorrenze, log e azioni rapide.
  • scadenze/templates/scadenze/form.html: form intuitivo con riepilogo selezioni M2M.

Snippet per mostrare scadenze imminenti in un'altra pagina:

{% if scadenze %}
  <ul class="list">
    {% for occ, url in scadenze %}
      <li>
        {{ occ.inizio|date:"d/m/Y H:i" }} ·
        <a href="{{ url }}">{{ occ.scadenza.titolo }}</a>
      </li>
    {% endfor %}
  </ul>
{% endif %}

Per personalizzare lo stile aggiungi CSS in static/scadenze/ e includilo tramite il tag static nel template.

4. Checklist prima del deploy

  • Migrazioni complete (python manage.py migrate scadenze).
  • Credenziali Google (se usi Calendar) impostate in settings.py.
  • Test verdi (python manage.py test scadenze).
  • Documentazione aggiornata in docs/.

Per estendere la guida consulta la versione integrale nel repository.