Example #1
0
    def get(self, request, *args, tag_slug=None, **kwargs):
        try:
            paginator = Paginator(
                request,
                object_list=self.posts,
                per_page=3,
                page_neighbors=1,
                side_neighbors=1,
                allow_empty_first_page=False,
            )
        except EmptyPage:
            raise Http404

        # SEO
        seo = Seo()
        seo.set(get_paginator_meta(paginator))
        seo.set_data(self.config,
                     defaults={
                         'title': self.config.header,
                         'og_title': self.config.header,
                     })

        # Unique title
        title_appends = ' | '.join(
            filter(bool, [
                self.tag.title if self.tag else '',
                'Page %d/%d' %
                (paginator.current_page_number, paginator.num_pages)
                if paginator.current_page_number >= 2 else '',
            ]))
        if title_appends:
            default_title = seo.title.popleft()
            seo.title = '%s | %s' % (default_title, title_appends)
            seo.description = ''

        seo.save(request)

        return self.render_to_response({
            'config': self.config,
            'paginator': paginator,
            'tags': Tag.objects.active(),
            'current_tag': self.tag,
        })