summaryrefslogtreecommitdiff
path: root/app/blog/views.py
blob: cf0fdf6b3f6c9c24dbbea408467d5628d1c68b63 (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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from operator import attrgetter
from itertools import chain
from django.views.generic import ListView
from django.views.generic.detail import DetailView
from django.views.generic.dates import YearArchiveView, MonthArchiveView
from django.contrib.syndication.views import Feed


from .models import Entry
from links.models import Link


class EntryListView(ListView):
    model = Entry

    def get_queryset(self, **kwargs):
        qs = Entry.objects.filter(status=1)
        return qs


class EntryDetailView(DetailView):
    model = Entry


class EntryDetailViewTXT(EntryDetailView):
    template_name = "entry_detail.txt"


class EntryYearArchiveView(YearArchiveView):
    queryset = Entry.objects.filter(status__exact=1).select_related()
    date_field = "pub_date"
    make_object_list = True
    allow_future = True


class EntryMonthArchiveView(MonthArchiveView):
    queryset = Entry.objects.filter(status__exact=1).select_related()
    date_field = "pub_date"
    allow_future = True


class HomePageView(ListView):
    model = Entry
    template_name = "homepage.html"

    def get_queryset(self, **kwargs):
        entry_list = Entry.objects.filter(status=1)
        link_list = Link.objects.filter(status=1)
        result_list = sorted(
            chain(entry_list, link_list),
            key=attrgetter('pub_date')
        )
        return reversed(result_list)





'''
class TopicListView(ListView):
    template_name = 'archives/src_home.html'

    def queryset(self):
        return Post.objects.filter(topics__slug=self.kwargs['slug'])

    def get_context_data(self, **kwargs):
        # Call the base implementation first to get a context
        context = super(TopicListView, self).get_context_data(**kwargs)
        context['topic'] = Topic.objects.get(slug__exact=self.kwargs['slug'])
        return context


class SrcRSSFeedView(Feed):
    title = "luxagraf:src Code and Technology"
    link = "/src/"
    description = "Latest postings to luxagraf.net/src"
    description_template = 'feeds/blog_description.html'

    def items(self):
        return Post.objects.filter(status__exact=1).order_by('-pub_date')[:10]
'''