Commit d57aa261fea47854687b21d7e2559e9ed08e4fb2
1 parent
1b967580
Exists in
master
and in
5 other branches
Creating middleware to handle time spent in page [Issue: #231]
Showing
7 changed files
with
41 additions
and
0 deletions
Show diff stats
amadeus/settings.py
amadeus/uploads/django-summernote/2016-11-03/46bdc2b1-ba27-4385-b504-89916637edca.jpg
0 → 100644
25.6 KB
amadeus/uploads/django-summernote/2016-11-03/bde587ad-9c4a-4e81-b07d-8f8aa5dced21.jpeg
0 → 100644
12.2 KB
amadeus/uploads/django-summernote/2016-11-03/eaa22970-1d01-4deb-8232-60fd2be4f9fa.jpeg
0 → 100644
12.2 KB
19.5 KB
165 KB
... | ... | @@ -0,0 +1,40 @@ |
1 | +from datetime import datetime | |
2 | +from django.shortcuts import get_object_or_404 | |
3 | +import json | |
4 | + | |
5 | +from core.models import Log | |
6 | + | |
7 | +class TimeSpentMiddleware(object): | |
8 | + def __init__(self, get_response = None): | |
9 | + self.get_response = get_response | |
10 | + | |
11 | + def process_request(self, request): | |
12 | + log_id = request.session.get('log_id', None) | |
13 | + | |
14 | + if not log_id is None: | |
15 | + log = get_object_or_404(Log, id = log_id) | |
16 | + | |
17 | + date_time_click = datetime.strptime(request.session.get('time_spent'), "%Y-%m-%d %H:%M:%S.%f") | |
18 | + _now = datetime.now() | |
19 | + | |
20 | + time_spent = _now - date_time_click | |
21 | + | |
22 | + secs = time_spent.total_seconds() | |
23 | + hours = int(secs / 3600) | |
24 | + minutes = int(secs / 60) % 60 | |
25 | + secs = secs % 60 | |
26 | + | |
27 | + log_context = json.loads(log.context) | |
28 | + | |
29 | + log_context['time_spent'] = {} | |
30 | + log_context['time_spent']['hours'] = hours | |
31 | + log_context['time_spent']['minutes'] = minutes | |
32 | + log_context['time_spent']['seconds'] = secs | |
33 | + | |
34 | + log.context = json.dumps(log_context) | |
35 | + | |
36 | + log.save() | |
37 | + | |
38 | + request.session['log_id'] = None | |
39 | + | |
40 | + | ... | ... |