Commit d57aa261fea47854687b21d7e2559e9ed08e4fb2

Authored by Zambom
1 parent 1b967580

Creating middleware to handle time spent in page [Issue: #231]

amadeus/settings.py
... ... @@ -72,6 +72,7 @@ MIDDLEWARE_CLASSES = [
72 72 'django.middleware.clickjacking.XFrameOptionsMiddleware',
73 73 'django.middleware.locale.LocaleMiddleware',
74 74  
  75 + 'core.middleware.TimeSpentMiddleware',
75 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

amadeus/uploads/links/default.jpg 0 → 100644

19.5 KB

amadeus/uploads/users/Captura_de_tela_de_2016-09-21_21-09-40.png 0 → 100644

165 KB

core/middleware.py 0 → 100644
... ... @@ -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 +
... ...