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
- Attiva il virtualenv e installa i requisiti con
pip install -r requirements.txt. - Esegui le migrazioni:
python manage.py migrate scadenze. - 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.