+ })
+
+@super_user_required
+def interface_switch(request):
+ if request.GET and request.GET.get('to', None) and request.GET['to'] in ('default', 'djstyle'):
+ settings.DJSTYLE_ADMIN_INTERFACE.set_value(request.GET['to'] == 'djstyle')
+
+ return HttpResponseRedirect(reverse('admin_index'))
+
+@admin_page
+def statistics(request):
+ today = datetime.now()
+ last_month = today - timedelta(days=30)
+
+ last_month_questions = Question.objects.filter(deleted=None, added_at__gt=last_month
+ ).order_by('added_at').values_list('added_at', flat=True)
+
+ last_month_n_questions = Question.objects.filter(deleted=None, added_at__lt=last_month).count()
+ qgraph_data = simplejson.dumps([
+ (time.mktime(d.timetuple()) * 1000, i + last_month_n_questions)
+ for i, d in enumerate(last_month_questions)
+ ])
+
+ last_month_users = User.objects.filter(date_joined__gt=last_month
+ ).order_by('date_joined').values_list('date_joined', flat=True)
+
+ last_month_n_users = User.objects.filter(date_joined__lt=last_month).count()
+
+ ugraph_data = simplejson.dumps([
+ (time.mktime(d.timetuple()) * 1000, i + last_month_n_users)
+ for i, d in enumerate(last_month_users)
+ ])
+
+ return 'osqaadmin/statistics.html', {
+ 'graphs': [
+ {
+ 'id': 'questions_graph',
+ 'caption': _("Questions Graph"),
+ 'data': qgraph_data
+ },{
+ 'id': 'userss_graph',
+ 'caption': _("Users Graph"),
+ 'data': ugraph_data
+ }
+ ]
+ }
+