def render_children(self, context, fragment, can_reorder=False, can_add=False): # pylint: disable=unused-argument """ Renders the children of the module with HTML appropriate for Studio. Reordering is not supported. """ contents = [] paging = context.get('paging', None) children_count = len(self.children) # pylint: disable=no-member item_start, item_end = 0, children_count # TODO sort children if paging: page_number = paging.get('page_number', 0) raw_page_size = paging.get('page_size', None) page_size = raw_page_size if raw_page_size is not None else children_count item_start, item_end = page_size * page_number, page_size * (page_number + 1) children_to_show = self.children[item_start:item_end] # pylint: disable=no-member force_render = context.get('force_render', None) context['can_move'] = False for child_key in children_to_show: # Children must have a separate context from the library itself. Make a copy. child_context = context.copy() child_context['show_preview'] = self.show_children_previews child_context['can_edit_visibility'] = False child = self.runtime.get_block(child_key) child_view_name = StudioEditableModule.get_preview_view_name(child) if unicode(child.location) == force_render: child_context['show_preview'] = True if child_context['show_preview']: rendered_child = self.runtime.render_child(child, child_view_name, child_context) else: rendered_child = self.runtime.render_child_placeholder(child, child_view_name, child_context) fragment.add_frag_resources(rendered_child) contents.append({ 'id': unicode(child.location), 'content': rendered_child.content, }) fragment.add_content( self.runtime.render_template("studio_render_paged_children_view.html", { 'items': contents, 'xblock_context': context, 'can_add': can_add, 'first_displayed': item_start, 'total_children': children_count, 'displayed_children': len(children_to_show), 'previews': self.show_children_previews }) )
def render_children(self, context, fragment, can_reorder=False, can_add=False): # pylint: disable=unused-argument """ Renders the children of the module with HTML appropriate for Studio. Reordering is not supported. """ contents = [] paging = context.get('paging', None) children_count = len(self.children) # pylint: disable=no-member item_start, item_end = 0, children_count # TODO sort children if paging: page_number = paging.get('page_number', 0) raw_page_size = paging.get('page_size', None) page_size = raw_page_size if raw_page_size is not None else children_count item_start, item_end = page_size * page_number, page_size * (page_number + 1) children_to_show = self.children[item_start:item_end] # pylint: disable=no-member force_render = context.get('force_render', None) context['can_move'] = False for child_key in children_to_show: # Children must have a separate context from the library itself. Make a copy. child_context = context.copy() child_context['show_preview'] = self.show_children_previews child_context['can_edit_visibility'] = False child = self.runtime.get_block(child_key) child_view_name = StudioEditableModule.get_preview_view_name(child) if six.text_type(child.location) == force_render: child_context['show_preview'] = True if child_context['show_preview']: rendered_child = self.runtime.render_child(child, child_view_name, child_context) else: rendered_child = self.runtime.render_child_placeholder(child, child_view_name, child_context) fragment.add_fragment_resources(rendered_child) contents.append({ 'id': six.text_type(child.location), 'content': rendered_child.content, }) fragment.add_content( self.runtime.render_template("studio_render_paged_children_view.html", { 'items': contents, 'xblock_context': context, 'can_add': can_add, 'first_displayed': item_start, 'total_children': children_count, 'displayed_children': len(children_to_show), 'previews': self.show_children_previews }) )
def render_children(self, context, fragment, can_reorder=False, can_add=False): # pylint: disable=unused-argument """ Renders the children of the module with HTML appropriate for Studio. Reordering is not supported. """ contents = [] paging = context.get("paging", None) children_count = len(self.children) # pylint: disable=no-member item_start, item_end = 0, children_count # TODO sort children if paging: page_number = paging.get("page_number", 0) raw_page_size = paging.get("page_size", None) page_size = raw_page_size if raw_page_size is not None else children_count item_start, item_end = page_size * page_number, page_size * (page_number + 1) children_to_show = self.children[item_start:item_end] # pylint: disable=no-member force_render = context.get("force_render", None) for child_key in children_to_show: # pylint: disable=E1101 # Children must have a separate context from the library itself. Make a copy. child_context = context.copy() child_context["show_preview"] = self.show_children_previews child = self.runtime.get_block(child_key) child_view_name = StudioEditableModule.get_preview_view_name(child) if unicode(child.location) == force_render: child_context["show_preview"] = True if child_context["show_preview"]: rendered_child = self.runtime.render_child(child, child_view_name, child_context) else: rendered_child = self.runtime.render_child_placeholder(child, child_view_name, child_context) fragment.add_frag_resources(rendered_child) contents.append({"id": unicode(child.location), "content": rendered_child.content}) fragment.add_content( self.runtime.render_template( "studio_render_paged_children_view.html", { "items": contents, "xblock_context": context, "can_add": can_add, "first_displayed": item_start, "total_children": children_count, "displayed_children": len(children_to_show), "previews": self.show_children_previews, }, ) )
def studio_render_children(self, fragment, children, context): """ Renders the specified children and returns it as an HTML string. In addition, any dependencies are added to the specified fragment. """ html = "" for active_child_descriptor in children: active_child = self.system.get_module(active_child_descriptor) rendered_child = active_child.render(StudioEditableModule.get_preview_view_name(active_child), context) fragment.add_frag_resources(rendered_child) html = html + rendered_child.content return html
def studio_render_children(self, fragment, children, context): """ Renders the specified children and returns it as an HTML string. In addition, any dependencies are added to the specified fragment. """ html = "" for active_child_descriptor in children: active_child = self.system.get_module(active_child_descriptor) rendered_child = active_child.render( StudioEditableModule.get_preview_view_name(active_child), context) fragment.add_frag_resources(rendered_child) html = html + rendered_child.content return html
def studio_render_children(self, fragment, children, context): """ Renders the specified children and returns it as an HTML string. In addition, any dependencies are added to the specified fragment. """ html = "" for active_child_descriptor in children: active_child = self.system.get_module(active_child_descriptor) rendered_child = active_child.render(StudioEditableModule.get_preview_view_name(active_child), context) if active_child.category == "vertical": group_name, group_id = self.get_data_for_vertical(active_child) if group_name: rendered_child.content = rendered_child.content.replace( DEFAULT_GROUP_NAME.format(group_id=group_id), group_name ) fragment.add_frag_resources(rendered_child) html = html + rendered_child.content return html
def studio_render_children(self, fragment, children, context): """ Renders the specified children and returns it as an HTML string. In addition, any dependencies are added to the specified fragment. """ html = "" for active_child_descriptor in children: active_child = self.system.get_module(active_child_descriptor) rendered_child = active_child.render(StudioEditableModule.get_preview_view_name(active_child), context) if active_child.category == 'vertical': group_name, group_id = self.get_data_for_vertical(active_child) if group_name: rendered_child.content = rendered_child.content.replace( DEFAULT_GROUP_NAME.format(group_id=group_id), group_name ) fragment.add_frag_resources(rendered_child) html = html + rendered_child.content return html
def render_children(self, context, fragment, can_reorder=False, can_add=False): # pylint: disable=unused-argument """ Renders the children of the module with HTML appropriate for Studio. Reordering is not supported. """ contents = [] paging = context.get('paging', None) children_count = len(self.children) # pylint: disable=no-member item_start, item_end = 0, children_count # TODO sort children if paging: page_number = paging.get('page_number', 0) raw_page_size = paging.get('page_size', None) page_size = raw_page_size if raw_page_size is not None else children_count item_start, item_end = page_size * page_number, page_size * (page_number + 1) children_to_show = self.children[item_start:item_end] # pylint: disable=no-member for child_key in children_to_show: # pylint: disable=E1101 child = self.runtime.get_block(child_key) child_view_name = StudioEditableModule.get_preview_view_name(child) rendered_child = self.runtime.render_child(child, child_view_name, context) fragment.add_frag_resources(rendered_child) contents.append({ 'id': unicode(child.location), 'content': rendered_child.content, }) fragment.add_content( self.runtime.render_template("studio_render_paged_children_view.html", { 'items': contents, 'xblock_context': context, 'can_add': can_add, 'first_displayed': item_start, 'total_children': children_count, 'displayed_children': len(children_to_show) }) )