django-dbtemplates/dbtemplates/admin.py

47 lines
1.5 KiB
Python
Raw Normal View History

from django import forms
from django.contrib import admin
from django.db.models import get_app
from django.utils.translation import gettext_lazy as _
from django.core.exceptions import ImproperlyConfigured
from dbtemplates.models import Template
# Check if django-reversion is installed and use reversions' VersionAdmin
# as the base admin class if yes
try:
get_app('reversion')
from reversion.admin import VersionAdmin as TemplateModelAdmin
except ImproperlyConfigured:
from django.contrib.admin import ModelAdmin as TemplateModelAdmin
class TemplateAdminForm(forms.ModelForm):
"""
Custom AdminForm to make the content textarea wider.
"""
content = forms.CharField(
widget=forms.Textarea({'cols': '80', 'rows': '24'}),
help_text=_("Leaving this empty causes Django to look for a template "
"with the given name and populate this field with its content."),
required=False)
class Meta:
model = Template
class TemplateAdmin(TemplateModelAdmin):
form = TemplateAdminForm
fieldsets = (
(None, {
'fields': ('name', 'content', 'sites'),
'classes': ('monospace',),
}),
(_('Date/time'), {
'fields': (('creation_date', 'last_changed'),),
'classes': ('collapse',),
}),
)
list_display = ('name', 'creation_date', 'last_changed')
list_filter = ('sites',)
search_fields = ('name', 'content')
admin.site.register(Template, TemplateAdmin)