rankusers.py 996 B

12345678910111213141516171819202122232425262728
  1. from ...conf import settings
  2. from ...core.shortcuts import paginate, pagination_dict
  3. from ..online.utils import make_users_status_aware
  4. from ..serializers import UserCardSerializer
  5. class RankUsers(object):
  6. def __init__(self, request, rank, page=0):
  7. queryset = rank.user_set.select_related(
  8. "rank", "ban_cache", "online_tracker"
  9. ).order_by("slug")
  10. if not request.user.is_staff:
  11. queryset = queryset.filter(is_active=True)
  12. list_page = paginate(queryset, page, settings.MISAGO_USERS_PER_PAGE, 4)
  13. make_users_status_aware(request, list_page.object_list)
  14. self.users = list_page.object_list
  15. self.paginator = pagination_dict(list_page)
  16. def get_frontend_context(self):
  17. context = {"results": UserCardSerializer(self.users, many=True).data}
  18. context.update(self.paginator)
  19. return context
  20. def get_template_context(self):
  21. return {"users": self.users, "paginator": self.paginator}