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 = "blog/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] '''