aboutsummaryrefslogtreecommitdiffstats
path: root/servo/views/stats.py
diff options
context:
space:
mode:
authorFilipp Lepalaan <filipp@mac.com>2016-05-01 23:54:58 +0300
committerFilipp Lepalaan <filipp@mac.com>2016-05-01 23:54:58 +0300
commit47cc21441b437fe148c72bd181059728b47bdf9b (patch)
treecd96c0a704cb31837c6e0b2e9affe998d24acd7b /servo/views/stats.py
parent65df597329bbb602dd382695c639aab3776123ea (diff)
parent82e1fe63447f5c4d33d8a3ed7c365e7eab1006c0 (diff)
downloadServo-47cc21441b437fe148c72bd181059728b47bdf9b.tar.gz
Servo-47cc21441b437fe148c72bd181059728b47bdf9b.tar.bz2
Servo-47cc21441b437fe148c72bd181059728b47bdf9b.zip
Merge branch 'develop'
Diffstat (limited to 'servo/views/stats.py')
-rw-r--r--servo/views/stats.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/servo/views/stats.py b/servo/views/stats.py
index 0acf9f7..6a9f9a8 100644
--- a/servo/views/stats.py
+++ b/servo/views/stats.py
@@ -421,3 +421,30 @@ def repairs(request):
totals['turnaround'] = ServoTimeDelta(totals['turnaround']/totals['dispatched'])
return render(request, "stats/newstats.html", locals())
+
+
+def devices(request):
+ data = prep_view(request)
+ data['form'] = DeviceStatsForm()
+ start_date = data['initial']['start_date']
+ end_date = data['initial']['end_date']
+
+ if request.method == 'POST':
+ form = DeviceStatsForm(request.POST)
+ if form.is_valid():
+ start_date = form.cleaned_data['start_date']
+ end_date = form.cleaned_data['end_date']
+
+ cursor = connection.cursor()
+ query = '''SELECT d.description device, count(o) AS orders, count(r) AS repairs
+ FROM servo_device d, servo_order o, servo_repair r, servo_orderdevice od
+ WHERE d.id = od.device_id
+ AND o.id = od.order_id
+ AND r.order_id = o.id
+ AND (o.created_at, o.created_at) OVERLAPS (%s, %s)
+ GROUP BY d.description''';
+ cursor.execute(query, [start_date, end_date])
+ data['results'] = cursor.fetchall()
+ data['title'] = _('Device statistics')
+
+ return render(request, "stats/devices.html", data)