Files
tripwithbonus/sets/admin.py
2024-11-15 15:14:50 +03:00

200 lines
6.0 KiB
Python

from BaseModels.admin_utils import (
Admin_GenericBaseIconStackedInline, Admin_BaseIconModel, GenericStackedInline,
AdminImageWidget, get_image_thumb
)
from copy import deepcopy
from django.db import models
from django.utils.translation import gettext as _
class Admin_BaseModel(Admin_BaseIconModel):
pass
# def get_fieldsets(self, request, obj=None):
# from BaseModels.inter import get_fieldsNames_of_model
# fields_names = get_fieldsNames_of_model(self.model)
#
# fields = []
# if 'name' in fields_names:
# fields.append('name')
# if 'enable'in fields_names:
# fields.append('enable')
#
# fieldsets = [
# [None, {
# 'classes': ['wide'],
# 'fields': fields
# }]
# ]
#
# if request.user.is_superuser:
#
# fields = []
# if 'json_data' in fields:
# fields.append('json_data')
#
# if fields:
# add_block = [
# 'Служебная инфа', {
# 'classes': ['wide'],
# 'fields': fields
# }]
# fieldsets.append(add_block)
# return fieldsets
#
# save_on_top = True
#
# def get_list_display(self, request, obj):
# list_display = ['id']
# if getattr(obj, 'name', None):
# list_display.append('name')
# if getattr(obj, 'enable', None):
# list_display.append('enable')
# if getattr(obj, 'order', None):
# list_display.append('order')
# if getattr(obj, 'modifiedDT', None):
# list_display.append('modifiedDT')
# if getattr(obj, 'createDT', None):
# list_display.append('createDT')
#
# return list_display
#
# # list_editable = ['order']
# 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
from modeltranslation.admin import TranslationAdmin
class AdminTranslationBase(TranslationAdmin):
# def formfield_for_dbfield(self, db_field, **kwargs):
# field = super(AdminTranslation_BaseIconModel, self).formfield_for_dbfield(db_field, **kwargs)
# self.patch_translation_field(db_field, field, **kwargs)
# return field
class Media:
js = (
'modeltranslation/js/force_jquery.js',
'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js',
'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js',
'modeltranslation/js/tabbed_translation_fields.js',
)
css = {
'screen': ('modeltranslation/css/tabbed_translation_fields.css',),
}
from modeltranslation.admin import TranslationGenericStackedInline, TranslationGenericTabularInline
class TranslationGenericTabularInlineCustom(TranslationGenericTabularInline):
formfield_overrides = {
models.ImageField: {'widget': AdminImageWidget},
}
def image_thumb(self, obj):
return get_image_thumb(self, obj)
image_thumb.short_description = _('Миниатюра')
image_thumb.allow_tags = True
class Media:
js = (
'modeltranslation/js/force_jquery.js',
'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js',
'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js',
'modeltranslation/js/tabbed_translation_fields.js',
)
css = {
'screen': ('modeltranslation/css/tabbed_translation_fields.css',),
}
class TranslationGenericStackedInlineCustom(TranslationGenericStackedInline):
formfield_overrides = {
models.ImageField: {'widget': AdminImageWidget},
}
def image_thumb(self, obj):
return get_image_thumb(self, obj)
image_thumb.short_description = _('Миниатюра')
image_thumb.allow_tags = True
class Media:
js = (
'modeltranslation/js/force_jquery.js',
'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js',
'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js',
'modeltranslation/js/tabbed_translation_fields.js',
)
css = {
'screen': ('modeltranslation/css/tabbed_translation_fields.css',),
}
class AdminStacked_FAQitem(TranslationGenericStackedInlineCustom):
from GeneralApp.models import FAQitem
model = FAQitem
extra = 0
fields = ['order', 'question', 'answer']
class AdminTabular_Mediaitem(TranslationGenericTabularInlineCustom):
from GeneralApp.models import MediaItem
model = MediaItem
extra = 0
fields = ['order', 'video', 'picture']
class Admin_BaseModelViewPage(Admin_BaseIconModel):
pass
# def get_fieldsets(self, request, obj=None):
# fieldsets = super(Admin_BaseModelViewPage, self).get_fieldsets(request, obj)
# # fieldsets = deepcopy(self.fieldsets)
# seo_block = (
# 'SEO', {
# 'classes': ['wide', 'collapse'],
# 'fields': (
# 'seo_title', 'seo_description',
# 'seo_keywords',
# 'seo_text'
# )
# })
# # fieldsets[0][1]['fields'].append('url')
# fieldsets.append(seo_block)
# return fieldsets
# def get_prepopulated_fields(self, request, obj=None):
# if 'url' in self.get_fieldsets(request, obj):
# return {"url": ("name",)}
# else:
# return {}
#
inlines = [AdminStacked_FAQitem, AdminTabular_Mediaitem]
class Admin_Trans_BaseModel(Admin_BaseModel, AdminTranslationBase):
pass
#
# class Admin_Trans_BaseModelViewPage(AdminTranslation_BaseIconModel):
# pass
class Admin_Trans_BaseModelViewPage(Admin_BaseModelViewPage, AdminTranslationBase):
pass