popularthreads.py 1.2 KB

12345678910111213141516171819202122
  1. from datetime import timedelta
  2. from django.template import RequestContext
  3. from django.utils import timezone
  4. from misago.models import Thread
  5. from misago.utils.pagination import make_pagination
  6. def popular_threads(request, page=0):
  7. queryset = Thread.objects.filter(forum_id__in=request.acl.threads.get_readable_forums(request.acl)).filter(deleted=False).filter(moderated=False)
  8. items_total = queryset.count();
  9. pagination = make_pagination(page, items_total, 30)
  10. queryset = queryset.order_by('-score').prefetch_related('forum')[pagination['start']:pagination['stop']];
  11. if request.settings['avatars_on_threads_list']:
  12. queryset = queryset.prefetch_related('start_poster', 'last_poster')
  13. return request.theme.render_to_response('popular_threads.html',
  14. {
  15. 'items_total': items_total,
  16. 'threads': Thread.objects.with_reads(queryset, request.user),
  17. 'pagination': pagination,
  18. },
  19. context_instance=RequestContext(request));