|
@@ -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')
|