Generated: Wed 2013-03-13 10:33 CET
Source file: /media/Envs/Envs/filer-gallery/lib/python2.7/site-packages/cms/plugins/text/cms_plugins.py
Stats: 0 executed, 28 missed, 11 excluded, 21 ignored
from cms.plugin_pool import plugin_poolfrom cms.plugin_base import CMSPluginBasefrom django.utils.translation import ugettext_lazy as _from models import Textfrom cms.plugins.text.forms import TextFormfrom cms.plugins.text.widgets.wymeditor_widget import WYMEditorfrom cms.plugins.text.utils import plugin_tags_to_user_htmlfrom django.forms.fields import CharFieldfrom cms.plugins.text.settings import USE_TINYMCEfrom django.conf import settingsclass TextPlugin(CMSPluginBase): model = Text name = _("Text") form = TextForm render_template = "cms/plugins/text.html" change_form_template = "cms/plugins/text_plugin_change_form.html" def get_editor_widget(self, request, plugins): """ Returns the Django form Widget to be used for the text area """ if USE_TINYMCE and "tinymce" in settings.INSTALLED_APPS: from cms.plugins.text.widgets.tinymce_widget import TinyMCEEditor return TinyMCEEditor(installed_plugins=plugins) else: return WYMEditor(installed_plugins=plugins) def get_form_class(self, request, plugins): """ Returns a subclass of Form to be used by this plugin """ # We avoid mutating the Form declared above by subclassing class TextPluginForm(self.form): pass widget = self.get_editor_widget(request, plugins) TextPluginForm.declared_fields["body"] = CharField(widget=widget, required=False) return TextPluginForm def get_form(self, request, obj=None, **kwargs): plugins = plugin_pool.get_text_enabled_plugins(self.placeholder, self.page) form = self.get_form_class(request, plugins) kwargs['form'] = form # override standard form return super(TextPlugin, self).get_form(request, obj, **kwargs) def render(self, context, instance, placeholder): context.update({ 'body': plugin_tags_to_user_html(instance.body, context, placeholder), 'placeholder': placeholder, 'object': instance }) return context def save_model(self, request, obj, form, change): obj.clean_plugins() super(TextPlugin, self).save_model(request, obj, form, change)plugin_pool.register_plugin(TextPlugin)