From f99da307c9c0b438b381f649ec2bb0f290308514 Mon Sep 17 00:00:00 2001 From: janmax <mail-github@jmx.io> Date: Tue, 2 May 2017 12:35:20 +0200 Subject: [PATCH] Fixes html encoding of submissions and csv export --- convert.py | 4 ++-- core/models.py | 2 +- core/templates/core/feedback_form.html | 2 +- core/views/export_csv.py | 4 +++- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/convert.py b/convert.py index 5a1e4d16..94eb5ed5 100755 --- a/convert.py +++ b/convert.py @@ -82,7 +82,7 @@ def sheet_iter_data(sheet): """ yields all rows that are not of empty type as one string """ for row in (sheet.row(i) for i in range(sheet.nrows)): if any(map(lambda c: c.ctype, row)): - yield row[0].value + row[1].value + yield ''.join(c.value for c in row) # nice! name2mat = dict(sheet_iter_meta(meta)) @@ -108,7 +108,7 @@ if args.NUMBER_OF_TASKS: if args.usernames: with open(args.usernames) as data: mat_to_email = json.JSONDecoder().decode(data.read()) - usernames = {user.name : mat_to_email[name2mat[user.name]].split('@')[0] for (user, *_) in root} + usernames = {user.name : mat_to_email[name2mat[user.name]].split('@')[0] if name2mat[user.name] in mat_to_email else ''.join(filter(str.isupper, user.name)) + name2mat[user.name] for (user, *_) in root} else: # legacy support / fallback usernames = {user.name : ''.join(filter(str.isupper, user.name)) + name2mat[user.name] for (user, *_) in root} diff --git a/core/models.py b/core/models.py index f8f18d90..37e8380b 100644 --- a/core/models.py +++ b/core/models.py @@ -149,7 +149,7 @@ class Submission(models.Model): # we do not want this tutor to correct the same submission twice if type_slug: ready = ready.filter(type__slug=type_slug) - ready = ready.exclude(feedback_list__of_tutor=tutor) + ready = ready.exclude(feedback__of_tutor=tutor) if not ready: return False diff --git a/core/templates/core/feedback_form.html b/core/templates/core/feedback_form.html index 615cffd9..4aa8e4a9 100644 --- a/core/templates/core/feedback_form.html +++ b/core/templates/core/feedback_form.html @@ -155,7 +155,7 @@ // we need this one for the student readonly var editor_student = ace.edit("student_text"); - editor_student.setValue(`{{feedback.of_submission.text}}`, -1); + editor_student.setValue(`{{feedback.of_submission.text|safe}}`, -1); editor_student.getSession().setMode("ace/mode/c_cpp"); editor_student.setOptions({ readOnly: true, diff --git a/core/views/export_csv.py b/core/views/export_csv.py index b322258e..147e85b0 100644 --- a/core/views/export_csv.py +++ b/core/views/export_csv.py @@ -17,7 +17,9 @@ def export_csv(request): for student in Student.objects.all(): submissions = Submission.objects.filter(student=student) - score_list = [s.final_feedback.score if s.final_feedback else 0 for s in submissions.order_by('type__name')] + score_list = [s.feedback.score if hasattr(s, 'feedback') else 0 for s in submissions.order_by('type__name')] + if not score_list: + score_list = [0] * SubmissionType.objects.count() writer.writerow([ student.matrikel_no, student.name, -- GitLab