Просмотр исходного кода

fix issue #363
Unreasonable on admin user online stats and forum user online stats of ACP.

xohozu 11 лет назад
Родитель
Сommit
3a818bd79c
2 измененных файлов с 24 добавлено и 13 удалено
  1. 11 5
      misago/apps/admin/index.py
  2. 13 8
      misago/apps/admin/online/views.py

+ 11 - 5
misago/apps/admin/index.py

@@ -2,15 +2,21 @@ from django.template import RequestContext
 from misago.models import Session
 from misago.monitor import monitor
 from misago.shortcuts import render_to_response
+from misago.conf import settings
+from django.utils import timezone
+from datetime import timedelta
+
 
 def index(request):
     return render_to_response('index.html',
                               {
-                               'users': monitor['users'],
-                               'users_inactive': monitor['users_inactive'],
-                               'threads': monitor['threads'],
-                               'posts': monitor['posts'],
-                               'admins': Session.objects.filter(user__isnull=False).filter(admin=1).order_by('user__username_slug').select_related('user'),
+                                  'users': monitor['users'],
+                                  'users_inactive': monitor['users_inactive'],
+                                  'threads': monitor['threads'],
+                                  'posts': monitor['posts'],
+                                  'admins': Session.objects.filter(user__isnull=False).filter(admin=1)
+                              .filter(last__gte=timezone.now() - timedelta(seconds=settings.online_counting_frequency))
+                              .order_by('user__username_slug').select_related('user'),
                               },
                               context_instance=RequestContext(request));
 

+ 13 - 8
misago/apps/admin/online/views.py

@@ -2,20 +2,24 @@ from django.utils.translation import ugettext as _
 from misago.admin import site
 from misago.apps.admin.widgets import ListWidget
 from misago.apps.admin.online.forms import SearchSessionsForm
+from misago.conf import settings
+from django.utils import timezone
+from datetime import timedelta
+
 
 class List(ListWidget):
     admin = site.get_action('online')
     id = 'list'
     columns = (
-               ('owner', _("Session Owner")),
-               ('start', _("Session Start"), 25),
-               ('last', _("Last Click"), 25),
-               )
+        ('owner', _("Session Owner")),
+        ('start', _("Session Start"), 25),
+        ('last', _("Last Click"), 25),
+    )
     default_sorting = 'start'
     sortables = {
-                 'start': 0,
-                 'last': 0,
-                }
+        'start': 0,
+        'last': 0,
+    }
     hide_actions = True
     pagination = 50
     search_form = SearchSessionsForm
@@ -40,4 +44,5 @@ class List(ListWidget):
         return items.prefetch_related('user')
 
     def select_items(self, items):
-        return items.filter(matched=1).filter(admin=0)
+        return items.filter(matched=1).filter(admin=0).filter(
+            last__gte=timezone.now() - timedelta(seconds=settings.online_counting_frequency))