views.py 1.3 KB

1234567891011121314151617181920212223242526
  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.shortcuts import render_to_response
  8. from misago.utils.pagination import make_pagination
  9. @profile_view('user_posts')
  10. def posts(request, user, page=0):
  11. 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')
  12. count = queryset.count()
  13. try:
  14. pagination = make_pagination(page, count, 12)
  15. except Http404:
  16. return redirect(reverse('user_posts', kwargs={'user': user.id, 'username': user.username_slug}))
  17. return render_to_response('profiles/posts.html',
  18. context_instance=RequestContext(request, {
  19. 'profile': user,
  20. 'tab': 'posts',
  21. 'items_total': count,
  22. 'items': queryset[pagination['start']:pagination['stop']],
  23. 'pagination': pagination,
  24. }));