def html_declarations(cls):
        rendered = []
        member_templates = []
        template_mapper = {}

        for block in cls.block_def.all_blocks():
            if isinstance(block, StreamBlock):
                for name, child_block in block.child_blocks.items():
                    if child_block.definition_prefix not in rendered:
                        member_templates.append(
                            (child_block.definition_prefix,
                             mark_safe(
                                 escape_script(
                                     block.render_list_member(
                                         name, child_block.get_default(),
                                         '__PREFIX__', '')))))
                        rendered.append(child_block.definition_prefix)

                    template_mapper['{0}-newmember-{1}'.format(
                        block.definition_prefix,
                        name)] = child_block.definition_prefix

            elif isinstance(block, ListBlock):
                if block.child_block.definition_prefix not in rendered:
                    member_templates.append(
                        (block.child_block.definition_prefix,
                         mark_safe(
                             escape_script(
                                 block.render_list_member(
                                     block.child_block.get_default(),
                                     '__PREFIX__', '')))))
                    rendered.append(block.child_block.definition_prefix)

                    template_mapper['{0}-newmember'.format(
                        block.definition_prefix
                    )] = block.child_block.definition_prefix

        html_declarations = format_html(
            '\n<script type="text/javascript">\nwindow.sequence_tpl_mapper={0};\n</script>\n',
            mark_safe(json.dumps(template_mapper)))
        html_declarations += format_html_join(
            '\n', '<script type="text/template" id="{0}">{1}</script>',
            member_templates)
        return html_declarations + format_html(
            '\n{0}', cls.block_def.all_html_declarations())
示例#2
0
 def html_declarations(self):
     return format_html_join(
         '\n',
         '<script type="text/template" id="{0}-newmember-{1}">{2}</script>',
         [(self.definition_prefix, name,
           mark_safe(
               escape_script(
                   self.render_list_member(name, child_block.meta.default,
                                           '__PREFIX__', ''))))
          for name, child_block in self.child_blocks.items()])
示例#3
0
    def html_declarations(self):
        # generate the HTML to be used when adding a new item to the list;
        # this is the output of render_list_member as rendered with the prefix '__PREFIX__'
        # (to be replaced dynamically when adding the new item) and the child block's default value
        # as its value.
        list_member_html = self.render_list_member(
            self.child_block.get_default(), '__PREFIX__', '')

        return format_html(
            '<script type="text/template" id="{0}-newmember">{1}</script>',
            self.definition_prefix, mark_safe(escape_script(list_member_html)))
示例#4
0
    def html_declarations(self):
        # generate the HTML to be used when adding a new item to the list;
        # this is the output of render_list_member as rendered with the prefix '__PREFIX__'
        # (to be replaced dynamically when adding the new item) and the child block's default value
        # as its value.
        list_member_html = self.render_list_member(self.child_block.meta.default, '__PREFIX__', '')

        return format_html(
            '<script type="text/template" id="{0}-newmember">{1}</script>',
            self.definition_prefix, mark_safe(escape_script(list_member_html))
        )
示例#5
0
 def html_declarations(self):
     return format_html_join(
         '\n', '<script type="text/template" id="{0}-newmember-{1}">{2}</script>',
         [
             (
                 self.definition_prefix,
                 name,
                 mark_safe(escape_script(self.render_list_member(name, child_block.get_default(), '__PREFIX__', '')))
             )
             for name, child_block in self.child_blocks.items()
         ]
     )
示例#6
0
 def render(self, context):
     out = self.nodelist.render(context)
     return escape_script(out)
示例#7
0
 def render(self, context):
     out = self.nodelist.render(context)
     return escape_script(out)