|
@@ -2,7 +2,7 @@ from django.core.urlresolvers import reverse
|
|
|
from django.http import Http404
|
|
|
from django.shortcuts import redirect
|
|
|
from misago.models import Forum, Thread, Post
|
|
|
-from misago.utils.pagination import make_pagination
|
|
|
+from misago.utils.pagination import page_number
|
|
|
|
|
|
class ViewBase(object):
|
|
|
def __new__(cls, request, **kwargs):
|
|
@@ -50,14 +50,9 @@ class ViewBase(object):
|
|
|
|
|
|
def redirect_to_post(self, post):
|
|
|
queryset = self.request.acl.threads.filter_posts(self.request, self.thread, self.thread.post_set)
|
|
|
- total = queryset.count()
|
|
|
- page = int(queryset.filter(id__lte=post.pk).count() / self.request.settings.posts_per_page)
|
|
|
- try:
|
|
|
- pagination = make_pagination(page, total, self.request.settings.posts_per_page)
|
|
|
- if pagination['total'] > 1:
|
|
|
- return redirect(reverse(self.type_prefix, kwargs={'thread': self.thread.pk, 'slug': self.thread.slug, 'page': pagination['total']}) + ('#post-%s' % post.pk))
|
|
|
- except Http404:
|
|
|
- pass
|
|
|
+ page = page_number(queryset.filter(id__lte=post.pk).count(), queryset.count(), self.request.settings.posts_per_page)
|
|
|
+ if page > 1:
|
|
|
+ return redirect(reverse(self.type_prefix, kwargs={'thread': self.thread.pk, 'slug': self.thread.slug, 'page': pagination['total']}) + ('#post-%s' % post.pk))
|
|
|
return redirect(reverse(self.type_prefix, kwargs={'thread': self.thread.pk, 'slug': self.thread.slug}) + ('#post-%s' % post.pk))
|
|
|
|
|
|
def template_vars(self, context):
|