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
@@ -72,6 +72,7 @@ MIDDLEWARE_CLASSES = [ | @@ -72,6 +72,7 @@ MIDDLEWARE_CLASSES = [ | ||
72 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', | 72 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', |
73 | 'django.middleware.locale.LocaleMiddleware', | 73 | 'django.middleware.locale.LocaleMiddleware', |
74 | 74 | ||
75 | + 'core.middleware.TimeSpentMiddleware', | ||
75 | #libs-middleware | 76 | #libs-middleware |
76 | 77 | ||
77 | ] | 78 | ] |
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 @@ | @@ -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 | + |