diff options
author | Filipp Lepalaan <filipp@mac.com> | 2016-05-01 23:54:58 +0300 |
---|---|---|
committer | Filipp Lepalaan <filipp@mac.com> | 2016-05-01 23:54:58 +0300 |
commit | 47cc21441b437fe148c72bd181059728b47bdf9b (patch) | |
tree | cd96c0a704cb31837c6e0b2e9affe998d24acd7b /servo/views/stats.py | |
parent | 65df597329bbb602dd382695c639aab3776123ea (diff) | |
parent | 82e1fe63447f5c4d33d8a3ed7c365e7eab1006c0 (diff) | |
download | Servo-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.py | 27 |
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) |