|
|
@@ -5,6 +5,8 @@ from datetime import datetime
|
|
5
|
5
|
from django import forms
|
|
6
|
6
|
from django.http import HttpResponseRedirect
|
|
7
|
7
|
from django.core import serializers
|
|
|
8
|
+from graphos.renderers import gchart
|
|
|
9
|
+from graphos.sources.simple import SimpleDataSource
|
|
8
|
10
|
|
|
9
|
11
|
class resetCounterForm(forms.ModelForm):
|
|
10
|
12
|
class Meta:
|
|
|
@@ -15,6 +17,9 @@ class resetCounterForm(forms.ModelForm):
|
|
15
|
17
|
def home(request):
|
|
16
|
18
|
#Display counters
|
|
17
|
19
|
counters = Counter.objects.all()
|
|
|
20
|
+ lastResets = [['Trigramme','Jours sans seum']]
|
|
|
21
|
+ #Calculates infos for each counter
|
|
|
22
|
+ maxJSS = 0
|
|
18
|
23
|
for counter in counters:
|
|
19
|
24
|
lastReset = Reset.objects.filter(counter=counter).order_by('-timestamp')
|
|
20
|
25
|
if (lastReset.count() == 0):
|
|
|
@@ -22,9 +27,16 @@ def home(request):
|
|
22
|
27
|
else:
|
|
23
|
28
|
counter.lastReset = lastReset[0]
|
|
24
|
29
|
counter.lastReset.delta = datetime.now()-counter.lastReset.timestamp.replace(tzinfo=None)
|
|
|
30
|
+ lastResets.append([counter.trigramme,(counter.lastReset.delta.total_seconds())/(24*3600)])
|
|
|
31
|
+ if (counter.lastReset.delta.total_seconds())/(24*3600) > maxJSS:
|
|
|
32
|
+ maxJSS = (counter.lastReset.delta.total_seconds())/(24*3600)
|
|
25
|
33
|
counter.lastReset.formatted_delta = format_timedelta(counter.lastReset.delta,locale='fr')
|
|
26
|
34
|
counter.isHidden = "hidden"
|
|
27
|
|
- return render(request,'counterTemplate.html', {'counters' : counters})
|
|
|
35
|
+
|
|
|
36
|
+ #Generate graph
|
|
|
37
|
+ data = SimpleDataSource(lastResets)
|
|
|
38
|
+ chart = gchart.ColumnChart(data,options={'title' : 'Graphe du seum', 'legend' : 'none','vAxis' : { 'viewWindow' : { 'max' : maxJSS+0.25} , 'ticks' : [1,2,3,4,5,6,7,8,9,10,11,12,13,14],'title' : 'Jours sans seum' }, 'hAxis' : {'title' : 'Trigramme' }})
|
|
|
39
|
+ return render(request,'counterTemplate.html', {'counters' : counters, 'chart' : chart})
|
|
28
|
40
|
|
|
29
|
41
|
def resetCounter(request):
|
|
30
|
42
|
#Update Form counter
|