annotate ygroup/views.py @ 917:0365fdbb4d78

Fix app conflict with messages. Django's messages app label conflicts with our messages app. We can't easily rename our label as that will make us rename database tables. Since our app came first we'll just customize Django messages label. For Django 1.7.7 upgrade.
author Brian Neal <bgneal@gmail.com>
date Mon, 06 Apr 2015 20:02:25 -0500
parents ee87ea74d46b
children 5d208c3321ce
rev   line source
bgneal@323 1 """
bgneal@323 2 Views for the ygroup (Yahoo Group Archive) application.
bgneal@323 3
bgneal@323 4 """
bgneal@323 5 from django.shortcuts import get_object_or_404
bgneal@323 6 from django.views.generic import ListView
bgneal@323 7
bgneal@323 8 from ygroup.models import Thread, Post
bgneal@323 9 from core.paginator import DiggPaginator
bgneal@323 10
bgneal@323 11
bgneal@323 12 THREADS_PER_PAGE = 40
bgneal@323 13 POSTS_PER_PAGE = 20
bgneal@323 14
bgneal@323 15
bgneal@323 16 class ThreadIndexView(ListView):
bgneal@323 17 """
bgneal@323 18 This generic view displays the list of threads available.
bgneal@323 19
bgneal@323 20 """
bgneal@323 21 model = Thread
bgneal@323 22 paginate_by = THREADS_PER_PAGE
bgneal@323 23
bgneal@323 24 def get_paginator(self, queryset, per_page, **kwargs):
bgneal@323 25 """
bgneal@323 26 Return an instance of the paginator for this view.
bgneal@323 27 """
bgneal@323 28 return DiggPaginator(queryset, per_page, body=5, tail=2,
bgneal@323 29 margin=3, padding=2, **kwargs)
bgneal@323 30
bgneal@323 31
bgneal@323 32 class ThreadView(ListView):
bgneal@323 33 """
bgneal@323 34 This generic view displays the posts in a thread.
bgneal@323 35
bgneal@323 36 """
bgneal@323 37 context_object_name = "post_list"
bgneal@323 38 template_name = "ygroup/thread.html"
bgneal@323 39 paginate_by = POSTS_PER_PAGE
bgneal@323 40
bgneal@323 41 def get_queryset(self):
bgneal@323 42 self.thread = get_object_or_404(Thread, pk=self.args[0])
bgneal@323 43 return Post.objects.filter(thread=self.thread)
bgneal@323 44
bgneal@323 45 def get_context_data(self, **kwargs):
bgneal@323 46 context = super(ThreadView, self).get_context_data(**kwargs)
bgneal@323 47 context['thread'] = self.thread
bgneal@323 48 return context
bgneal@323 49
bgneal@323 50 def get_paginator(self, queryset, per_page, **kwargs):
bgneal@323 51 """
bgneal@323 52 Return an instance of the paginator for this view.
bgneal@323 53 """
bgneal@323 54 return DiggPaginator(queryset, per_page, body=5, tail=2,
bgneal@323 55 margin=3, padding=2, **kwargs)