views.py 1.3 KB

12345678910111213141516171819202122232425
  1. from django.core.urlresolvers import reverse
  2. from django.http import Http404
  3. from django.shortcuts import redirect
  4. from misago.apps.profiles.decorators import profile_view
  5. from misago.apps.profiles.template import RequestContext
  6. from misago.models import Forum
  7. from misago.utils.pagination import make_pagination
  8. @profile_view('user_posts')
  9. def posts(request, user, page=0):
  10. queryset = user.post_set.filter(forum_id__in=Forum.objects.readable_forums(request.acl)).filter(deleted=False).filter(moderated=False).select_related('thread', 'forum').order_by('-id')
  11. count = queryset.count()
  12. try:
  13. pagination = make_pagination(page, count, 12)
  14. except Http404:
  15. return redirect(reverse('user_posts', kwargs={'user': user.id, 'username': user.username_slug}))
  16. return request.theme.render_to_response('profiles/posts.html',
  17. context_instance=RequestContext(request, {
  18. 'profile': user,
  19. 'tab': 'posts',
  20. 'items_total': count,
  21. 'items': queryset[pagination['start']:pagination['stop']],
  22. 'pagination': pagination,
  23. }));