from django.contrib import admin from .models import Conversazione, Obiettivo, AggiornamentoObiettivo, CommentoConversazione, Documento, Tag, Appuntamento 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', 'tags') search_fields = ('titolo', 'contenuto') filter_horizontal = ('partecipanti', 'tags') 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',) @admin.register(Tag) class TagAdmin(admin.ModelAdmin): list_display = ('nome', 'colore') search_fields = ('nome',) class AppuntamentoPartecipantiInline(admin.TabularInline): model = Appuntamento.partecipanti.through extra = 0 @admin.register(Appuntamento) class AppuntamentoAdmin(admin.ModelAdmin): list_display = ('titolo', 'data_ora', 'luogo', 'creato_da', 'conversazione') list_filter = ('data_ora', 'creato_da') search_fields = ('titolo', 'note', 'luogo') filter_horizontal = ('partecipanti',) readonly_fields = ('data_creazione',)