1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- from django.core.urlresolvers import reverse
- from django.shortcuts import render
- from django.views.generic import View
- from misago.threads.viewmodels.thread import ForumThread
- from misago.threads.viewmodels.posts import ThreadPosts
- class ThreadBase(View):
- thread = None
- posts = ThreadPosts
- template_name = None
- def get(self, request, pk, slug, page=0):
- thread = self.get_thread(request, slug, pk)
- posts = self.get_posts(request, thread, page)
- frontend_context = self.get_frontend_context(request, thread, posts)
- request.frontend_context.update(frontend_context)
- template_context = self.get_template_context(request, thread, posts)
- return render(request, self.template_name, template_context)
- def get_thread(self, request, pk, slug):
- return self.thread(request, pk, slug)
- def get_posts(self, request, thread, page):
- return self.posts(request, thread, page)
- def get_default_frontend_context(self):
- return {}
- def get_frontend_context(self, request, thread, posts):
- context = self.get_default_frontend_context()
- context.update(thread.get_frontend_context())
- context.update(posts.get_frontend_context())
- return context
- def get_template_context(self, request, thread, posts):
- context = {
- 'url_name': ':'.join(request.resolver_match.namespaces + [request.resolver_match.url_name])
- }
- context.update(thread.get_template_context())
- context.update(posts.get_template_context())
- return context
- class Thread(ThreadBase):
- thread = ForumThread
- template_name = 'misago/thread/thread.html'
- def get_default_frontend_context(self):
- return {
- 'THREADS_API': reverse('misago:api:thread-list'),
- #'POSTS_API': reverse('misago:api:posts-list'),
- }
- class PrivateThread(ThreadBase):
- template_name = 'misago/thread/private_thread.html'
|