Files
Aerbim/ServicesApp/admin.py

158 lines
4.4 KiB
Python

from sets.admin import *
from .models import *
from django.contrib import admin
from django.forms import widgets
# from nested_inline.admin import NestedStackedInline, NestedTabularInline, NestedModelAdmin, NestedInline
from super_inlines.admin import SuperInlineModelAdmin, SuperModelAdmin
from GeneralApp.admin import Admin_StackedInline_Block
from SlidesApp.admin import Admin_StackedInline_Slide
def sets_for_formfield_for_dbfield(field, db_field):
if db_field.name == 'url' or db_field.name == 'name' or db_field.name == 'title' or db_field.name == 'name_plural':
field.widget = widgets.TextInput(attrs={'style': 'width: 30%; height: 20px;'})
if db_field.name == 'description':
field.widget = widgets.Textarea(attrs={'style': 'width: 30%; height: 100px;'})
return field
class Admin_StackedInline_BlockPluginPresentation(Admin_Trans_GenericBaseIconStackedInline):
# class Admin_StackedInline_Block(Admin_Trans_GenericBaseIconStackedInline):
def formfield_for_dbfield(self, db_field, request, **kwargs):
field = super(Admin_StackedInline_BlockPluginPresentation, self).formfield_for_dbfield(db_field, request, **kwargs)
return sets_for_formfield_for_dbfield(field, db_field)
model = BlockPluginPresentation
extra = 0
max_num = 1
fieldsets = [
(None, {
'classes': [],
'fields': [
'pre_title',
# 'title',
'name', 'description', 'picture',
('but1_title', 'but1_icon', 'but1_url'),
('but2_title', 'but2_icon', 'but2_url'),
# ('order',),
]
})
]
# class Admin_StaticPage(NestedModelAdmin, Admin_Trans_BaseModelViewPage):
class Admin_Section(SuperModelAdmin, Admin_Trans_BaseModelViewPage):
fieldsets = [
(None, {
'classes': ['wide'],
'fields': ('name',
'url',
'title',
'description', 'text',
'picture',
'order',
)
}),
('SEO', {
'classes': ['wide', 'collapse'],
'fields': (
'seo_title', 'seo_description', 'seo_keywords', 'seo_text',
)
}),
]
list_display = [
'image_thumb',
'id',
'name', 'url',
# 'title',
'order', 'modifiedDT', 'createDT'
]
prepopulated_fields = {"url": ("name_en",)}
list_display_links = ['id']
list_editable = ['order']
list_filter = ['modifiedDT', 'createDT']
search_fields = ['name', 'title']
# filter_horizontal = ['options']
inlines = [
Admin_StackedInline_Slide,
Admin_StackedInline_BlockPluginPresentation,
Admin_StackedInline_Block
]
def has_delete_permission(self, request, obj=None):
if request.user.is_superuser:
return True
if obj.url in ('main', 'spec_technics', 'works'):
return False
admin.site.register(Section,Admin_Section)
class Admin_Service(SuperModelAdmin, Admin_Trans_BaseModelViewPage):
fieldsets = [
(None, {
'classes': ['wide'],
'fields': (
'section', 'parent_service',
'name',
'url',
# 'title',
'description', 'text',
'picture',
'order',
)
}),
('SEO', {
'classes': ['wide', 'collapse'],
'fields': (
'seo_title', 'seo_description', 'seo_keywords', 'seo_text',
)
}),
]
list_display = [
'image_thumb',
'id',
'name', 'url', 'section', 'parent_service',
# 'title',
'order', 'modifiedDT', 'createDT'
]
ordering = ['section', 'parent_service', 'order']
prepopulated_fields = {"url": ("name_en",)}
list_display_links = ['id']
list_editable = ['order']
list_filter = ['section', 'parent_service', 'modifiedDT', 'createDT', ]
search_fields = ['name', 'title']
# filter_horizontal = ['options']
inlines = [Admin_StackedInline_Block]
def has_delete_permission(self, request, obj=None):
if request.user.is_superuser:
return True
if obj.url in ('main', 'spec_technics', 'works'):
return False
admin.site.register(Service, Admin_Service)