Features: 1) Add dynamic inclusion of autocomplete.js and corresponding i18n language script to admin media files.

Fixes: 1) None.

Extra: 1) Refactor `media` property structure for improved readability and maintainability.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-07-01 14:08:23 +03:00
parent 9ababbcfa2
commit ab33a7b0c8

View file

@ -272,14 +272,14 @@ class ProductAdmin(FieldsetsMixin, ActivationActionsMixin, ModelAdmin):
@property @property
def media(self): def media(self):
i18n_name = get_select2_language() base = super().media
i18n_file = (f"admin/js/vendor/select2/i18n/{i18n_name}.js",) if i18n_name else () lang = get_select2_language()
return super().media + forms.Media( i18n = (f"admin/js/vendor/select2/i18n/{lang}.js",) if lang else ()
extra = forms.Media(
js=( js=(
"admin/js/vendor/jquery/jquery.min.js",
"admin/js/vendor/select2/select2.full.min.js", "admin/js/vendor/select2/select2.full.min.js",
*i18n_file, *i18n,
"admin/js/jquery.init.js", "admin/js/autocomplete.js",
"admin/js/django_admin_list_filter.js", "admin/js/django_admin_list_filter.js",
), ),
css={ css={
@ -290,6 +290,7 @@ class ProductAdmin(FieldsetsMixin, ActivationActionsMixin, ModelAdmin):
), ),
}, },
) )
return base + extra
@register(ProductTag) @register(ProductTag)