Files
diario_coversazioni/diario/admin.py
automationkriz d296353dcb Initial commit: Diario Conversazioni Olimpic Nastri
- Django 5.2 + PostgreSQL + Gunicorn
- Conversazioni, Obiettivi, Documenti PDF, Persone
- Commenti e aggiornamenti con modifica/eliminazione
- Agenda, ricerca live, giorni rimanenti scadenze
- Bootstrap 5 + HTMX + toast notifications
- Deploy: Nginx + Gunicorn + SSL
2026-04-05 14:48:22 +00:00

71 lines
2.1 KiB
Python

from django.contrib import admin
from .models import Conversazione, Obiettivo, AggiornamentoObiettivo, CommentoConversazione, Documento
class AggiornamentoInline(admin.TabularInline):
model = AggiornamentoObiettivo
extra = 0
readonly_fields = ('data',)
class CommentoConversazioneInline(admin.TabularInline):
model = CommentoConversazione
extra = 0
readonly_fields = ('data',)
class DocumentoInline(admin.TabularInline):
model = Documento
extra = 0
readonly_fields = ('data_caricamento',)
fk_name = 'conversazione'
class DocumentoObiettivoInline(admin.TabularInline):
model = Documento
extra = 0
readonly_fields = ('data_caricamento',)
fk_name = 'obiettivo'
@admin.register(Conversazione)
class ConversazioneAdmin(admin.ModelAdmin):
list_display = ('titolo', 'data', 'registrato_da')
list_filter = ('data', 'registrato_da')
search_fields = ('titolo', 'contenuto')
filter_horizontal = ('partecipanti',)
readonly_fields = ('data',)
inlines = [CommentoConversazioneInline, DocumentoInline]
@admin.register(Obiettivo)
class ObiettivoAdmin(admin.ModelAdmin):
list_display = ('titolo', 'tipo', 'stato', 'data_scadenza', 'creato_da')
list_filter = ('tipo', 'stato', 'assegnato_a')
search_fields = ('titolo', 'descrizione')
readonly_fields = ('data_creazione',)
inlines = [AggiornamentoInline, DocumentoObiettivoInline]
@admin.register(AggiornamentoObiettivo)
class AggiornamentoObiettivoAdmin(admin.ModelAdmin):
list_display = ('obiettivo', 'autore', 'data')
list_filter = ('autore', 'data')
readonly_fields = ('data',)
@admin.register(CommentoConversazione)
class CommentoConversazioneAdmin(admin.ModelAdmin):
list_display = ('conversazione', 'autore', 'data')
list_filter = ('autore', 'data')
readonly_fields = ('data',)
@admin.register(Documento)
class DocumentoAdmin(admin.ModelAdmin):
list_display = ('titolo', 'caricato_da', 'data_caricamento', 'conversazione', 'obiettivo')
list_filter = ('caricato_da', 'data_caricamento')
search_fields = ('titolo', 'descrizione')
readonly_fields = ('data_caricamento',)