From f36433106e90a7aa915dc2a2ed3cbc56f4d4ac42 Mon Sep 17 00:00:00 2001 From: mohsentaba Date: Thu, 21 May 2026 10:55:28 +0330 Subject: [PATCH] multilanguage admin panel enhancement update pattern with dropdown to choose language in a more convenient way update language codes update blog data appearance , avoiding to show the json data --- apps/blog/admin.py | 14 +- .../utils/widgets/multilang_json_widget.html | 237 +++++------------- utils/multilang_json_widget.py | 36 +-- 3 files changed, 87 insertions(+), 200 deletions(-) diff --git a/apps/blog/admin.py b/apps/blog/admin.py index 734fcea..ed2bdba 100644 --- a/apps/blog/admin.py +++ b/apps/blog/admin.py @@ -57,7 +57,7 @@ class BlogAdmin(ModelAdmin): Admin interface for Blog model using Django unfold """ form = BlogAdminForm - list_display = ('title_info', 'slogan', 'views_count', 'created_at', 'updated_at') + list_display = ('title_info', 'slogan_info', 'views_count', 'created_at', 'updated_at') list_filter = ('created_at', 'updated_at') search_fields = ('title', 'slogan', 'summary') # prepopulated_fields = {'slug': ('title',)} @@ -82,9 +82,13 @@ class BlogAdmin(ModelAdmin): inlines = [BlogContentInline] - @display(description=_('Title'), ) + @display(description=_('Title')) def title_info(self, obj): - return str(obj.title) + return obj._extract_text_from_json(obj.title) + + @display(description=_('Slogan')) + def slogan_info(self, obj): + return obj._extract_text_from_json(obj.slogan) def get_queryset(self, request): queryset = super().get_queryset(request) @@ -121,6 +125,6 @@ class BlogContentAdmin(ModelAdmin): readonly_fields = ('created_at', 'updated_at') - @display(description=_('Title'), ) + @display(description=_('Title')) def title_info(self, obj): - return str(obj.title) \ No newline at end of file + return Blog._extract_text_from_json(obj.title) \ No newline at end of file diff --git a/templates/utils/widgets/multilang_json_widget.html b/templates/utils/widgets/multilang_json_widget.html index 584ab37..9cb74db 100644 --- a/templates/utils/widgets/multilang_json_widget.html +++ b/templates/utils/widgets/multilang_json_widget.html @@ -1,17 +1,18 @@ {% load i18n %}
-
-
-
- {% for code in widget.languages %} - - {% endfor %} +
+
+
+ + {% trans "Select Language" %}: + +
@@ -36,64 +37,6 @@