Commit c5135269 by Justin Riley

use full traceback when returning errors from handle_ajax

parent 1e9beac7
...@@ -3,6 +3,7 @@ import json ...@@ -3,6 +3,7 @@ import json
import logging import logging
import urlparse import urlparse
import requests import requests
import traceback
from lxml import etree from lxml import etree
from pkg_resources import resource_string from pkg_resources import resource_string
...@@ -225,8 +226,8 @@ class ProctorModule(ProctorFields, XModule): ...@@ -225,8 +226,8 @@ class ProctorModule(ProctorFields, XModule):
username = data.get("username") username = data.get("username")
return self.submission_history(username) return self.submission_history(username)
#if dispatch == 'status': # if dispatch == 'status':
#return self.status() # return self.status()
# if dispatch == 'grades': # if dispatch == 'grades':
# return self.grades() # return self.grades()
...@@ -249,18 +250,18 @@ class ProctorModule(ProctorFields, XModule): ...@@ -249,18 +250,18 @@ class ProctorModule(ProctorFields, XModule):
pminfo.get_assignments_attempted_and_failed( pminfo.get_assignments_attempted_and_failed(
username, reset=True, wipe_randomize_history=wipe_history) username, reset=True, wipe_randomize_history=wipe_history)
return self.status(username) return self.status(username)
except Exception as exc: except Exception:
return json.dumps({"error": str(exc)}) return json.dumps({"error": traceback.format_exc()})
def status(self, username): def status(self, username):
try: try:
student = self.pp.user student = self.pp.user
pminfo = module_tree_reset.ProctorModuleInfo(self.runtime.course_id) pminfo = module_tree_reset.ProctorModuleInfo(self.runtime.course_id)
status = pminfo.get_student_status(username) status = pminfo.get_student_status(username)
except Exception as err: except Exception:
log.exception("Failed to get status for %s" % student) log.exception("Failed to get status for %s" % student)
status = {'msg': 'Error getting grades for %s' % student, status = {'msg': 'Error getting grades for %s' % student,
'error': True, 'errstr': str(err)} 'error': True, 'errstr': traceback.format_exc()}
return json.dumps(status) return json.dumps(status)
def submission_history(self, username): def submission_history(self, username):
...@@ -280,10 +281,10 @@ class ProctorModule(ProctorFields, XModule): ...@@ -280,10 +281,10 @@ class ProctorModule(ProctorFields, XModule):
grade=e.grade, grade=e.grade,
max_grade=e.max_grade, max_grade=e.max_grade,
answers=state['student_answers'])) answers=state['student_answers']))
except Exception as err: except Exception:
log.exception("Failed to get status for %s" % username) log.exception("Failed to get status for %s" % username)
status = {'msg': 'Error getting grades for %s' % username, status = {'msg': 'Error getting grades for %s' % username,
'error': True, 'errstr': str(err)} 'error': True, 'errstr': traceback.format_exc()}
return json.dumps(status) return json.dumps(status)
# TODO: investigate whether this is needed or not # TODO: investigate whether this is needed or not
......
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