djangocms_blog/djangocms_blog/admin.py

75 lines
2.5 KiB
Python
Raw Normal View History

2014-01-04 16:07:09 +00:00
# -*- coding: utf-8 -*-
from admin_enhancer.admin import EnhancedModelAdminMixin
from cms.admin.placeholderadmin import PlaceholderAdmin, FrontendEditableAdmin
from copy import deepcopy
2014-01-04 16:07:09 +00:00
from django.contrib import admin
from django.conf import settings
from parler.admin import TranslatableAdmin
2014-01-04 16:07:09 +00:00
from .models import Post, BlogCategory
2014-04-27 02:25:03 +00:00
from .settings import BLOG_USE_PLACEHOLDER
2014-01-04 16:07:09 +00:00
class BlogCategoryAdmin(EnhancedModelAdminMixin, TranslatableAdmin):
2014-01-09 08:54:40 +00:00
def get_prepopulated_fields(self, request, obj=None):
return {'slug': ('name',)}
2014-01-04 16:07:09 +00:00
class Media:
css = {
'all': ('%sdjangocms_blog/css/%s' % (settings.STATIC_URL,
'djangocms_blog_admin.css'),)
}
2014-01-04 16:07:09 +00:00
class PostAdmin(EnhancedModelAdminMixin, FrontendEditableAdmin,
PlaceholderAdmin, TranslatableAdmin):
list_display = ['title', 'author', 'date_published', 'date_published_end']
date_hierarchy = 'date_published'
raw_id_fields = ['author']
frontend_editable_fields = ('title', 'abstract', 'post_text')
2014-01-04 16:07:09 +00:00
enhance_exclude = ('main_image', 'tags')
_fieldsets = [
2014-01-04 16:07:09 +00:00
(None, {
'fields': [('title', 'slug', 'publish'), 'abstract']
2014-01-04 16:07:09 +00:00
}),
('Info', {
'fields': (['categories', 'tags'],
('date_published', 'date_published_end', 'enable_comments')),
'classes': ('collapse',)
}),
('Immagine', {
'fields': (('main_image', 'main_image_thumbnail', 'main_image_full'),),
'classes': ('collapse',)
}),
('SEO', {
2014-09-11 10:14:44 +00:00
'fields': [('meta_description', 'meta_keywords', 'meta_title')],
'classes': ('collapse',)
2014-01-04 16:07:09 +00:00
}),
]
def get_fieldsets(self, request, obj=None):
fsets = deepcopy(self._fieldsets)
2014-04-27 02:25:03 +00:00
if not BLOG_USE_PLACEHOLDER:
fsets[0][1]['fields'].append('post_text')
if request.user.is_superuser:
fsets[1][1]['fields'][0].append('author')
return fsets
def get_prepopulated_fields(self, request, obj=None):
return {'slug': ('title',)}
2014-01-04 16:07:09 +00:00
def save_model(self, request, obj, form, change):
if not obj.author_id:
obj.author = request.user
super(PostAdmin, self).save_model(request, obj, form, change)
class Media:
css = {
'all': ('%sdjangocms_blog/css/%s' % (settings.STATIC_URL,
'djangocms_blog_admin.css'),)
}
2014-01-04 16:07:09 +00:00
admin.site.register(BlogCategory, BlogCategoryAdmin)
admin.site.register(Post, PostAdmin)