Rafał Pitoń 8 лет назад
Родитель
Сommit
b9434a4dd0
1 измененных файлов с 30 добавлено и 0 удалено
  1. 30 0
      misago/users/viewmodels/activeposters.py

+ 30 - 0
misago/users/viewmodels/activeposters.py

@@ -0,0 +1,30 @@
+from misago.conf import settings
+from misago.users.activepostersranking import get_active_posters_ranking
+from misago.users.online.utils import make_users_status_aware
+from misago.users.serializers import UserCardSerializer
+
+
+class ActivePosters(object):
+    def __init__(self, request):
+        ranking = get_active_posters_ranking()
+        make_users_status_aware(request.user, ranking['users'], fetch_state=True)
+
+        self.count = ranking['users_count']
+        self.tracked_period = settings.MISAGO_RANKING_LENGTH
+        self.users = ranking['users']
+
+    def get_frontend_context(self):
+        return {
+            'tracked_period': self.tracked_period,
+            'results': ScoredUserSerializer(self.users, many=True).data,
+            'count': self.count
+        }
+
+    def get_template_context(self):
+        return {
+            'tracked_period': self.tracked_period,
+            'users': self.users,
+            'users_count': self.count
+        }
+
+ScoredUserSerializer = UserCardSerializer.extend_fields('meta')