my-submodulepoetico
Guido Longoni 2023-07-03 13:24:31 +02:00
parent 3054cc6054
commit b58ac7ade9
6 changed files with 210 additions and 25 deletions

View File

@ -1,12 +1,5 @@
from dati_geo_app.admin import (AjaxAutocompleteListFilterModelAdmin, from dati_geo_app.admin import (AjaxAutocompleteListFilterModelAdmin,
RicercaOrdinataMixin) RicercaOrdinataMixin)
from django.contrib import admin
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 django.contrib.contenttypes.models import ContentType
from import_export.admin import ImportExportModelAdmin from import_export.admin import ImportExportModelAdmin
from polymorphic.admin import (PolymorphicChildModelAdmin, from polymorphic.admin import (PolymorphicChildModelAdmin,
PolymorphicChildModelFilter, PolymorphicChildModelFilter,
@ -14,7 +7,13 @@ from polymorphic.admin import (PolymorphicChildModelAdmin,
PolymorphicParentModelAdmin, PolymorphicParentModelAdmin,
StackedPolymorphicInline) StackedPolymorphicInline)
from . import models, resources from django.contrib import admin
from django.core.cache import cache
from django.core.paginator import Paginator
from django.db.models import F
from . import models
from .drilldown_autocomplete import DrillDownAutocompleteModelAdmin
# Modified version of a GIST I found in a SO thread # Modified version of a GIST I found in a SO thread
# cfr. http://masnun.rocks/2017/03/20/django-admin-expensive-count-all-queries/ # cfr. http://masnun.rocks/2017/03/20/django-admin-expensive-count-all-queries/
@ -25,7 +24,7 @@ class AutocompleteAdmin(admin.ModelAdmin):
js = ('admin/js/autocomplete_auto_focus.js', ) js = ('admin/js/autocomplete_auto_focus.js', )
class StackedInlineCollassati(AutocompleteAdmin): class StackedInlineCollassati(admin.ModelAdmin):
class Media: class Media:
js = ('admin/js/stacked_inline_collassati.js',) js = ('admin/js/stacked_inline_collassati.js',)
css = { 'all': ('admin/css/stacked_inline_collassati.css',)} css = { 'all': ('admin/css/stacked_inline_collassati.css',)}
@ -76,7 +75,7 @@ class CachingPaginator(Paginator):
@admin.register(models.ContattoAziendale) @admin.register(models.ContattoAziendale)
class ContattoAziendaleAdmin(ImportExportModelAdmin): class ContattoAziendaleAdmin(ImportExportModelAdmin, AutocompleteAdmin):
# resource = resources.ContattoAziendaleResource # resource = resources.ContattoAziendaleResource
# list_per_page = 15 # list_per_page = 15
# paginator = CachingPaginator # paginator = CachingPaginator
@ -118,7 +117,7 @@ class RecapitoAdmin(ImportExportModelAdmin, PolymorphicParentModelAdmin):
@admin.register(models.Telefono) @admin.register(models.Telefono)
class TelefonoAdmin(HiddenModel, PolymorphicChildModelAdmin): class TelefonoAdmin(HiddenModel, PolymorphicChildModelAdmin, AutocompleteAdmin):
# resource = resources.TelefonoResource # resource = resources.TelefonoResource
# list_per_page = 15 # list_per_page = 15
# paginator = CachingPaginator # paginator = CachingPaginator
@ -129,7 +128,7 @@ class TelefonoAdmin(HiddenModel, PolymorphicChildModelAdmin):
@admin.register(models.Email) @admin.register(models.Email)
class EmailAdmin(HiddenModel, PolymorphicParentModelAdmin, PolymorphicChildModelAdmin): class EmailAdmin(HiddenModel, PolymorphicParentModelAdmin, PolymorphicChildModelAdmin, AutocompleteAdmin):
# resource = resources.EmailResource # resource = resources.EmailResource
# list_per_page = 15 # list_per_page = 15
# paginator = CachingPaginator # paginator = CachingPaginator
@ -207,7 +206,6 @@ class PersonaFisicaAdmin(PolymorphicInlineSupportMixin, PolymorphicChildModelAdm
get_model_perms = lambda self, req: {} get_model_perms = lambda self, req: {}
search_fields = ('nome','cognome',) search_fields = ('nome','cognome',)
inlines = (RecapitoInline,) inlines = (RecapitoInline,)
pass
@admin.register(models.PersonaGiuridica) @admin.register(models.PersonaGiuridica)
@ -223,7 +221,7 @@ class PersonaGiuridicaAdmin(PolymorphicInlineSupportMixin, PolymorphicChildModel
@admin.register(models.Sede) @admin.register(models.Sede)
class SedeAdmin(ImportExportModelAdmin): class SedeAdmin(ImportExportModelAdmin, AutocompleteAdmin):
# resource = resources.SedeResource # resource = resources.SedeResource
# list_per_page = 15 # list_per_page = 15
# paginator = CachingPaginator # paginator = CachingPaginator
@ -234,7 +232,7 @@ class SedeAdmin(ImportExportModelAdmin):
@admin.register(models.Fax) @admin.register(models.Fax)
class FaxAdmin(HiddenModel, PolymorphicChildModelAdmin): class FaxAdmin(HiddenModel, PolymorphicChildModelAdmin, AutocompleteAdmin):
# resource = resources.FaxResource # resource = resources.FaxResource
# list_per_page = 15 # list_per_page = 15
# paginator = CachingPaginator # paginator = CachingPaginator
@ -245,7 +243,7 @@ class FaxAdmin(HiddenModel, PolymorphicChildModelAdmin):
@admin.register(models.Pec) @admin.register(models.Pec)
class PecAdmin(HiddenModel, PolymorphicChildModelAdmin): class PecAdmin(HiddenModel, PolymorphicChildModelAdmin, AutocompleteAdmin):
# resource = resources.PecResource # resource = resources.PecResource
# list_per_page = 15 # list_per_page = 15
# paginator = CachingPaginator # paginator = CachingPaginator
@ -282,7 +280,7 @@ class SoggettoContattabileAdmin(PolymorphicParentModelAdmin):
@admin.register(models.Indirizzo) @admin.register(models.Indirizzo)
class IndirizzoAdmin(HiddenModel, RicercaOrdinataMixin, AjaxAutocompleteListFilterModelAdmin, PolymorphicChildModelAdmin): class IndirizzoAdmin(HiddenModel, DrillDownAutocompleteModelAdmin, RicercaOrdinataMixin, AjaxAutocompleteListFilterModelAdmin, PolymorphicChildModelAdmin, AutocompleteAdmin):
# resource = resources.IndirizzoResource # resource = resources.IndirizzoResource
# list_per_page = 15 # list_per_page = 15
# paginator = CachingPaginator # paginator = CachingPaginator
@ -293,6 +291,30 @@ class IndirizzoAdmin(HiddenModel, RicercaOrdinataMixin, AjaxAutocompleteListFilt
fields=('soggetto','dug','duf','civico','cap','comune','altro',) fields=('soggetto','dug','duf','civico','cap','comune','altro',)
search_fields = ('soggetto','indirizzo','cap_id__exact',) search_fields = ('soggetto','indirizzo','cap_id__exact',)
autocomplete_fields = ('soggetto','dug','cap','comune',) autocomplete_fields = ('soggetto','dug','cap','comune',)
drilldown_autocomplete_fields = {
'cap': {
'linked': {
'comune': 'comuni',
},
'reset_on_included': {},
'reset_on_excluded': {},
'reset_on_reset': {},
'autoupdate_on_reset': False,
'autoselect_on_singleton': False,
'included_only': False,
},
'comune': {
'linked': {
'cap': 'cap',
},
'reset_on_included': {},
'reset_on_excluded': {},
'reset_on_reset': {},
'autoupdate_on_reset': False,
'autoselect_on_singleton': False,
'included_only': False,
}
}
list_display = ('soggetto','indirizzo', 'cap','comune','provincia','regione',) list_display = ('soggetto','indirizzo', 'cap','comune','provincia','regione',)
ordering = ('comune_id','duf','civico',) ordering = ('comune_id','duf','civico',)
autocomplete_list_filter = ('comune',) autocomplete_list_filter = ('comune',)
@ -321,15 +343,21 @@ class IndirizzoAdmin(HiddenModel, RicercaOrdinataMixin, AjaxAutocompleteListFilt
class SedeInline(admin.TabularInline): class SedeInline(admin.TabularInline):
model = models.Sede model = models.Sede
autocomplete_fields = ('comune','cap',) autocomplete_fields = ('dug','comune','cap','nazione','comune','cap',)
extra = 0
class PersonaInline(admin.TabularInline):
model = models.ContattoAziendale
autocomplete_fields = ('persona',)
extra = 0
@admin.register(models.Societa) @admin.register(models.Societa)
class SocietaAdmin(ImportExportModelAdmin): class SocietaAdmin(ImportExportModelAdmin, AutocompleteAdmin):
# resource = resources.SocietaResource # resource = resources.SocietaResource
# list_per_page = 15 # list_per_page = 15
# paginator = CachingPaginator # paginator = CachingPaginator
# show_full_result_count = False # show_full_result_count = False
inlines = (SedeInline,) inlines = (SedeInline,PersonaInline,)
search_fields = ('ragione_sociale',) search_fields = ('ragione_sociale',)
autocomplete_fields = ('soggetto','nazione',) autocomplete_fields = ('soggetto','nazione',)
pass pass

View File

@ -0,0 +1,16 @@
# Generated by Django 4.2.2 on 2023-07-03 11:24
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("contatti_app", "0002_alter_recapito_options"),
]
operations = [
migrations.AlterModelOptions(
name="societa",
options={"verbose_name": "società", "verbose_name_plural": "società"},
),
]

View File

@ -174,10 +174,10 @@ class ContattoAziendale(models.Model):
verbose_name_plural = 'Contatti aziendali' verbose_name_plural = 'Contatti aziendali'
def __str__(self): def __str__(self):
return f"ContattoAziendale (id: {self.id})" return f'{self.persona} per {self.azienda}'
azienda = models.ForeignKey(Societa, on_delete=models.CASCADE, null=False,
blank=False, related_name='contatti_azienda')
persona = models.ForeignKey(PersonaFisica, on_delete=models.CASCADE, null=False, persona = models.ForeignKey(PersonaFisica, on_delete=models.CASCADE, null=False,
blank=False, related_name='aziende_correlate') blank=False, related_name='aziende_correlate')
azienda = models.ForeignKey(Societa, on_delete=models.CASCADE, null=False,
blank=False, related_name='contatti_azienda')
is_personale = models.BooleanField(null=False, blank=False, default=True) is_personale = models.BooleanField(null=False, blank=False, default=True)

138
django/poetry.lock generated
View File

@ -298,6 +298,21 @@ url = "https://git.briq.it/Briq/django-admin-autocomplete-list-filter.git"
reference = "HEAD" reference = "HEAD"
resolved_reference = "2ff66842c267a7350e4688562f21109cfdb1d93f" resolved_reference = "2ff66842c267a7350e4688562f21109cfdb1d93f"
[[package]]
name = "django-admin-interface"
version = "0.26.0"
description = "django's default admin interface with superpowers - customizable themes, popup windows replaced by modals and many other features."
optional = false
python-versions = "*"
files = [
{file = "django-admin-interface-0.26.0.tar.gz", hash = "sha256:dff7aa2e3eeb6d3676255a92ad5ade9e93277292c01cf9ae27f470246d984019"},
{file = "django_admin_interface-0.26.0-py3-none-any.whl", hash = "sha256:f633bee7654eecbd120ef0ffcecc3b09b1aa1a553e5ba22c3e6504c02dc3c162"},
]
[package.dependencies]
django-colorfield = ">=0.8.0,<1.0.0"
python-slugify = ">=7.0.0,<9.0.0"
[[package]] [[package]]
name = "django-auto-prefetching" name = "django-auto-prefetching"
version = "0.2.12" version = "0.2.12"
@ -315,6 +330,20 @@ django = ">=2.2"
[package.extras] [package.extras]
rest-framework-integration = ["djangorestframework (>=3.9,<4.0)"] rest-framework-integration = ["djangorestframework (>=3.9,<4.0)"]
[[package]]
name = "django-colorfield"
version = "0.9.0"
description = "color field for django models with a nice color-picker in the admin."
optional = false
python-versions = "*"
files = [
{file = "django-colorfield-0.9.0.tar.gz", hash = "sha256:208e04dae669ed95f18c4aef02865e9c785873521ffbe5b46fb6ea7a1500c979"},
{file = "django_colorfield-0.9.0-py3-none-any.whl", hash = "sha256:7df5486de759dce70e54a1854f69bafd0a1e1bf98b66b09661d4d84342f447fc"},
]
[package.dependencies]
Pillow = ">=9.0.0"
[[package]] [[package]]
name = "django-cors-headers" name = "django-cors-headers"
version = "3.14.0" version = "3.14.0"
@ -796,6 +825,85 @@ files = [
{file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"},
] ]
[[package]]
name = "pillow"
version = "9.5.0"
description = "Python Imaging Library (Fork)"
optional = false
python-versions = ">=3.7"
files = [
{file = "Pillow-9.5.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:ace6ca218308447b9077c14ea4ef381ba0b67ee78d64046b3f19cf4e1139ad16"},
{file = "Pillow-9.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d3d403753c9d5adc04d4694d35cf0391f0f3d57c8e0030aac09d7678fa8030aa"},
{file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ba1b81ee69573fe7124881762bb4cd2e4b6ed9dd28c9c60a632902fe8db8b38"},
{file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe7e1c262d3392afcf5071df9afa574544f28eac825284596ac6db56e6d11062"},
{file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f36397bf3f7d7c6a3abdea815ecf6fd14e7fcd4418ab24bae01008d8d8ca15e"},
{file = "Pillow-9.5.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:252a03f1bdddce077eff2354c3861bf437c892fb1832f75ce813ee94347aa9b5"},
{file = "Pillow-9.5.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:85ec677246533e27770b0de5cf0f9d6e4ec0c212a1f89dfc941b64b21226009d"},
{file = "Pillow-9.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b416f03d37d27290cb93597335a2f85ed446731200705b22bb927405320de903"},
{file = "Pillow-9.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1781a624c229cb35a2ac31cc4a77e28cafc8900733a864870c49bfeedacd106a"},
{file = "Pillow-9.5.0-cp310-cp310-win32.whl", hash = "sha256:8507eda3cd0608a1f94f58c64817e83ec12fa93a9436938b191b80d9e4c0fc44"},
{file = "Pillow-9.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:d3c6b54e304c60c4181da1c9dadf83e4a54fd266a99c70ba646a9baa626819eb"},
{file = "Pillow-9.5.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:7ec6f6ce99dab90b52da21cf0dc519e21095e332ff3b399a357c187b1a5eee32"},
{file = "Pillow-9.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:560737e70cb9c6255d6dcba3de6578a9e2ec4b573659943a5e7e4af13f298f5c"},
{file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96e88745a55b88a7c64fa49bceff363a1a27d9a64e04019c2281049444a571e3"},
{file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d9c206c29b46cfd343ea7cdfe1232443072bbb270d6a46f59c259460db76779a"},
{file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cfcc2c53c06f2ccb8976fb5c71d448bdd0a07d26d8e07e321c103416444c7ad1"},
{file = "Pillow-9.5.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:a0f9bb6c80e6efcde93ffc51256d5cfb2155ff8f78292f074f60f9e70b942d99"},
{file = "Pillow-9.5.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8d935f924bbab8f0a9a28404422da8af4904e36d5c33fc6f677e4c4485515625"},
{file = "Pillow-9.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fed1e1cf6a42577953abbe8e6cf2fe2f566daebde7c34724ec8803c4c0cda579"},
{file = "Pillow-9.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c1170d6b195555644f0616fd6ed929dfcf6333b8675fcca044ae5ab110ded296"},
{file = "Pillow-9.5.0-cp311-cp311-win32.whl", hash = "sha256:54f7102ad31a3de5666827526e248c3530b3a33539dbda27c6843d19d72644ec"},
{file = "Pillow-9.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:cfa4561277f677ecf651e2b22dc43e8f5368b74a25a8f7d1d4a3a243e573f2d4"},
{file = "Pillow-9.5.0-cp311-cp311-win_arm64.whl", hash = "sha256:965e4a05ef364e7b973dd17fc765f42233415974d773e82144c9bbaaaea5d089"},
{file = "Pillow-9.5.0-cp312-cp312-win32.whl", hash = "sha256:22baf0c3cf0c7f26e82d6e1adf118027afb325e703922c8dfc1d5d0156bb2eeb"},
{file = "Pillow-9.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:432b975c009cf649420615388561c0ce7cc31ce9b2e374db659ee4f7d57a1f8b"},
{file = "Pillow-9.5.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:5d4ebf8e1db4441a55c509c4baa7a0587a0210f7cd25fcfe74dbbce7a4bd1906"},
{file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:375f6e5ee9620a271acb6820b3d1e94ffa8e741c0601db4c0c4d3cb0a9c224bf"},
{file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99eb6cafb6ba90e436684e08dad8be1637efb71c4f2180ee6b8f940739406e78"},
{file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dfaaf10b6172697b9bceb9a3bd7b951819d1ca339a5ef294d1f1ac6d7f63270"},
{file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:763782b2e03e45e2c77d7779875f4432e25121ef002a41829d8868700d119392"},
{file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:35f6e77122a0c0762268216315bf239cf52b88865bba522999dc38f1c52b9b47"},
{file = "Pillow-9.5.0-cp37-cp37m-win32.whl", hash = "sha256:aca1c196f407ec7cf04dcbb15d19a43c507a81f7ffc45b690899d6a76ac9fda7"},
{file = "Pillow-9.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322724c0032af6692456cd6ed554bb85f8149214d97398bb80613b04e33769f6"},
{file = "Pillow-9.5.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:a0aa9417994d91301056f3d0038af1199eb7adc86e646a36b9e050b06f526597"},
{file = "Pillow-9.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f8286396b351785801a976b1e85ea88e937712ee2c3ac653710a4a57a8da5d9c"},
{file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c830a02caeb789633863b466b9de10c015bded434deb3ec87c768e53752ad22a"},
{file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fbd359831c1657d69bb81f0db962905ee05e5e9451913b18b831febfe0519082"},
{file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8fc330c3370a81bbf3f88557097d1ea26cd8b019d6433aa59f71195f5ddebbf"},
{file = "Pillow-9.5.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:7002d0797a3e4193c7cdee3198d7c14f92c0836d6b4a3f3046a64bd1ce8df2bf"},
{file = "Pillow-9.5.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:229e2c79c00e85989a34b5981a2b67aa079fd08c903f0aaead522a1d68d79e51"},
{file = "Pillow-9.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9adf58f5d64e474bed00d69bcd86ec4bcaa4123bfa70a65ce72e424bfb88ed96"},
{file = "Pillow-9.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:662da1f3f89a302cc22faa9f14a262c2e3951f9dbc9617609a47521c69dd9f8f"},
{file = "Pillow-9.5.0-cp38-cp38-win32.whl", hash = "sha256:6608ff3bf781eee0cd14d0901a2b9cc3d3834516532e3bd673a0a204dc8615fc"},
{file = "Pillow-9.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:e49eb4e95ff6fd7c0c402508894b1ef0e01b99a44320ba7d8ecbabefddcc5569"},
{file = "Pillow-9.5.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:482877592e927fd263028c105b36272398e3e1be3269efda09f6ba21fd83ec66"},
{file = "Pillow-9.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3ded42b9ad70e5f1754fb7c2e2d6465a9c842e41d178f262e08b8c85ed8a1d8e"},
{file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c446d2245ba29820d405315083d55299a796695d747efceb5717a8b450324115"},
{file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8aca1152d93dcc27dc55395604dcfc55bed5f25ef4c98716a928bacba90d33a3"},
{file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:608488bdcbdb4ba7837461442b90ea6f3079397ddc968c31265c1e056964f1ef"},
{file = "Pillow-9.5.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:60037a8db8750e474af7ffc9faa9b5859e6c6d0a50e55c45576bf28be7419705"},
{file = "Pillow-9.5.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:07999f5834bdc404c442146942a2ecadd1cb6292f5229f4ed3b31e0a108746b1"},
{file = "Pillow-9.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a127ae76092974abfbfa38ca2d12cbeddcdeac0fb71f9627cc1135bedaf9d51a"},
{file = "Pillow-9.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:489f8389261e5ed43ac8ff7b453162af39c3e8abd730af8363587ba64bb2e865"},
{file = "Pillow-9.5.0-cp39-cp39-win32.whl", hash = "sha256:9b1af95c3a967bf1da94f253e56b6286b50af23392a886720f563c547e48e964"},
{file = "Pillow-9.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:77165c4a5e7d5a284f10a6efaa39a0ae8ba839da344f20b111d62cc932fa4e5d"},
{file = "Pillow-9.5.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:833b86a98e0ede388fa29363159c9b1a294b0905b5128baf01db683672f230f5"},
{file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aaf305d6d40bd9632198c766fb64f0c1a83ca5b667f16c1e79e1661ab5060140"},
{file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0852ddb76d85f127c135b6dd1f0bb88dbb9ee990d2cd9aa9e28526c93e794fba"},
{file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:91ec6fe47b5eb5a9968c79ad9ed78c342b1f97a091677ba0e012701add857829"},
{file = "Pillow-9.5.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:cb841572862f629b99725ebaec3287fc6d275be9b14443ea746c1dd325053cbd"},
{file = "Pillow-9.5.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:c380b27d041209b849ed246b111b7c166ba36d7933ec6e41175fd15ab9eb1572"},
{file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c9af5a3b406a50e313467e3565fc99929717f780164fe6fbb7704edba0cebbe"},
{file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5671583eab84af046a397d6d0ba25343c00cd50bce03787948e0fff01d4fd9b1"},
{file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:84a6f19ce086c1bf894644b43cd129702f781ba5751ca8572f08aa40ef0ab7b7"},
{file = "Pillow-9.5.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1e7723bd90ef94eda669a3c2c19d549874dd5badaeefabefd26053304abe5799"},
{file = "Pillow-9.5.0.tar.gz", hash = "sha256:bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1"},
]
[package.extras]
docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"]
tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"]
[[package]] [[package]]
name = "platformdirs" name = "platformdirs"
version = "3.6.0" version = "3.6.0"
@ -897,6 +1005,23 @@ files = [
[package.extras] [package.extras]
cli = ["click (>=5.0)"] cli = ["click (>=5.0)"]
[[package]]
name = "python-slugify"
version = "8.0.1"
description = "A Python slugify application that also handles Unicode"
optional = false
python-versions = ">=3.7"
files = [
{file = "python-slugify-8.0.1.tar.gz", hash = "sha256:ce0d46ddb668b3be82f4ed5e503dbc33dd815d83e2eb6824211310d3fb172a27"},
{file = "python_slugify-8.0.1-py2.py3-none-any.whl", hash = "sha256:70ca6ea68fe63ecc8fa4fcf00ae651fc8a5d02d93dcd12ae6d4fc7ca46c4d395"},
]
[package.dependencies]
text-unidecode = ">=1.3"
[package.extras]
unidecode = ["Unidecode (>=1.1.1)"]
[[package]] [[package]]
name = "pytoolconfig" name = "pytoolconfig"
version = "1.2.5" version = "1.2.5"
@ -1071,6 +1196,17 @@ xls = ["xlrd", "xlwt"]
xlsx = ["openpyxl (>=2.6.0)"] xlsx = ["openpyxl (>=2.6.0)"]
yaml = ["pyyaml"] yaml = ["pyyaml"]
[[package]]
name = "text-unidecode"
version = "1.3"
description = "The most basic Text::Unidecode port"
optional = false
python-versions = "*"
files = [
{file = "text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93"},
{file = "text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8"},
]
[[package]] [[package]]
name = "tomli" name = "tomli"
version = "2.0.1" version = "2.0.1"
@ -1480,4 +1616,4 @@ cffi = ["cffi (>=1.11)"]
[metadata] [metadata]
lock-version = "2.0" lock-version = "2.0"
python-versions = "^3.10" python-versions = "^3.10"
content-hash = "710e5716f756b259532242c53960cf05204aba73665c3e1b050fe74d21539f1c" content-hash = "9f3ed6d79cd9a9da7790187e80248acfc9e6a3bde4ecf57b43c9b9666d811bf9"

View File

@ -21,6 +21,7 @@ django-ordered-model = "^3.6"
django-auto-prefetching = "^0.2.12" django-auto-prefetching = "^0.2.12"
django-polymorphic = "^3.1.0" django-polymorphic = "^3.1.0"
django-admin-autocomplete-list-filter = {git = "https://git.briq.it/Briq/django-admin-autocomplete-list-filter.git"} django-admin-autocomplete-list-filter = {git = "https://git.briq.it/Briq/django-admin-autocomplete-list-filter.git"}
django-admin-interface = "^0.26.0"
[tool.poetry.group.dev.dependencies] [tool.poetry.group.dev.dependencies]
nuitka = "^1.4.4" nuitka = "^1.4.4"

View File

@ -141,6 +141,8 @@ INSTALLED_APPS = [
'dati_geo_app.apps.DatiGeograficiAppConfig', 'dati_geo_app.apps.DatiGeograficiAppConfig',
'djaa_list_filter', 'djaa_list_filter',
'rest_framework', 'rest_framework',
'admin_interface',
'colorfield',
# 'rest_framework.authtoken', # 'rest_framework.authtoken',
'corsheaders', 'corsheaders',
'drf_yasg', 'drf_yasg',
@ -271,7 +273,7 @@ SECRET_KEY = (os.getenv('SECRET_KEY')
tristate_env_flag('SECURE_SSL_REDIRECT') tristate_env_flag('SECURE_SSL_REDIRECT')
tristate_env_flag('SESSION_COOKIE_SECURE') tristate_env_flag('SESSION_COOKIE_SECURE')
# SILENCED_SYSTEM_CHECKS = ['security.W019'] # Per la modale di Django Admin interface SILENCED_SYSTEM_CHECKS = ['security.W019'] # Per la modale di Django Admin interface
# SILKY_ANALYZE_QUERIES = # SILKY_ANALYZE_QUERIES =
# SILKY_AUTHENTICATION = # SILKY_AUTHENTICATION =
@ -319,3 +321,5 @@ USE_I18N = True
USE_L10N = True USE_L10N = True
USE_TZ = True USE_TZ = True
X_FRAME_OPTIONS = "SAMEORIGIN"