From e93193585f50b3ea0aed3a072037343d74e10fce Mon Sep 17 00:00:00 2001 From: Guido Longoni Date: Wed, 5 Jul 2023 16:14:37 +0200 Subject: [PATCH] =?UTF-8?q?autoselect=5Fon=5Fsingleton=20=C3=A8=20ora=20co?= =?UTF-8?q?nnesso=20alle=20opzioni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- django/contatti_app/admin.py | 26 +------------------ django/contatti_app/drilldown_autocomplete.py | 6 +++-- 2 files changed, 5 insertions(+), 27 deletions(-) diff --git a/django/contatti_app/admin.py b/django/contatti_app/admin.py index 1825e26..51163a9 100644 --- a/django/contatti_app/admin.py +++ b/django/contatti_app/admin.py @@ -144,30 +144,6 @@ class RecapitoInline(StackedPolymorphicInline, DrillDownAutocompleteModelAdmin): class IndirizzoInline(StackedPolymorphicInline.Child, DrillDownAutocompleteModelAdmin): model = models.Indirizzo autocomplete_fields = ('dug','comune','cap','nazione',) - 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, - } - } class SedeInline(StackedPolymorphicInline.Child): model = models.Sede @@ -300,7 +276,7 @@ class IndirizzoAdmin(HiddenModel, DrillDownAutocompleteModelAdmin, RicercaOrdina 'reset_on_excluded': {}, 'reset_on_reset': {}, 'autoupdate_on_reset': False, - 'autoselect_on_singleton': False, + 'autoselect_on_singleton': True, 'included_only': False, }, 'comune': { diff --git a/django/contatti_app/drilldown_autocomplete.py b/django/contatti_app/drilldown_autocomplete.py index 62794b9..1050789 100644 --- a/django/contatti_app/drilldown_autocomplete.py +++ b/django/contatti_app/drilldown_autocomplete.py @@ -65,6 +65,7 @@ class DrillDownAutocompleteJsonView(AutocompleteJsonView): raise PermissionDenied from e self.remote_model = remote_model self.linkedfields = linkedfields + self.drilldown_field = drilldown_field self.drilldown_filter_data = { v: linkedfields[k] for k, v in drilldown_field['linked'].items() if k in linkedfields} @@ -75,11 +76,12 @@ class DrillDownAutocompleteJsonView(AutocompleteJsonView): qs = super().get_queryset() if getattr(self, 'drilldown_enabled', False): if hasattr(self, 'linkedfields'): - self.autoselect = False + if(self.drilldown_field['autoselect_on_singleton']): + self.autoselect = False drilldown_filter_conditions = Q(**self.drilldown_filter_data) qs = qs.annotate(ddok=Max(Case(When(drilldown_filter_conditions, then=Value( 1)), default=Value(0)))).order_by('-ddok', *qs.query.order_by) - if qs.filter(ddok=1).count() == 1: + if not getattr(self,'autoselect',True) and qs.filter(ddok=1).count() == 1: self.autoselect = True else: qs = qs.annotate(ddok=Value(1))