Commit cb06091c by Justin Riley

cleanup get_assignments_attempted_and_failed

parent 3f9b1ef7
...@@ -296,35 +296,33 @@ class ProctorModuleInfo(object): ...@@ -296,35 +296,33 @@ class ProctorModuleInfo(object):
ret["grade_%s" % stat['name']] = '' ret["grade_%s" % stat['name']] = ''
return ret return ret
def _get_od_for_assignment(self, student, assignment):
return OrderedDict(id=student.id,
name=student.profile.name,
username=student.username,
assignment=assignment['name'],
problem=assignment['problem'],
date=str(datetime.datetime.now()),
earned=assignment['earned'],
possible=assignment['possible'])
def get_assignments_attempted_and_failed(self, student, do_reset=False): def get_assignments_attempted_and_failed(self, student, do_reset=False):
status = self.get_student_status(student) status = self.get_student_status(student)
assignments = [] failed = [self._get_od_for_assignment(a) for a in status['assignments']
for stat in status['assignments']: if a['attempted'] and a['earned'] != a['possible']]
if stat['attempted']: for f in failed:
if not stat['earned'] == stat['possible']:
log.info( log.info(
"Student %s Assignment %s attempted '%s' but failed " "Student %s Assignment %s attempted '%s' but failed "
"(%s/%s)" % (student, stat['name'], stat['problem'], "(%s/%s)" % (student, f['assignment'], f['problem'],
stat['earned'], stat['possible'])) f['earned'], f['possible']))
assignments.append(OrderedDict(
id=student.id,
name=student.profile.name,
username=student.username,
assignment=stat['name'],
problem=stat['problem'],
date=str(datetime.datetime.now()),
earned=stat['earned'],
possible=stat['possible'],
))
if do_reset: if do_reset:
aaf = assignments[-1]
try: try:
log.debug('resetting %s for student %s' % log.debug('resetting %s for student %s' %
(aaf['assignment'], aaf['username'])) (f['assignment'], f['username']))
cloc = self.course.location cloc = self.course.location
assi_url = Location(cloc.tag, cloc.org, assi_url = Location(cloc.tag, cloc.org,
cloc.course, 'proctor', cloc.course, 'proctor',
aaf['assignment']) f['assignment'])
pmod = self.ms.get_instance(self.course.id, pmod = self.ms.get_instance(self.course.id,
assi_url.url()) assi_url.url())
tnset = TreeNodeSet(self.course.id, pmod, self.ms, tnset = TreeNodeSet(self.course.id, pmod, self.ms,
...@@ -333,8 +331,8 @@ class ProctorModuleInfo(object): ...@@ -333,8 +331,8 @@ class ProctorModuleInfo(object):
log.debug(str(msg)) log.debug(str(msg))
except Exception: except Exception:
log.exception("Failed to do reset of %s for %s" % log.exception("Failed to do reset of %s for %s" %
(aaf['assignment'], student)) (f['assignment'], student))
return assignments return failed
def getip(request): def getip(request):
......
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