views.py 1.6 KB

123456789101112131415161718192021222324252627282930313233
  1. from datetime import timedelta
  2. from django.core.cache import cache
  3. from django.core.urlresolvers import reverse
  4. from django.http import Http404
  5. from django.shortcuts import redirect
  6. from django.utils import timezone
  7. from misago.apps.profiles.decorators import profile_view
  8. from misago.apps.profiles.template import RequestContext
  9. from misago.apps.profiles.warnings.warningstracker import WarningsTracker
  10. from misago.shortcuts import render_to_response
  11. from misago.utils.pagination import make_pagination
  12. @profile_view('user_warnings')
  13. def warnings(request, user, page=0):
  14. request.acl.warnings.allow_member_warns_view(request.user, user)
  15. queryset = user.warning_set
  16. count = queryset.count()
  17. try:
  18. pagination = make_pagination(page, count, 12)
  19. except Http404:
  20. return redirect(reverse('user_warnings', kwargs={'user': user.id, 'username': user.username_slug}))
  21. return render_to_response('profiles/warnings.html',
  22. context_instance=RequestContext(request, {
  23. 'profile': user,
  24. 'tab': 'warnings',
  25. 'items_total': count,
  26. 'warning_level': user.get_current_warning_level(),
  27. 'warnings_tracker': WarningsTracker(user.warning_level - pagination['start']),
  28. 'items': queryset.order_by('-id')[pagination['start']:pagination['stop']],
  29. 'pagination': pagination,
  30. }));