aggiunti campi autocomplete nei contatti

e bugfix polimorfismo
my-submodulepoetico
Guido Longoni 2023-06-20 22:41:01 +02:00
parent b2203ca938
commit 99c5be9439
1 changed files with 20 additions and 2 deletions

View File

@ -5,6 +5,7 @@ from django.core.cache import cache
from django.core.paginator import Paginator
from django.db.models import Case, Count, Value, When
from django.db.models.functions import Concat
from django.db.models import F
from import_export.admin import ImportExportModelAdmin
from polymorphic.admin import (PolymorphicChildModelAdmin,
PolymorphicChildModelFilter,
@ -88,7 +89,8 @@ class VoceContattoRubricaAdmin(ImportExportModelAdmin, PolymorphicParentModelAdm
# list_per_page = 15
# paginator = CachingPaginator
# show_full_result_count = False
child_models = (models.Indirizzo, models.Email, models.Telefono, models.Fax,)
base_model = models.VoceContattoRubrica
child_models = (models.Indirizzo, models.Email, models.Pec, models.Telefono, models.Fax,)
list_filter = (PolymorphicChildModelFilter,)
readonly_fields = ('descrizione','tipo',)
list_display = ('soggetto','descrizione','tipo',)
@ -98,9 +100,11 @@ class VoceContattoRubricaAdmin(ImportExportModelAdmin, PolymorphicParentModelAdm
def tipo(self, obj):
return getattr(obj,obj.polymorphic_ctype.model)._meta.verbose_name.title()
tipo.admin_order_field = '_tipo'
def get_queryset(self, request):
qs=super().get_queryset(request).prefetch_related('polymorphic_ctype')
qs=qs.annotate(_tipo=F('polymorphic_ctype__model'))
return qs
pass
@ -111,6 +115,8 @@ class TelefonoAdmin(HiddenModel, PolymorphicChildModelAdmin):
# list_per_page = 15
# paginator = CachingPaginator
# show_full_result_count = False
fields = ('soggetto','numero','interno','note',)
autocomplete_fields = ('soggetto',)
pass
@ -120,16 +126,22 @@ class EmailAdmin(HiddenModel, PolymorphicChildModelAdmin):
# list_per_page = 15
# paginator = CachingPaginator
# show_full_result_count = False
fields = ('soggetto','indirizzo_email','note',)
autocomplete_fields = ('soggetto',)
pass
class VoceContattoRubricaInline(StackedPolymorphicInline):
class IndirizzoInline(StackedPolymorphicInline.Child):
model = models.Indirizzo
autocomplete_fields = ('comune','cap',)
class EmailInline(StackedPolymorphicInline.Child):
model = models.Email
class PecInline(StackedPolymorphicInline.Child):
model = models.Pec
class TelefonoInline(StackedPolymorphicInline.Child):
model = models.Telefono
@ -140,6 +152,7 @@ class VoceContattoRubricaInline(StackedPolymorphicInline):
child_inlines = (
IndirizzoInline,
EmailInline,
PecInline,
TelefonoInline,
FaxInline,
)
@ -184,6 +197,8 @@ class FaxAdmin(HiddenModel, PolymorphicChildModelAdmin):
# list_per_page = 15
# paginator = CachingPaginator
# show_full_result_count = False
fields = ('soggetto','numero','note',)
autocomplete_fields = ('soggetto',)
pass
@ -193,6 +208,8 @@ class PecAdmin(ImportExportModelAdmin):
# list_per_page = 15
# paginator = CachingPaginator
# show_full_result_count = False
fields = ('soggetto','indirizzo_email','note',)
autocomplete_fields = ('soggetto',)
pass
@ -202,6 +219,7 @@ class SoggettoContattabileAdmin(PolymorphicParentModelAdmin):
# list_per_page = 15
# paginator = CachingPaginator
# show_full_result_count = False
base_model = models.SoggettoContattabile
child_models = (models.PersonaFisica, models.PersonaGiuridica,)
list_filter = (PolymorphicChildModelFilter,)
readonly_fields = ('descrizione','tipo',)