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 django import forms
|
||||
from django.apps import apps
|
||||
from django.conf import settings
|
||||
from django.contrib import admin
|
||||
from django.contrib.admin import ModelAdmin, TabularInline
|
||||
from django.contrib.admin.widgets import get_select2_language
|
||||
|
|
@ -46,6 +47,12 @@ class FieldsetsMixin:
|
|||
model: Model
|
||||
|
||||
def get_fieldsets(self, request, obj=None):
|
||||
if request:
|
||||
pass
|
||||
|
||||
if obj:
|
||||
pass
|
||||
|
||||
fieldsets = []
|
||||
|
||||
def add_translations_fieldset(fss):
|
||||
|
|
@ -204,6 +211,7 @@ class AttributeValueAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
class CategoryAdmin(FieldsetsMixin, DraggableMPTTAdmin, BasicModelAdmin):
|
||||
model = Category # type: ignore
|
||||
list_display = ("indented_title", "parent", "is_active", "modified")
|
||||
# noinspection PyUnresolvedReferences
|
||||
list_filter = ("is_active", "level", "created", "modified")
|
||||
search_fields = ("uuid", "name")
|
||||
inlines = [CategoryChildrenInline]
|
||||
|
|
@ -268,14 +276,24 @@ class ProductAdmin(FieldsetsMixin, BasicModelAdmin):
|
|||
def media(self):
|
||||
i18n_name = get_select2_language()
|
||||
i18n_file = (f"admin/js/vendor/select2/i18n/{i18n_name}.js",) if i18n_name else ()
|
||||
extra = "" if settings.DEBUG else ".min"
|
||||
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/select2/select2.full.min.js",
|
||||
*i18n_file,
|
||||
"admin/js/jquery.init.js",
|
||||
"admin/js/django_admin_list_filter.js",
|
||||
]
|
||||
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",
|
||||
),
|
||||
js=[f"admin/js/{url}" for url in js],
|
||||
css={
|
||||
"screen": (
|
||||
"admin/css/vendor/select2/select2.min.css",
|
||||
|
|
|
|||
Loading…
Reference in a new issue