def as_text(self): '''Fetch and render all regions For search and test purposes just a prototype ''' from leonardo.templatetags.leonardo_tags import _render_content request_factory = RequestFactory() request = request_factory.get(self.get_absolute_url(), data={}) request.feincms_page = request.leonardo_page = self request.frontend_editing = False request.user = AnonymousUser() if not hasattr(request, '_feincms_extra_context'): request._feincms_extra_context = {} content = '' try: # check permissions etc.. self.run_request_processors(request) for region in [region.key for region in self._feincms_all_regions]: content += ''.join( _render_content(content, request=request, context={}) for content in getattr(self.content, region)) except PermissionDenied: pass except Exception as e: raise e return content
def as_text(self): '''Fetch and render all regions For search and test purposes just a prototype ''' from leonardo.templatetags.leonardo_tags import _render_content request = get_anonymous_request(self) content = '' try: for region in [region.key for region in self._feincms_all_regions]: content += ''.join( _render_content(content, request=request, context={}) for content in getattr(self.content, region)) except PermissionDenied: pass except Exception as e: LOG.exception(e) return content
def as_text(self): '''Fetch and render all regions For search and test purposes just a prototype ''' from leonardo.templatetags.leonardo_tags import _render_content request_factory = RequestFactory() request = request_factory.get( self.get_absolute_url(), data={}) request.feincms_page = request.leonardo_page = self request.user = AnonymousUser() if not hasattr(request, '_feincms_extra_context'): request._feincms_extra_context = {} content = '' try: # check permissions etc.. self.run_request_processors(request) for region in [region.key for region in self._feincms_all_regions]: content += ''.join( _render_content(content, request=request, context={}) for content in getattr(self.content, region)) except PermissionDenied: pass except Exception as e: raise e return content
def render_region(widget=None, request=None, view=None, page=None, region=None): """returns rendered content this is not too clear and little tricky, because external apps needs calling process method """ # change the request if not isinstance(request, dict): request.query_string = None request.method = "GET" if not hasattr(request, '_feincms_extra_context'): request._feincms_extra_context = {} leonardo_page = widget.parent if widget else page render_region = widget.region if widget else region # call processors for fn in reversed(list(leonardo_page.request_processors.values())): try: r = fn(leonardo_page, request) except: pass contents = {} for content in leonardo_page.content.all_of_type( tuple(leonardo_page._feincms_content_types_with_process)): try: r = content.process(request, view=view) except: pass else: # this is HttpResponse object or string if not isinstance(r, six.string_types): r.render() contents[content.fe_identifier] = getattr(r, 'content', r) else: contents[content.fe_identifier] = r from leonardo.templatetags.leonardo_tags import _render_content region_content = ''.join( contents[content.fe_identifier] if content.fe_identifier in contents else _render_content(content, request=request, context={}) for content in getattr(leonardo_page.content, render_region)) return region_content
def render_region(widget=None, request=None, view=None, page=None, region=None): """returns rendered content this is not too clear and little tricky, because external apps needs calling process method """ # change the request if not isinstance(request, dict): request.query_string = None request.method = "GET" if not hasattr(request, '_feincms_extra_context'): request._feincms_extra_context = {} leonardo_page = widget.parent if widget else page render_region = widget.region if widget else region # call processors for fn in reversed(list(leonardo_page.request_processors.values())): try: r = fn(leonardo_page, request) except: pass contents = {} for content in leonardo_page.content.all_of_type(tuple( leonardo_page._feincms_content_types_with_process)): try: r = content.process(request, view=view) except: pass else: # this is HttpResponse object or string if not isinstance(r, six.string_types): r.render() contents[content.fe_identifier] = getattr(r, 'content', r) else: contents[content.fe_identifier] = r from leonardo.templatetags.leonardo_tags import _render_content region_content = ''.join( contents[content.fe_identifier] if content.fe_identifier in contents else _render_content( content, request=request, context={}) for content in getattr(leonardo_page.content, render_region)) return region_content
def render_region(self, request): '''Returns rendered region in JSON response''' page = self.get_object() try: region = request.POST['region'] except KeyError: region = request.GET['region'] from leonardo.templatetags.leonardo_tags import _render_content request.query_string = None result = ''.join( _render_content(content, request=request, context={}) for content in getattr(page.content, region)) return JsonResponse({'result': result, 'region': region})