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