aboutsummaryrefslogtreecommitdiffstats
path: root/aggregator/views.py
blob: aaea0f9a6868221e4ac865ff3387fb4886d1116a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from django.core.paginator import Paginator, InvalidPage, EmptyPage
from django.http import Http404
from django.shortcuts import render
from django.views.generic.base import TemplateView

from .models import Post, Feed, Category

def posts(request, cat, page=1):
    category = cat or 'posts'
    queryset = Post.objects.filter(feed__categories__name=category)
    feeds = Feed.objects.filter(categories__name=category)
    paginator = Paginator(queryset, 20)

    if page == None:
        page = 1

    try:
        object_list = paginator.page(page)
    except (EmptyPage, InvalidPage):
        raise Http404

    return render(request, 'aggregator/posts.html',
                  { 'list': object_list,
                    'feeds': feeds,
                    'category': category,
                    'categories': Category.objects.order_by('name') })