diff options
Diffstat (limited to 'objectapp/plugins/admin.py')
-rw-r--r-- | objectapp/plugins/admin.py | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/objectapp/plugins/admin.py b/objectapp/plugins/admin.py new file mode 100644 index 00000000..677ea8be --- /dev/null +++ b/objectapp/plugins/admin.py @@ -0,0 +1,78 @@ + +# Copyright (c) 2011, 2012 Free Software Foundation + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. + +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + + + +# Copyright (c) 2011, 2012 Free Software Foundation + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. + +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + + +"""Admin of Objectapp CMS Plugins""" +from django.contrib import admin +from django.template import RequestContext +from django.utils.translation import ugettext_lazy as _ + +from cms.plugin_rendering import render_placeholder +from cms.admin.placeholderadmin import PlaceholderAdmin + +from objectapp.models import Gbobject +from objectapp.admin.gbobject import GbobjectAdmin +from objectapp.settings import GBOBJECT_BASE_MODEL + + +class GbobjectPlaceholderAdmin(PlaceholderAdmin, GbobjectAdmin): + """GbobjectPlaceholder Admin""" + fieldsets = ((None, {'fields': ('title', 'image', 'status')}), + (_('Content'), {'fields': ('content_placeholder',), + 'classes': ('plugin-holder', + 'plugin-holder-nopage')}), + (_('Options'), {'fields': ('featured', 'excerpt', 'template', + 'related', 'authors', + 'creation_date', + 'start_publication', + 'end_publication'), + 'classes': ('collapse', 'collapse-closed')}), + (_('Privacy'), {'fields': ('password', 'login_required',), + 'classes': ('collapse', 'collapse-closed')}), + (_('Discussion'), {'fields': ('comment_enabled', + 'pingback_enabled')}), + (_('Publication'), {'fields': ('sites', 'objecttypes', + 'tags', 'slug')})) + + def save_model(self, request, gbobject, form, change): + """Fill the content field with the interpretation + of the placeholder""" + context = RequestContext(request) + gbobject.content = render_placeholder(gbobject.content_placeholder, context) + super(GbobjectPlaceholderAdmin, self).save_model( + request, gbobject, form, change) + + +if GBOBJECT_BASE_MODEL == 'objectapp.plugins.placeholder.GbobjectPlaceholder': + admin.site.unregister(Gbobject) + admin.site.register(Gbobject, GbobjectPlaceholderAdmin) |