From f39cf990c543ecf613becee4502a8f2046a2b86e Mon Sep 17 00:00:00 2001 From: SDE Date: Sun, 26 Nov 2023 20:00:54 +0300 Subject: [PATCH] 0.0.12 services for section --- BaseModels/admin_utils.py | 20 +++++++++++++------ ServicesApp/admin.py | 16 ++++++++------- .../migrations/0002_alter_service_url.py | 18 +++++++++++++++++ ServicesApp/models.py | 3 +++ sets/admin.py | 16 ++++++--------- 5 files changed, 50 insertions(+), 23 deletions(-) create mode 100644 ServicesApp/migrations/0002_alter_service_url.py diff --git a/BaseModels/admin_utils.py b/BaseModels/admin_utils.py index 3c25a14..caea29d 100644 --- a/BaseModels/admin_utils.py +++ b/BaseModels/admin_utils.py @@ -212,12 +212,16 @@ def get_image_thumb(self, obj): class Admin_GenericBaseIconStackedInline(GenericStackedInline): - def formfield_for_dbfield (self, db_field, **kwargs): - return init_formfield_for_dbfield(Admin_GenericBaseIconStackedInline, self, db_field, **kwargs) + def formfield_for_dbfield (self, db_field, request, **kwargs): + return init_formfield_for_dbfield(Admin_GenericBaseIconStackedInline, self, db_field, request, **kwargs) def image_thumb(self, obj): return get_image_thumb(self, obj) + formfield_overrides = { + models.ImageField: {'widget': AdminImageWidget}, + } + image_thumb.short_description = u'Миниатюра' image_thumb.allow_tags = True @@ -225,8 +229,8 @@ class Admin_GenericBaseIconStackedInline(GenericStackedInline): class Admin_BaseIconStackedInline(admin.StackedInline): - def formfield_for_dbfield (self, db_field, **kwargs): - return init_formfield_for_dbfield(Admin_BaseIconStackedInline, self, db_field, **kwargs) + def formfield_for_dbfield (self, db_field, request, **kwargs): + return init_formfield_for_dbfield(Admin_BaseIconStackedInline, self, db_field, request, **kwargs) def image_thumb(self, obj): return get_image_thumb(self, obj) @@ -234,11 +238,15 @@ class Admin_BaseIconStackedInline(admin.StackedInline): image_thumb.short_description = u'Миниатюра' image_thumb.allow_tags = True + formfield_overrides = { + models.ImageField: {'widget': AdminImageWidget}, + } + class Admin_BaseIconTabularModel(admin.TabularInline): - def formfield_for_dbfield (self, db_field, **kwargs): - return init_formfield_for_dbfield(Admin_BaseIconTabularModel, self, db_field, **kwargs) + def formfield_for_dbfield (self, db_field, request, **kwargs): + return init_formfield_for_dbfield(Admin_BaseIconTabularModel, self, db_field, request, **kwargs) def image_thumb(self, obj): return get_image_thumb(self, obj) diff --git a/ServicesApp/admin.py b/ServicesApp/admin.py index afe645f..610e296 100644 --- a/ServicesApp/admin.py +++ b/ServicesApp/admin.py @@ -73,12 +73,14 @@ class Admin_Service(SuperModelAdmin, Admin_Trans_BaseModelViewPage): fieldsets = [ (None, { 'classes': ['wide'], - 'fields': ('name', - 'url', - 'title', 'description', 'text', - 'picture', - 'order', - ) + 'fields': ( + 'section', 'parent_service', + 'name', + 'url', + 'title', 'description', 'text', + 'picture', + 'order', + ) }), ('SEO', { 'classes': ['wide', 'collapse'], @@ -95,7 +97,7 @@ class Admin_Service(SuperModelAdmin, Admin_Trans_BaseModelViewPage): 'order', 'modifiedDT', 'createDT' ] - prepopulated_fields = {"url": ("name",)} + prepopulated_fields = {"url": ("name_en",)} list_display_links = ['id'] list_editable = ['order'] diff --git a/ServicesApp/migrations/0002_alter_service_url.py b/ServicesApp/migrations/0002_alter_service_url.py new file mode 100644 index 0000000..6812755 --- /dev/null +++ b/ServicesApp/migrations/0002_alter_service_url.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.7 on 2023-11-26 19:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ServicesApp', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='service', + name='url', + field=models.TextField(blank=True, null=True, verbose_name='URL привязанной страницы'), + ), + ] diff --git a/ServicesApp/models.py b/ServicesApp/models.py index 6f007e4..2589eee 100644 --- a/ServicesApp/models.py +++ b/ServicesApp/models.py @@ -9,6 +9,9 @@ class Section(BaseModelViewPage): class Service(BaseModelViewPage): + + url = models.TextField(verbose_name=_('URL привязанной страницы'), null=True, blank=True) + section = models.ForeignKey( Section, verbose_name=_('Раздел'), on_delete=models.SET_NULL, related_name='rel_services_for_section', diff --git a/sets/admin.py b/sets/admin.py index 270a5ca..f1a7f0f 100644 --- a/sets/admin.py +++ b/sets/admin.py @@ -1,6 +1,7 @@ from BaseModels.admin_utils import (Admin_GenericBaseIconStackedInline, Admin_BaseIconModel, - Admin_BaseIconStackedInline) + Admin_BaseIconStackedInline, + Admin_BaseIconTabularModel) from modeltranslation.admin import (TranslationAdmin, TranslationGenericStackedInline, TranslationGenericTabularInline, @@ -79,11 +80,6 @@ class Admin_BaseModel(Admin_BaseIconModel): # list_display_links = ('id', 'name') -class Admin_BaseBlock(Admin_BaseIconModel): - pass - def get_fieldsets(self, request, obj=None): - fieldsets = super(Admin_BaseBlock, self).get_fieldsets(request, obj) - return fieldsets class Admin_BaseModelViewPage(Admin_BaseIconModel): pass @@ -136,7 +132,7 @@ class AdminTranslationBase(TranslationAdmin): } -class Admin_Trans_BaseModel(Admin_BaseModel, AdminTranslationBase): +class Admin_Trans_BaseModel(Admin_BaseIconModel, AdminTranslationBase): pass # # class Admin_Trans_BaseModelViewPage(AdminTranslation_BaseIconModel): @@ -145,7 +141,7 @@ class Admin_Trans_BaseModel(Admin_BaseModel, AdminTranslationBase): class Admin_Trans_BaseModelViewPage(Admin_BaseModelViewPage, AdminTranslationBase): pass -class Admin_Trans_GenericBaseIconStackedInline(TranslationGenericStackedInline): +class Admin_Trans_GenericBaseIconStackedInline(TranslationGenericStackedInline, Admin_GenericBaseIconStackedInline): class Media: js = ( 'modeltranslation/js/force_jquery.js', @@ -157,7 +153,7 @@ class Admin_Trans_GenericBaseIconStackedInline(TranslationGenericStackedInline): 'screen': ('modeltranslation/css/tabbed_translation_fields.css',), } -class Admin_Trans_GenericBaseIconTabularInline(TranslationGenericTabularInline): +class Admin_Trans_GenericBaseIconTabularInline(TranslationGenericTabularInline, Admin_GenericBaseIconStackedInline): class Media: js = ( 'modeltranslation/js/force_jquery.js', @@ -170,7 +166,7 @@ class Admin_Trans_GenericBaseIconTabularInline(TranslationGenericTabularInline): } -class Admin_Trans_BaseIconTabularInline(TranslationTabularInline): +class Admin_Trans_BaseIconTabularInline(TranslationTabularInline, Admin_BaseIconTabularModel): class Media: js = ( 'modeltranslation/js/force_jquery.js',