From 9646cc8b6ffa56a3c650ba25482fbf304951960c Mon Sep 17 00:00:00 2001 From: Guido Longoni Date: Fri, 7 Jul 2023 00:02:53 +0200 Subject: [PATCH] =?UTF-8?q?bugfix=20ora=20l'inline=20legge=20dall'inline?= =?UTF-8?q?=20e=20il=20modeladmin=20dal=20modeladmin.=20Inoltre=20ora=20no?= =?UTF-8?q?n=20uso=20pi=C3=B9=20=5Fregistry=20e=20ho=20dato=20un=20nome=20?= =?UTF-8?q?sensato=20alla=20classe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- django/contatti_app/admin.py | 8 ++++---- django/contatti_app/drilldown_autocomplete.py | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/django/contatti_app/admin.py b/django/contatti_app/admin.py index cb2e784..f63d03c 100644 --- a/django/contatti_app/admin.py +++ b/django/contatti_app/admin.py @@ -13,7 +13,7 @@ from django.core.paginator import Paginator from django.db.models import F from . import models -from .drilldown_autocomplete import DrillDownAutocompleteModelAdmin +from .drilldown_autocomplete import DrillDownAutocomplete # Modified version of a GIST I found in a SO thread # cfr. http://masnun.rocks/2017/03/20/django-admin-expensive-count-all-queries/ @@ -167,8 +167,8 @@ ddaf={ } } -class RecapitoInline(StackedPolymorphicInline, DrillDownAutocompleteModelAdmin): - class IndirizzoInline(StackedPolymorphicInline.Child, DrillDownAutocompleteModelAdmin): +class RecapitoInline(StackedPolymorphicInline, DrillDownAutocomplete): + class IndirizzoInline(StackedPolymorphicInline.Child, DrillDownAutocomplete): model = models.Indirizzo autocomplete_fields = ('dug','comune','cap','nazione',) drilldown_autocomplete_fields = ddaf @@ -284,7 +284,7 @@ class SoggettoContattabileAdmin(PolymorphicParentModelAdmin): @admin.register(models.Indirizzo) -class IndirizzoAdmin(HiddenModel, DrillDownAutocompleteModelAdmin, RicercaOrdinataMixin, AjaxAutocompleteListFilterModelAdmin, PolymorphicChildModelAdmin, AutocompleteAdmin): +class IndirizzoAdmin(HiddenModel, DrillDownAutocomplete, RicercaOrdinataMixin, AjaxAutocompleteListFilterModelAdmin, PolymorphicChildModelAdmin, AutocompleteAdmin): # resource = resources.IndirizzoResource # list_per_page = 15 # paginator = CachingPaginator diff --git a/django/contatti_app/drilldown_autocomplete.py b/django/contatti_app/drilldown_autocomplete.py index 409c51b..2bcd87d 100644 --- a/django/contatti_app/drilldown_autocomplete.py +++ b/django/contatti_app/drilldown_autocomplete.py @@ -13,6 +13,7 @@ from django.urls import path class DrillDownAutocompleteJsonView(AutocompleteJsonView): """Handle AutocompleteWidget's AJAX requests for data.""" + admin_context = None def process_request(self, request): """ @@ -42,8 +43,7 @@ class DrillDownAutocompleteJsonView(AutocompleteJsonView): model_name = request.GET["model_name"] source_model = apps.get_model(app_label, model_name) try: - drilldown_field = self.admin_site._registry[ - source_model].get_drilldown_autocomplete_fields(request)[source_field.name] + drilldown_field = self.admin_context.get_drilldown_autocomplete_fields(request)[source_field.name] filtered_by = set(drilldown_field['filtered_by']) except KeyError as e: raise PermissionDenied from e @@ -105,7 +105,7 @@ class DrillDownAutocompleteSelect(AutocompleteSelect, DrillDownAutocompleteMixin pass -class DrillDownAutocompleteModelAdmin(admin.options.BaseModelAdmin): +class DrillDownAutocomplete(admin.options.BaseModelAdmin): drilldown_autocomplete_fields = dict() class Media: @@ -166,7 +166,7 @@ class DrillDownAutocompleteModelAdmin(admin.options.BaseModelAdmin): return super().formfield_for_foreignkey(db_field, request, **kwargs) def drilldown_autocomplete_view(self, request): - return DrillDownAutocompleteJsonView.as_view(admin_site=self.admin_site)(request) + return DrillDownAutocompleteJsonView.as_view(admin_site=self.admin_site, admin_context=self)(request) def get_urls(self): def wrap(view, cacheable=False):