actions.py 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. from django.contrib import messages
  2. from django.core.paginator import Paginator
  3. from django.shortcuts import redirect
  4. from django.utils.translation import ungettext, ugettext_lazy, ugettext as _
  5. from misago.threads import moderation
  6. from misago.threads.views.generic.actions import ActionsBase, ReloadAfterDelete
  7. __all__ = ['Actions', 'ReloadAfterDelete']
  8. class Actions(ActionsBase):
  9. select_items_message = ugettext_lazy(
  10. "You have to select at least one thread.")
  11. is_mass_action = True
  12. def redirect_after_deletion(self, request, queryset):
  13. paginator = Paginator(queryset, 20, 10)
  14. current_page = int(request.resolver_match.kwargs.get('page', 0))
  15. if paginator.num_pages < current_page:
  16. namespace = request.resolver_match.namespace
  17. url_name = request.resolver_match.url_name
  18. kwars = request.resolver_match.kwargs
  19. kwars['page'] = paginator.num_pages
  20. if kwars['page'] == 1:
  21. del kwars['page']
  22. return redirect('%s:%s' % (namespace, url_name), **kwars)
  23. else:
  24. return redirect(request.path)