コード例 #1
0
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))
コード例 #2
0
    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)
            }))
コード例 #3
0
 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": "[]",
         },
     }
コード例 #4
0
    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/',
        }))