diff --git a/convert.py b/convert.py index 5a1e4d165cea522b5683d06f078bdd6b8c7f882e..94eb5ed5e1f61e149ea184867529bb4c0c7743d3 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 f8f18d90d16426e2421108a05ab8df2c52a0a4d5..37e8380bedf7384b4ce5b5016f01bcd39a1a2ede 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 615cffd9b1486f683f26ed5ac7431536e1c8c3af..4aa8e4a9443e7188bcc516217f9369236d22b1a8 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 b322258eb6672e039925b630e962d3cbc30fc235..147e85b0ba280b1331aff127aa92676da8945df4 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,