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