From 2c214342f0927875c10d8adf2deec1b2a08a5976 Mon Sep 17 00:00:00 2001 From: Guido Longoni Date: Tue, 4 Jul 2023 09:19:44 +0200 Subject: [PATCH] autocomplete bugfix eliminato crosstalk negli inline --- django/contatti_app/admin.py | 6 +++--- django/static/admin/js/autocomplete.js | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/django/contatti_app/admin.py b/django/contatti_app/admin.py index 02eae3b..1825e26 100644 --- a/django/contatti_app/admin.py +++ b/django/contatti_app/admin.py @@ -140,7 +140,7 @@ class EmailAdmin(HiddenModel, PolymorphicParentModelAdmin, PolymorphicChildModel pass -class RecapitoInline(StackedPolymorphicInline): +class RecapitoInline(StackedPolymorphicInline, DrillDownAutocompleteModelAdmin): class IndirizzoInline(StackedPolymorphicInline.Child, DrillDownAutocompleteModelAdmin): model = models.Indirizzo autocomplete_fields = ('dug','comune','cap','nazione',) @@ -197,7 +197,7 @@ class RecapitoInline(StackedPolymorphicInline): @admin.register(models.PersonaFisica) -class PersonaFisicaAdmin(PolymorphicInlineSupportMixin, PolymorphicChildModelAdmin, StackedInlineCollassati): +class PersonaFisicaAdmin(PolymorphicInlineSupportMixin, PolymorphicChildModelAdmin, StackedInlineCollassati,AutocompleteAdmin): # resource = resources.PersonaFisicaResource # list_per_page = 15 # paginator = CachingPaginator @@ -209,7 +209,7 @@ class PersonaFisicaAdmin(PolymorphicInlineSupportMixin, PolymorphicChildModelAdm @admin.register(models.PersonaGiuridica) -class PersonaGiuridicaAdmin(PolymorphicInlineSupportMixin, PolymorphicChildModelAdmin, StackedInlineCollassati): +class PersonaGiuridicaAdmin(PolymorphicInlineSupportMixin, PolymorphicChildModelAdmin, StackedInlineCollassati,AutocompleteAdmin): # resource = resources.PersonaGiuridicaResource # list_per_page = 15 # paginator = CachingPaginator diff --git a/django/static/admin/js/autocomplete.js b/django/static/admin/js/autocomplete.js index b68d366..a7cc934 100644 --- a/django/static/admin/js/autocomplete.js +++ b/django/static/admin/js/autocomplete.js @@ -20,11 +20,12 @@ var some_obj = false; for (var i in linkedfields) { if (linkedfields.hasOwnProperty(i)) { - var field = linkedfields[i]; - var value = document.querySelectorAll('[data-field-name=' + field + '].admin-autocomplete')[0].value; + var remote_field = linkedfields[i]; + var remote_id = element.dataset.select2Id.split('-' + element.dataset.fieldName)[0] + '-' + remote_field; + var value = document.querySelectorAll('[data-select2-id=' + remote_id +'].admin-autocomplete')[0].value; if (value !== '') { //console.log(field + '=' + value); - linkedfields_obj[field] = value; + linkedfields_obj[remote_field] = value; some_obj = true; } }