def page_section_requirements(context, page_already_has_ckeditor=False): outputs = [] try: if context['request'].user.has_perm( 'django_sections.change_pagecontentblock'): item = CKEditorWidget() config = Template('{{config}}').render( context=Context({'config': json_encode(item.config)})) outputs.append(""" <script type="text/javascript"> var $url_page_contents_editor = "{}"; var $url_page_contents_editor_config = "{}"; </script>""".format( reverse('django_sections:page-section-contents', kwargs={'page_id': '000'}), config, )) if not page_already_has_ckeditor: outputs.append(""" <script type="text/javascript" src="{}"></script> <script type="text/javascript" src="{}"></script> """.format(static('ckeditor/ckeditor/ckeditor.js'), static('ckeditor/ckeditor-init.js'))) outputs.append( """<script type="text/javascript" src="{}"></script>""".format( static('django_sections/page-section-editor.js'))) except: pass return mark_safe('\n'.join(outputs))
def render(self, name, value, attrs=None): if value is None: value = '' final_attrs = self.build_attrs(attrs, name=name) self._set_config() external_plugin_resources = [ [force_text(a), force_text(b), force_text(c)] for a, b, c in self.external_plugin_resources] return mark_safe( render_to_string('custom_widget/ckeditor_widget.html', { 'final_attrs': flatatt(final_attrs), 'value': conditional_escape(force_text(value)), 'id': final_attrs['id'], 'config': json_encode(self.config), 'external_plugin_resources': json_encode( external_plugin_resources) }))
def get_expected_widget_context(field_name, widget_id, expected_config: dict): return { "widget": { "name": field_name, "is_hidden": False, "required": True, "value": None, "attrs": { "cols": "40", "rows": "10", "required": True, "id": widget_id, }, "template_name": "ckeditor/widget.html", "config": json_encode(expected_config), "external_plugin_resources": "[]", }, }
def render(self, name, value, attrs={}): from django.forms.utils import flatatt if value is None: value = '' final_attrs = self.build_attrs(attrs, name=name) self.config.setdefault('filebrowserUploadUrl', reverse('ckeditor_upload')) self.config.setdefault('filebrowserBrowseUrl', reverse('ckeditor_browse')) if not self.config.get('language'): self.config['language'] = get_language() return mark_safe(render_to_string('zerotemplates/widget.html', { 'checker': self.checker, 'final_attrs': flatatt(final_attrs), 'value': conditional_escape(force_text(value)), 'id': final_attrs['id'], 'config': json_encode(self.config), 'external_plugin_resources': self.external_plugin_resources, 'media_prefix': settings.STATIC_URL + 'codemirror/', }))