Commit b118f436 by Piotr Mitros

Tracking improvements. Calculator is tracked

parent 3a8a1bbb
......@@ -245,6 +245,10 @@ class LoncapaModule(XModule):
correct_map = self.lcp.grade_answers(answers)
except:
self.lcp = LoncapaProblem(filename, id=lcp_id, state=old_state)
print {'error':sys.exc_info(),
'answers':answers,
'seed':self.lcp.seed,
'filename':self.lcp.filename}
return json.dumps({'success':'syntax'})
self.attempts = self.attempts + 1
......
......@@ -125,7 +125,12 @@ LOGGING = {
}
}
TRACK_DIR = None
#TRACK_DIR = None
DEBUG_TRACK_LOG = False
# Maximum length of a tracking string. We don't want e.g. a file upload in our log
TRACK_MAX_EVENT = 1000
# Maximum length of log file before starting a new one.
MAXLOG = 500
execfile("../settings.py")
......
......@@ -14,7 +14,6 @@ else:
logfile = None
file_index = 0
log_index = 0
MAXLOG = 5
filename = None
def make_file():
......@@ -31,20 +30,28 @@ def make_file():
def log_event(event):
global logfile, log_index
event_str = json.dumps(event)
if settings.TRACK_DIR == None:
# print event
return
if logfile == None or log_index >= MAXLOG:
if logfile == None or log_index >= settings.MAXLOG:
make_file()
event_str = json.dumps(event)
logfile.write(event_str+'\n')
logfile.write(event_str[:settings.TRACK_MAX_EVENT]+'\n')
if settings.DEBUG_TRACK_LOG:
print event_str
log_index = log_index + 1
def user_track(request):
try: # TODO: Do the same for many of the optional META parameters
username = request.user.username
except:
username = "anonymous"
# TODO: Move a bunch of this into log_event
event = {
"username" : request.user.username,
"username" : username,
"session" : request.META['HTTP_COOKIE'],
"ip" : request.META['REMOTE_ADDR'],
"event_source" : "browser",
......@@ -57,8 +64,13 @@ def user_track(request):
return HttpResponse('success')
def server_track(request, event_type, event, page=None):
try:
username = request.user.username
except:
username = "anonymous"
event = {
"username" : request.user.username,
"username" : username,
"ip" : request.META['REMOTE_ADDR'],
"event_source" : "server",
"event_type" : event_type,
......
......@@ -10,6 +10,8 @@ import courseware.capa.calc
from django.core.mail import send_mail
from django.conf import settings
import datetime
import sys
import track.views
def calculate(request):
# if not request.user.is_authenticated():
......@@ -18,6 +20,9 @@ def calculate(request):
try:
result = courseware.capa.calc.evaluator({}, {}, equation)
except:
event = {'error':map(str,sys.exc_info()),
'equation':equation}
track.views.server_track(request, 'error:calc', event, page='calc')
return HttpResponse(json.dumps({'result':'Invalid syntax'}))
return HttpResponse(json.dumps({'result':result}))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment