1
0
Fork 0
django-microcms/microcms/admin.py

77 lines
2.4 KiB
Python

# -*- coding: utf-8 -*-
"""microcms.admin module, admin site configuration and options.
THIS SOFTWARE IS UNDER BSD LICENSE.
Copyright (c) 2010-2012 Daniele Tricoli <eriol@mornie.org>
Read LICENSE for more informations.
"""
from django import forms
from django.conf import settings
from django.contrib import admin
from django.contrib.flatpages.models import FlatPage
from django.contrib.flatpages.admin import FlatpageForm, FlatPageAdmin
from django.contrib.sites.models import Site
from django.db import models
from django.utils.translation import ugettext_lazy as _
from microcms import settings as microcms_settings
from microcms.models import Page
class PageForm(FlatpageForm):
class Meta:
model = Page
class PageAdmin(FlatPageAdmin):
form = PageForm
list_display = ('url', 'title', 'pub_date', 'modified_date',
'enable_comments', 'author')
list_display_links = ('url', 'title')
list_filter = ('sites', 'enable_comments', 'registration_required',
'author', 'pub_date', 'modified_date')
fieldsets = (
(None, {'fields': ('url', 'title', 'content')}),
(_('Extra'),
{'classes': ('collapse closed',), 'fields': ('links',)}),
(_('Advanced options'),
{'classes': ('collapse closed',),
'fields': ('enable_comments',
'registration_required',
'template_name',
'sites')}),
(_('Search Engine Optimization'),
{'classes': ('collapse closed',), 'fields': ('meta_keywords',
'meta_description')}),
)
formfield_overrides = {
models.TextField:
{'widget': forms.Textarea(attrs={'class': 'ckeditor'})},
}
class Media:
css = {'all': microcms_settings.MICROCMS_CUSTOM_CSS}
js = [microcms_settings.CKEDITOR_URL]
def formfield_for_manytomany(self, db_field, request, **kwargs):
if db_field.name == 'sites':
kwargs["initial"] = [Site.objects.get_current()]
return super(PageAdmin, self).formfield_for_manytomany(db_field,
request,
**kwargs)
def save_model(self, request, obj, form, change):
if not change:
obj.author = request.user
obj.save()
admin.site.unregister(FlatPage)
admin.site.register(Page, PageAdmin)