|
|
@@ -41,6 +41,11 @@ def home(request):
|
|
41
|
41
|
else:
|
|
42
|
42
|
myCounter.lastReset = lastReset[0]
|
|
43
|
43
|
myCounter.lastReset.noSeum = False
|
|
|
44
|
+ if (myCounter.lastReset.who is None or
|
|
|
45
|
+ myCounter.lastReset.who.id == myCounter.id):
|
|
|
46
|
+ myCounter.lastReset.selfSeum = True
|
|
|
47
|
+ else:
|
|
|
48
|
+ myCounter.lastReset.selfSeum = False
|
|
44
|
49
|
myCounter.lastReset.delta = datetime.now(
|
|
45
|
50
|
) - myCounter.lastReset.timestamp.replace(tzinfo=None)
|
|
46
|
51
|
myCounter.seumCount = Reset.objects.filter(
|
|
|
@@ -63,6 +68,11 @@ def home(request):
|
|
63
|
68
|
counter.CSSclass = "warning"
|
|
64
|
69
|
else:
|
|
65
|
70
|
counter.lastReset = lastReset[0]
|
|
|
71
|
+ if (counter.lastReset.who is None or
|
|
|
72
|
+ counter.lastReset.who.id == counter.id):
|
|
|
73
|
+ counter.lastReset.selfSeum = True
|
|
|
74
|
+ else:
|
|
|
75
|
+ counter.lastReset.selfSeum = False
|
|
66
|
76
|
counter.lastReset.noSeum = False
|
|
67
|
77
|
counter.lastReset.delta = datetime.now(
|
|
68
|
78
|
) - counter.lastReset.timestamp.replace(tzinfo=None)
|
|
|
@@ -222,18 +232,28 @@ def resetCounter(request):
|
|
222
|
232
|
# create a form instance and populate it with data from the request:
|
|
223
|
233
|
data = dict(request.POST)
|
|
224
|
234
|
counter = Counter.objects.get(pk=int(data['counter'][0]))
|
|
|
235
|
+ who = Counter.objects.get(pk=int(data['who'][0]))
|
|
225
|
236
|
reset = Reset()
|
|
226
|
237
|
reset.counter = counter
|
|
|
238
|
+ reset.who = who
|
|
227
|
239
|
reset.reason = data['reason'][0]
|
|
228
|
240
|
reset.timestamp = datetime.now()
|
|
229
|
241
|
reset.save()
|
|
230
|
|
- # We send the emails only to those who have an email address
|
|
231
|
|
- emails = [u[0] for u in Counter.objects.all().values_list('email')
|
|
232
|
|
- if u[0] != 'null@localhost']
|
|
|
242
|
+ # We send the emails only to those who want
|
|
|
243
|
+ emails = [u.email for u in Counter.objects.all()
|
|
|
244
|
+ if u.email_notifications]
|
|
233
|
245
|
# Now send emails to everyone
|
|
|
246
|
+ if (reset.who is None or
|
|
|
247
|
+ reset.who.id == counter.id):
|
|
|
248
|
+ selfSeum = True
|
|
|
249
|
+ else:
|
|
|
250
|
+ selfSeum = False
|
|
234
|
251
|
text_of_email = render_to_string(
|
|
235
|
252
|
'seumEmail.txt', {'reason': data['reason'][0],
|
|
236
|
|
- 'name': counter.name})
|
|
|
253
|
+ 'name': counter.name,
|
|
|
254
|
+ 'who': reset.who,
|
|
|
255
|
+ 'selfSeum': selfSeum,
|
|
|
256
|
+ })
|
|
237
|
257
|
email_to_send = EmailMessage(
|
|
238
|
258
|
'[SeumBook] ' + counter.trigramme + ' a le seum',
|
|
239
|
259
|
text_of_email,
|
|
|
@@ -247,6 +267,11 @@ def resetCounter(request):
|
|
247
|
267
|
@login_required
|
|
248
|
268
|
def counter(request, id_counter):
|
|
249
|
269
|
|
|
|
270
|
+ try:
|
|
|
271
|
+ myCounter = Counter.objects.get(user__id=request.user.id)
|
|
|
272
|
+ except Counter.DoesNotExist:
|
|
|
273
|
+ return HttpResponseRedirect(reverse('login'))
|
|
|
274
|
+
|
|
250
|
275
|
counter = Counter.objects.get(pk=id_counter)
|
|
251
|
276
|
resets = Reset.objects.filter(counter=counter).order_by('-timestamp')
|
|
252
|
277
|
firstReset = copy.copy(resets[len(resets) - 1])
|
|
|
@@ -260,6 +285,11 @@ def counter(request, id_counter):
|
|
260
|
285
|
else:
|
|
261
|
286
|
counter.lastReset = resets[0]
|
|
262
|
287
|
counter.lastReset.noSeum = False
|
|
|
288
|
+ if (counter.lastReset.who is None or
|
|
|
289
|
+ counter.lastReset.who.id == counter.id):
|
|
|
290
|
+ counter.lastReset.selfSeum = True
|
|
|
291
|
+ else:
|
|
|
292
|
+ counter.lastReset.selfSeum = False
|
|
263
|
293
|
counter.lastReset.delta = datetime.now(
|
|
264
|
294
|
) - counter.lastReset.timestamp.replace(tzinfo=None)
|
|
265
|
295
|
counter.lastReset.formatted_delta = format_timedelta(
|
|
|
@@ -271,6 +301,11 @@ def counter(request, id_counter):
|
|
271
|
301
|
counter.seumCount, locale='fr', threshold=1)
|
|
272
|
302
|
|
|
273
|
303
|
for reset in resets:
|
|
|
304
|
+ if (reset.who is None or
|
|
|
305
|
+ reset.who.id == reset.counter.id):
|
|
|
306
|
+ reset.selfSeum = True
|
|
|
307
|
+ else:
|
|
|
308
|
+ reset.selfSeum = False
|
|
274
|
309
|
reset.date = format_datetime(
|
|
275
|
310
|
reset.timestamp, locale='fr',
|
|
276
|
311
|
format="EEEE dd MMMM Y 'à' HH:mm").capitalize()
|
|
|
@@ -309,5 +344,6 @@ def counter(request, id_counter):
|
|
309
|
344
|
'counter': counter,
|
|
310
|
345
|
'chart': chart,
|
|
311
|
346
|
'resets': resets,
|
|
312
|
|
- 'seumFrequency': seumFrequency
|
|
|
347
|
+ 'seumFrequency': seumFrequency,
|
|
|
348
|
+ 'myCounter': myCounter,
|
|
313
|
349
|
})
|