base.py 865 B

1234567891011121314
  1. from django.core.urlresolvers import reverse
  2. from django.shortcuts import redirect
  3. from misago.utils.pagination import make_pagination
  4. class BaseView(object):
  5. def __new__(cls, request, **kwargs):
  6. obj = super(BaseView, cls).__new__(cls)
  7. return obj(request, **kwargs)
  8. def redirect_to_post(self, post):
  9. pagination = make_pagination(0, self.request.acl.threads.filter_posts(self.request, self.thread, self.thread.post_set).filter(id__lte=post.pk).count(), self.request.settings.posts_per_page)
  10. if pagination['total'] > 1:
  11. return redirect(reverse('thread', kwargs={'thread': self.thread.pk, 'slug': self.thread.slug, 'page': pagination['total']}) + ('#post-%s' % post.pk))
  12. return redirect(reverse('thread', kwargs={'thread': self.thread.pk, 'slug': self.thread.slug}) + ('#post-%s' % post.pk))