Tracking improvements. Calculator is tracked
This commit is contained in:
@@ -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}))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user