diff gpp/forums/management/commands/forum_stats.py @ 164:f7a6b8fe4556

Implement #46, add a forums stat feature like phpBB.
author Brian Neal <bgneal@gmail.com>
date Mon, 28 Dec 2009 16:52:42 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gpp/forums/management/commands/forum_stats.py	Mon Dec 28 16:52:42 2009 +0000
@@ -0,0 +1,29 @@
+"""
+forum_stats is a custom manage.py command for the forums application. 
+It is intended to be called from a cron job to calculate various forum
+statistics.
+"""
+from django.core.management.base import NoArgsCommand
+from django.core.cache import cache
+
+from forums.models import Statistic
+import forums.middleware
+
+
+class Command(NoArgsCommand):
+    help = "Run periodically to gather forum statistics."
+
+    def handle_noargs(self, **options):
+        # update maximum users online statistic
+        users_online = cache.get(forums.middleware.USERS_ONLINE_KEY)
+        if users_online:
+            try:
+                stats = Statistic.objects.get(pk=1)
+            except Statistic.DoesNotExist:
+                stats = Statistic(max_users=0)
+
+            curr_users = len(users_online)
+
+            if curr_users > stats.max_users:
+                stats.max_users = curr_users
+                stats.save()