fmartingr.com-legacy/fmartingrcom/apps/blog/admin.py

78 lines
1.8 KiB
Python

from django.contrib import admin
from .models import Entry, Tag
from ckeditor.widgets import CKEditorWidget
from django.utils.translation import ugettext as _
from reversion.admin import VersionAdmin
from django import forms
class EntryAdminForm(forms.ModelForm):
content = forms.CharField(widget=CKEditorWidget())
class Meta:
model = Entry
fields = ('title', 'slug', 'draft', 'date', 'tags', 'content')
#
# ENTRY
#
class EntryAdmin(VersionAdmin):
form = EntryAdminForm
list_display = ('title', 'date', 'status', 'tag_list', 'preview_link')
list_display_links = ('title', )
list_filter = ('date', 'draft', )
search_fields = ('title', 'content', )
filter_horizontal = ('tags',)
actions_on_top = True
prepopulated_fields = {"slug": ("title",)}
ignore_duplicate_revisions = True
suit_form_tabs = (
('general', _('General')),
('content', _('Content')),
)
fieldsets = [
('General', {
'classes': ('suit-tab suit-tab-general collapse',),
'fields': (('title', 'slug', 'draft'), ('date', 'tags'), )
}),
('Content', {
'classes': ('suit-tab suit-tab-content full-width wide',),
'fields': ('content', )
}),
]
def preview_link(self, obj):
return '<a href="%s">View &raquo;</a>' % (
obj.get_absolute_url()
)
preview_link.allow_tags = True
def tag_list(self, obj):
return ", ".join([x.name for x in obj.tags.all()])
def save_model(self, request, obj, form, change):
if not change:
obj.author = request.user
super(self.__class__, self).save_model(request, obj, form, change)
admin.site.register(Entry, EntryAdmin)
#
# TAG
#
class TagAdmin(VersionAdmin):
pass
admin.site.register(Tag, TagAdmin)