def render(self, context): """ TODO: Lever une exception de template évident quand le setting demandé n'existe pas. :type context: object ``django.template.Context`` :param context: Objet du contexte du tag. :rtype: string :return: Le rendu généré pour le tag capturé. """ html = '' parser_kwargs = {} content_render = toc_render = navigation_render = None # Résolution des arguments instance = resolve_string_or_variable(self.insert_instance_varname, context) setting_key = resolve_string_or_variable(self.setting_key_varname, context) if setting_key: parser_kwargs['setting_key'] = setting_key title_level = resolve_string_or_variable(self.title_level_varname, context) if title_level: parser_kwargs['initial_header_level'] = title_level content_render = mark_safe( get_render_with_cache(instance, **parser_kwargs) ) #if self.with_toc: #toc_render = mark_safe( get_toc_with_cache(instance, **parser_kwargs) ) if self.with_navigation and isinstance(instance, Page): navigation = instance.get_descendants(include_self=False).filter(visible=True) context.update({ #'document_toc': toc_render, 'document_navigation': navigation, 'document_render': content_render, }) return ''
def render(self, context): """ TODO: Lever une exception de template évident quand le setting demandé n'existe pas. :type context: object ``django.template.Context`` :param context: Objet du contexte du tag. :rtype: string :return: Le rendu généré pour le tag capturé. """ html = '' parser_kwargs = {} # Résolution de l'instance du formulaire self.insert_instance = resolve_string_or_variable(self.insert_instance_varname, context) self.setting_key = resolve_string_or_variable(self.setting_key_varname, context) if self.setting_key: parser_kwargs['setting_key'] = self.setting_key self.title_level = resolve_string_or_variable(self.title_level_varname, context) if self.title_level: parser_kwargs['initial_header_level'] = self.title_level # Réception d'un slug pour récupérer l'instance if isinstance(self.insert_instance, basestring): try: instance = Insert.objects.get(slug=self.insert_instance, visible=True) except Insert.DoesNotExist: return '' else: self.insert_instance = instance html = get_render_with_cache(self.insert_instance, **parser_kwargs) return mark_safe(html)
def document_render(document_instance, setting_key="default"): """ Return the parser result from the content of the given instance (*Pages* or *Insert*) and settings """ return mark_safe( get_render_with_cache(document_instance, setting_key=setting_key) )