Features: 1) Add custom media property to ProductAdmin for enhanced select2 functionality and styling;
Fixes: 1) Replace `DALFModelAdmin` with `ModelAdmin` in `ProductAdmin` class; 2) Remove invalid use of `DALFChoicesField` for `list_filter` in `ProductAdmin`; Extra: 1) Add missing import for `forms` and `get_select2_language`; 2) General cleanup and refactoring of `ProductAdmin` class.
This commit is contained in:
parent
9cb62295b2
commit
9ababbcfa2
1 changed files with 29 additions and 6 deletions
|
|
@ -2,9 +2,11 @@ from contextlib import suppress
|
||||||
|
|
||||||
from constance.admin import Config
|
from constance.admin import Config
|
||||||
from constance.admin import ConstanceAdmin as BaseConstanceAdmin
|
from constance.admin import ConstanceAdmin as BaseConstanceAdmin
|
||||||
from dalf.admin import DALFChoicesField, DALFModelAdmin, DALFRelatedFieldAjax, DALFRelatedOnlyField
|
from dalf.admin import DALFRelatedFieldAjax, DALFRelatedOnlyField
|
||||||
|
from django import forms
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
from django.contrib.admin import ModelAdmin, TabularInline, action, register, site
|
from django.contrib.admin import ModelAdmin, TabularInline, action, register, site
|
||||||
|
from django.contrib.admin.widgets import get_select2_language
|
||||||
from django.contrib.gis.admin import GISModelAdmin
|
from django.contrib.gis.admin import GISModelAdmin
|
||||||
from django.db.models import Model
|
from django.db.models import Model
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
@ -231,7 +233,7 @@ class BrandAdmin(FieldsetsMixin, ActivationActionsMixin, ModelAdmin):
|
||||||
|
|
||||||
|
|
||||||
@register(Product)
|
@register(Product)
|
||||||
class ProductAdmin(FieldsetsMixin, ActivationActionsMixin, DALFModelAdmin):
|
class ProductAdmin(FieldsetsMixin, ActivationActionsMixin, ModelAdmin):
|
||||||
model = Product # type: ignore
|
model = Product # type: ignore
|
||||||
list_display = (
|
list_display = (
|
||||||
"name",
|
"name",
|
||||||
|
|
@ -244,14 +246,14 @@ class ProductAdmin(FieldsetsMixin, ActivationActionsMixin, DALFModelAdmin):
|
||||||
"modified",
|
"modified",
|
||||||
)
|
)
|
||||||
list_filter = (
|
list_filter = (
|
||||||
("is_active", DALFChoicesField),
|
"is_active",
|
||||||
("is_digital", DALFChoicesField),
|
"is_digital",
|
||||||
("brand", DALFRelatedFieldAjax),
|
("brand", DALFRelatedFieldAjax),
|
||||||
("category", DALFRelatedFieldAjax),
|
("category", DALFRelatedFieldAjax),
|
||||||
("tags", DALFRelatedFieldAjax),
|
("tags", DALFRelatedFieldAjax),
|
||||||
("stocks__vendor", DALFRelatedOnlyField),
|
("stocks__vendor", DALFRelatedOnlyField),
|
||||||
("created", DALFChoicesField),
|
"created",
|
||||||
("modified", DALFChoicesField)
|
"modified",
|
||||||
)
|
)
|
||||||
search_fields = (
|
search_fields = (
|
||||||
"name",
|
"name",
|
||||||
|
|
@ -268,6 +270,27 @@ class ProductAdmin(FieldsetsMixin, ActivationActionsMixin, DALFModelAdmin):
|
||||||
general_fields = ["is_active", "name", "partnumber", "is_digital"]
|
general_fields = ["is_active", "name", "partnumber", "is_digital"]
|
||||||
relation_fields = ["category", "brand", "tags"]
|
relation_fields = ["category", "brand", "tags"]
|
||||||
|
|
||||||
|
@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(
|
||||||
|
js=(
|
||||||
|
"admin/js/vendor/jquery/jquery.min.js",
|
||||||
|
"admin/js/vendor/select2/select2.full.min.js",
|
||||||
|
*i18n_file,
|
||||||
|
"admin/js/jquery.init.js",
|
||||||
|
"admin/js/django_admin_list_filter.js",
|
||||||
|
),
|
||||||
|
css={
|
||||||
|
"screen": (
|
||||||
|
"admin/css/vendor/select2/select2.min.css",
|
||||||
|
"admin/css/autocomplete.css",
|
||||||
|
"admin/css/django_admin_list_filter.css",
|
||||||
|
),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@register(ProductTag)
|
@register(ProductTag)
|
||||||
class ProductTagAdmin(FieldsetsMixin, ActivationActionsMixin, ModelAdmin):
|
class ProductTagAdmin(FieldsetsMixin, ActivationActionsMixin, ModelAdmin):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue