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
This commit is contained in:
70
diario/admin.py
Normal file
70
diario/admin.py
Normal file
@@ -0,0 +1,70 @@
|
||||
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',)
|
||||
|
||||
Reference in New Issue
Block a user