123456789101112131415161718192021222324252627282930313233343536 |
- from django.core.urlresolvers import reverse
- from django.shortcuts import redirect
- from django.template import RequestContext
- from django.utils.translation import ugettext as _
- from misago.acl.utils import ACLError403, ACLError404
- from misago.forums.models import Forum
- from misago.threads.models import Thread, Post
- from misago.threads.views.base import BaseView
- from misago.views import error403, error404
- class List(BaseView):
- def fetch_forum(self, forum):
- self.forum = Forum.objects.get(pk=forum, type='forum')
- self.request.acl.forums.check_forum(self.forum)
-
- def fetch_threads(self, page):
- self.threads = Thread.objects.filter(forum=self.forum).order_by('-last').all()
-
- def __call__(self, request, slug=None, forum=None, page=0):
- self.request = request
- try:
- self.fetch_forum(forum)
- self.fetch_threads(page)
- except Forum.DoesNotExist:
- return error404(self.request)
- except ACLError403 as e:
- return error403(args[0], e.message)
- except ACLError404 as e:
- return error404(args[0], e.message)
- return request.theme.render_to_response('threads/list.html',
- {
- 'message': request.messages.get_message('threads'),
- 'forum': self.forum,
- 'threads': self.threads,
- },
- context_instance=RequestContext(request));
|