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 ''
示例#5
0
    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
示例#6
0
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)
示例#7
0
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 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
示例#9
0
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))