cms.plugins.text.cms_plugins: 39 total statements, 0.0% covered

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

  1. from cms.plugin_pool import plugin_pool
  2. from cms.plugin_base import CMSPluginBase
  3. from django.utils.translation import ugettext_lazy as _
  4. from models import Text
  5. from cms.plugins.text.forms import TextForm
  6. from cms.plugins.text.widgets.wymeditor_widget import WYMEditor
  7. from cms.plugins.text.utils import plugin_tags_to_user_html
  8. from django.forms.fields import CharField
  9. from cms.plugins.text.settings import USE_TINYMCE
  10. from django.conf import settings
  11. class TextPlugin(CMSPluginBase):
  12. model = Text
  13. name = _("Text")
  14. form = TextForm
  15. render_template = "cms/plugins/text.html"
  16. change_form_template = "cms/plugins/text_plugin_change_form.html"
  17. def get_editor_widget(self, request, plugins):
  18. """
  19. Returns the Django form Widget to be used for
  20. the text area
  21. """
  22. if USE_TINYMCE and "tinymce" in settings.INSTALLED_APPS:
  23. from cms.plugins.text.widgets.tinymce_widget import TinyMCEEditor
  24. return TinyMCEEditor(installed_plugins=plugins)
  25. else:
  26. return WYMEditor(installed_plugins=plugins)
  27. def get_form_class(self, request, plugins):
  28. """
  29. Returns a subclass of Form to be used by this plugin
  30. """
  31. # We avoid mutating the Form declared above by subclassing
  32. class TextPluginForm(self.form):
  33. pass
  34. widget = self.get_editor_widget(request, plugins)
  35. TextPluginForm.declared_fields["body"] = CharField(widget=widget, required=False)
  36. return TextPluginForm
  37. def get_form(self, request, obj=None, **kwargs):
  38. plugins = plugin_pool.get_text_enabled_plugins(self.placeholder, self.page)
  39. form = self.get_form_class(request, plugins)
  40. kwargs['form'] = form # override standard form
  41. return super(TextPlugin, self).get_form(request, obj, **kwargs)
  42. def render(self, context, instance, placeholder):
  43. context.update({
  44. 'body': plugin_tags_to_user_html(instance.body, context, placeholder),
  45. 'placeholder': placeholder,
  46. 'object': instance
  47. })
  48. return context
  49. def save_model(self, request, obj, form, change):
  50. obj.clean_plugins()
  51. super(TextPlugin, self).save_model(request, obj, form, change)
  52. plugin_pool.register_plugin(TextPlugin)