Features: 1) Add conditional handling for both request and obj in get_fieldsets; 2) Dynamically include language-specific Select2 file based on settings configuration;
Fixes: 1) Add missing `settings` import in `admin.py` to avoid potential errors; Extra: 1) Refactor JavaScript file inclusion logic for enhanced clarity and maintainability; 2) Add inline comment to suppress unresolved reference warnings; 3) Update variable naming for consistency and readability.
This commit is contained in:
parent
7f9673451a
commit
4411f6144d
1 changed files with 25 additions and 7 deletions
|
|
@ -5,6 +5,7 @@ from constance.admin import ConstanceAdmin as BaseConstanceAdmin
|
||||||
from dalf.admin import DALFRelatedFieldAjax, DALFRelatedOnlyField
|
from dalf.admin import DALFRelatedFieldAjax, DALFRelatedOnlyField
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
|
from django.conf import settings
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.admin import ModelAdmin, TabularInline
|
from django.contrib.admin import ModelAdmin, TabularInline
|
||||||
from django.contrib.admin.widgets import get_select2_language
|
from django.contrib.admin.widgets import get_select2_language
|
||||||
|
|
@ -46,6 +47,12 @@ class FieldsetsMixin:
|
||||||
model: Model
|
model: Model
|
||||||
|
|
||||||
def get_fieldsets(self, request, obj=None):
|
def get_fieldsets(self, request, obj=None):
|
||||||
|
if request:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if obj:
|
||||||
|
pass
|
||||||
|
|
||||||
fieldsets = []
|
fieldsets = []
|
||||||
|
|
||||||
def add_translations_fieldset(fss):
|
def add_translations_fieldset(fss):
|
||||||
|
|
@ -204,6 +211,7 @@ class AttributeValueAdmin(FieldsetsMixin, BasicModelAdmin):
|
||||||
class CategoryAdmin(FieldsetsMixin, DraggableMPTTAdmin, BasicModelAdmin):
|
class CategoryAdmin(FieldsetsMixin, DraggableMPTTAdmin, BasicModelAdmin):
|
||||||
model = Category # type: ignore
|
model = Category # type: ignore
|
||||||
list_display = ("indented_title", "parent", "is_active", "modified")
|
list_display = ("indented_title", "parent", "is_active", "modified")
|
||||||
|
# noinspection PyUnresolvedReferences
|
||||||
list_filter = ("is_active", "level", "created", "modified")
|
list_filter = ("is_active", "level", "created", "modified")
|
||||||
search_fields = ("uuid", "name")
|
search_fields = ("uuid", "name")
|
||||||
inlines = [CategoryChildrenInline]
|
inlines = [CategoryChildrenInline]
|
||||||
|
|
@ -268,14 +276,24 @@ class ProductAdmin(FieldsetsMixin, BasicModelAdmin):
|
||||||
def media(self):
|
def media(self):
|
||||||
i18n_name = get_select2_language()
|
i18n_name = get_select2_language()
|
||||||
i18n_file = (f"admin/js/vendor/select2/i18n/{i18n_name}.js",) if i18n_name else ()
|
i18n_file = (f"admin/js/vendor/select2/i18n/{i18n_name}.js",) if i18n_name else ()
|
||||||
return super().media + forms.Media(
|
extra = "" if settings.DEBUG else ".min"
|
||||||
js=(
|
js = [
|
||||||
|
f"vendor/jquery/jquery{extra}.js",
|
||||||
|
"jquery.init.js",
|
||||||
|
"core.js",
|
||||||
|
"admin/RelatedObjectLookups.js",
|
||||||
|
"actions.js",
|
||||||
|
"urlify.js",
|
||||||
|
"prepopulate.js",
|
||||||
|
f"vendor/xregexp/xregexp{extra}.js",
|
||||||
"admin/js/vendor/jquery/jquery.min.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_file,
|
||||||
"admin/js/jquery.init.js",
|
"admin/js/jquery.init.js",
|
||||||
"admin/js/django_admin_list_filter.js",
|
"admin/js/django_admin_list_filter.js",
|
||||||
),
|
]
|
||||||
|
return super().media + forms.Media(
|
||||||
|
js=[f"admin/js/{url}" for url in js],
|
||||||
css={
|
css={
|
||||||
"screen": (
|
"screen": (
|
||||||
"admin/css/vendor/select2/select2.min.css",
|
"admin/css/vendor/select2/select2.min.css",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue