Denis Merigoux лет назад: 9
Родитель
Сommit
b64fff7395
1 измененных файлов с 15 добавлено и 8 удалено
  1. 15 8
      counter/views.py

+ 15 - 8
counter/views.py

18
 import copy
18
 import copy
19
 from django.utils import timezone
19
 from django.utils import timezone
20
 
20
 
21
+# JSS above this limit will not be displayed on the home page col graph
22
+JSS_limit = 7
23
+# Number of counters displayed on the home page's best seumeurs graph
24
+bestSeumeursNumber = 15
25
+
21
 
26
 
22
 @login_required
27
 @login_required
23
 def home(request):
28
 def home(request):
24
-    # JSS above this limit will not be displayed on the col graph
25
-    JSS_limit = 7
29
+    # Used later to keep track of the maximum JSS
26
     maxJSS = 0
30
     maxJSS = 0
27
-    bestSeumeursNumber = 15
28
     lastResets = []
31
     lastResets = []
29
     no_seum_delta = timedelta.max
32
     no_seum_delta = timedelta.max
30
 
33
 
58
     # Building data for counters display
61
     # Building data for counters display
59
     counters = Counter.objects.all()
62
     counters = Counter.objects.all()
60
     for counter in counters:
63
     for counter in counters:
64
+        #Only the last reset is displayed
61
         lastReset = Reset.objects.filter(
65
         lastReset = Reset.objects.filter(
62
             counter=counter).order_by('-timestamp')
66
             counter=counter).order_by('-timestamp')
63
-        if (lastReset.count() == 0):
64
-            # This person never had the seum
67
+        if (lastReset.count() == 0):  # This person never had the seum
65
             counter.lastReset = Reset()
68
             counter.lastReset = Reset()
66
             counter.lastReset.delta = no_seum_delta
69
             counter.lastReset.delta = no_seum_delta
67
             counter.lastReset.noSeum = True
70
             counter.lastReset.noSeum = True
68
             counter.CSSclass = "warning"
71
             counter.CSSclass = "warning"
69
-        else:
72
+        else:  # This person already had the seum
70
             counter.lastReset = lastReset[0]
73
             counter.lastReset = lastReset[0]
74
+            # To display the last seum we have to know if it is self-inflicted
71
             if (counter.lastReset.who is None or
75
             if (counter.lastReset.who is None or
72
                     counter.lastReset.who.id == counter.id):
76
                     counter.lastReset.who.id == counter.id):
73
                 counter.lastReset.selfSeum = True
77
                 counter.lastReset.selfSeum = True
74
             else:
78
             else:
75
                 counter.lastReset.selfSeum = False
79
                 counter.lastReset.selfSeum = False
80
+            # Now we compute the duration since the reset
76
             counter.lastReset.noSeum = False
81
             counter.lastReset.noSeum = False
77
             counter.lastReset.delta = datetime.now(
82
             counter.lastReset.delta = datetime.now(
78
             ) - counter.lastReset.timestamp.replace(tzinfo=None)
83
             ) - counter.lastReset.timestamp.replace(tzinfo=None)
102
         counter.lastReset.formatted_delta = format_timedelta(
107
         counter.lastReset.formatted_delta = format_timedelta(
103
             counter.lastReset.delta, locale='fr', threshold=1)
108
             counter.lastReset.delta, locale='fr', threshold=1)
104
         counter.isHidden = "hidden"
109
         counter.isHidden = "hidden"
110
+
111
+    # Eventually we sort the counters to display the most recent resets top
105
     counters = sorted(counters, key=lambda t: t.lastReset.delta)
112
     counters = sorted(counters, key=lambda t: t.lastReset.delta)
113
+
106
     # Column graph
114
     # Column graph
107
     if (len(lastResets) == 0):
115
     if (len(lastResets) == 0):
108
         noGraph = True
116
         noGraph = True
127
         })
135
         })
128
 
136
 
129
     # Timeline graph
137
     # Timeline graph
130
-    # Data pre-processing
131
     resets = Reset.objects.filter(
138
     resets = Reset.objects.filter(
132
         timestamp__gte=timezone.now() - timedelta(days=1))
139
         timestamp__gte=timezone.now() - timedelta(days=1))
133
     if (resets.count() == 0):
140
     if (resets.count() == 0):
153
                               'f': reset.who.trigramme + ' à ' +
160
                               'f': reset.who.trigramme + ' à ' +
154
                               reset.counter.trigramme +
161
                               reset.counter.trigramme +
155
                               " : " + reset.reason}
162
                               " : " + reset.reason}
156
-        # Drawing the graph
157
         line_data = ModelDataSource(resets, fields=['timestamp', 'Seum'])
163
         line_data = ModelDataSource(resets, fields=['timestamp', 'Seum'])
158
         line_chart = gchart.LineChart(line_data, options={
164
         line_chart = gchart.LineChart(line_data, options={
159
             'lineWidth': 0,
165
             'lineWidth': 0,
219
             'hAxis': {'title': 'Mois'},
225
             'hAxis': {'title': 'Mois'},
220
         })
226
         })
221
 
227
 
228
+    # At last we render the page
222
     return render(request, 'homeTemplate.html', {
229
     return render(request, 'homeTemplate.html', {
223
         'counters': counters,
230
         'counters': counters,
224
         'col_chart': col_chart,
231
         'col_chart': col_chart,