def render(self, context): feincms_object = self.feincms_object.resolve(context) region = self.region.resolve(context) request = self.request.resolve(context) try: list_detail_content_object = feincms_object.content.all_of_type(RichTextContent)[0] list_detail_content = _render_content(list_detail_content_object, request=request, context=context) except IndexError: list_detail_content = u'' ''' first we try to find a mediafile in a MediaFileContent if we have no luck, we try to find a mediafiel in a GalleryContent ''' try: media_file_content = feincms_object.content.all_of_type(MediaFileContent)[0].mediafile except IndexError: media_file_content = False context.update({ 'content': list_detail_content, 'mediafile': media_file_content, 'feincms_object': feincms_object, }) return render_to_string('blog/entry_list_detail.html', context)
def _responsive_render_content(content, **kwargs): """Render the content in a responsive wrapper.""" r = _render_content(content, **kwargs) return render_to_string( 'responsive/wrapper.html', { 'r': r, 'large': content.large, 'medium': content.medium, 'small': content.small })
def get_region(request, path): content = request.GET.get('content', 'all') region = request.GET.get('region', 'main') page = Page.objects.best_match_for_path(path, raise404=True) if region == 'ticker': return ticker_combined(request, region, page) elif content == 'random': return random_content(request, region, page) elif content == 'all': response = u''.join(_render_content(content, request=request, context={})\ for content in getattr(page.content, region)) return HttpResponse(response)
def feincms_render_region(context, feincms_object, region, request=None): """ {% feincms_render_region feincms_page "main" request %} Support for rendering Page without some regions especialy for modals this feature is driven by context variable """ if not feincms_object: return '' if not context.get('standalone', False) or region in STANDALONE_REGIONS: return ''.join( _render_content(content, request=request, context=context) for content in getattr(feincms_object.content, region)) return ''
def render(self): for item in self.items: rendered = _render_content(item, request=self.request, context=self.context) # In case you try to render a contenttype that isn't a subclass of GridContent. try: if item.grid_columns: # Add current column to the total combined row columns. item_columns = item.grid_columns if item.grid_offset: item_columns += item.grid_offset # Can't add, starting a new row with the item. if self.row_columns + item_columns > FEINCMS_GRID_TOTAL_COLUMNS: self.render_row(self.current_row) self.clear_queue(rendered) # Add it to the row. else: self.row_columns += item_columns self.current_row.append(rendered) # If this row is full, start a new one. if self.row_columns == FEINCMS_GRID_TOTAL_COLUMNS: self.render_row(self.current_row) self.clear_queue() # No defined grid_columns else: raise NoGridValuesException # Do it the old fashined way. except (AttributeError, NoGridValuesException): self.render_row(rendered, wrap=False) self.clear_queue() # Make sure to render any left overs. if self.current_row: self.render_row(self.current_row) # Clear out this object. self.items = [] self.clear_queue() return self.return_string
def feincms_render_region_appcontent(page, region, request): """Render only the application content for the region This allows template authors to choose whether their page behaves differently when displaying embedded application subpages by doing something like this:: {% if not in_appcontent_subpage %} {% feincms_render_region feincms_page "main" request %} {% else %} {% feincms_render_region_appcontent feincms_page "main" request %} {% endif %} """ return ''.join( _render_content(content, request=request) for content in page.content.all_of_type(ApplicationContent) if content.region == region)
def feincms_render_region_appcontent(page, region, request): """Render only the application content for the region This allows template authors to choose whether their page behaves differently when displaying embedded application subpages by doing something like this:: {% if not in_appcontent_subpage %} {% feincms_render_region feincms_page "main" request %} {% else %} {% feincms_render_region_appcontent feincms_page "main" request %} {% endif %} """ from feincms.content.application.models import ApplicationContent from feincms.templatetags.feincms_tags import _render_content return u''.join(_render_content(content, request=request) for content in\ getattr(page.content, region) if isinstance(content, ApplicationContent))