- 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
71 lines
2.1 KiB
Python
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',)
|
|
|