diff --git a/django/contatti_app/admin.py b/django/contatti_app/admin.py index 05453ac..4e7ffef 100644 --- a/django/contatti_app/admin.py +++ b/django/contatti_app/admin.py @@ -23,6 +23,10 @@ class AutocompleteAdmin(admin.ModelAdmin): js = ('admin/js/autocomplete_auto_focus.js', ) +class StackedInlineCollassati(AutocompleteAdmin): + class Media: + js = ('admin/js/stacked_inline_collassati.js',) + css = { 'all': ('admin/css/stacked_inline_collassati.css',)} class HiddenIfNotSuperuser(admin.ModelAdmin): @@ -142,7 +146,7 @@ class VoceContattoRubricaInline(StackedPolymorphicInline): @admin.register(models.PersonaFisica) -class PersonaFisicaAdmin(PolymorphicInlineSupportMixin, PolymorphicChildModelAdmin): +class PersonaFisicaAdmin(PolymorphicInlineSupportMixin, PolymorphicChildModelAdmin, StackedInlineCollassati): # resource = resources.PersonaFisicaResource # list_per_page = 15 # paginator = CachingPaginator @@ -154,7 +158,7 @@ class PersonaFisicaAdmin(PolymorphicInlineSupportMixin, PolymorphicChildModelAdm @admin.register(models.PersonaGiuridica) -class PersonaGiuridicaAdmin(PolymorphicInlineSupportMixin, PolymorphicChildModelAdmin): +class PersonaGiuridicaAdmin(PolymorphicInlineSupportMixin, PolymorphicChildModelAdmin, StackedInlineCollassati): # resource = resources.PersonaGiuridicaResource # list_per_page = 15 # paginator = CachingPaginator diff --git a/django/static/admin/css/stacked_inline_collassati.css b/django/static/admin/css/stacked_inline_collassati.css new file mode 100644 index 0000000..93a97dc --- /dev/null +++ b/django/static/admin/css/stacked_inline_collassati.css @@ -0,0 +1,6 @@ +.inline_label { + margin-left: 20px; + font-weight: normal; + font-size: 18px; +} + \ No newline at end of file diff --git a/django/static/admin/js/stacked_inline_collassati.js b/django/static/admin/js/stacked_inline_collassati.js new file mode 100644 index 0000000..83f09d1 --- /dev/null +++ b/django/static/admin/js/stacked_inline_collassati.js @@ -0,0 +1,13 @@ +function fieldset_from_h3(obj) { + return obj.parentNode.getElementsByTagName('fieldset')[0]; +} + +document.addEventListener("DOMContentLoaded", function (event) { + document + .querySelectorAll('div.inline-related:not(.empty-form) > h3') + .forEach(x => { + x.addEventListener("click", ev => fieldset_from_h3(ev.currentTarget).classList.toggle('hidden'), false); + x.style.cursor = "pointer"; + fieldset_from_h3(x).classList.add('hidden'); + }); +}); \ No newline at end of file