diff --git a/core/tests/test_export.py b/core/tests/test_export.py index b0ae6ff7a9ccd8248e5bd859e0d9296ca6b4ad89..c7422190177899e61721fe5b424ca0432f171d18 100644 --- a/core/tests/test_export.py +++ b/core/tests/test_export.py @@ -9,6 +9,11 @@ class ExportCSVTest(TestCase): @classmethod def setUpTestData(cls): cls.data = make_test_data(data_dict={ + 'exams': [{ + 'module_reference': 'Test Exam 01', + 'total_score': 100, + 'pass_score': 60, + }], 'submission_types': [ { 'name': '01. Sort', @@ -24,8 +29,8 @@ class ExportCSVTest(TestCase): } ], 'students': [ - {'username': 'student01'}, - {'username': 'student02'} + {'username': 'student01', 'exam': 'Test Exam 01'}, + {'username': 'student02', 'exam': 'Test Exam 01'} ], 'reviewers': [ {'username': 'reviewer'} @@ -81,6 +86,6 @@ class ExportCSVTest(TestCase): def test_data_is_correct(self): head, student1, student2, _ = self.response.content.split(b'\r\n') - self.assertIn(b'Matrikel;Name;Sum;01. Sort;02. Shuffle', head) - self.assertIn(b';;5;5;0', student1) - self.assertIn(b';;0;0;0', student2) + self.assertIn(b'Matrikel;Name;Exam;Sum;01. Sort;02. Shuffle', head) + self.assertIn(b';;Test Exam 01;5;5;0', student1) + self.assertIn(b';;Test Exam 01;0;0;0', student2) diff --git a/core/views/export.py b/core/views/export.py index 7628c7fe0e19d27675aec47216e7e166170d1835..f31e3d4b0674e8f251575a5ba38d0b01051ca386 100644 --- a/core/views/export.py +++ b/core/views/export.py @@ -18,7 +18,7 @@ class StudentCSVExport(APIView): def get_renderer_context(self): context = super().get_renderer_context() - context['header'] = ('Matrikel', 'Name', 'Sum', + context['header'] = ('Matrikel', 'Name', 'Exam', 'Sum', *SubmissionType.objects.values_list('name', flat=True)) context['delimiter'] = ';' @@ -33,6 +33,7 @@ class StudentCSVExport(APIView): content = [{'Matrikel': student.matrikel_no, 'Name': student.user.fullname, 'Sum': student.overall_score, + 'Exam': student.exam.module_reference, **student.score_per_submission() } for student in StudentInfo.get_annotated_score_submission_list()] diff --git a/frontend/src/store/getters.ts b/frontend/src/store/getters.ts index 3cdc0cbe2850114a1e33d632a759cd4a2da74a4c..8c8da5ac02655f4e358093e094b24343cb33066b 100644 --- a/frontend/src/store/getters.ts +++ b/frontend/src/store/getters.ts @@ -12,6 +12,9 @@ const getters = { }, getSubmissionType: state => pk => { return state.submissionTypes[pk] + }, + findStudentByUser: state => user => { + return Object.values(state.students).find((student: any) => student.user === user) } } diff --git a/grady/settings/live.py b/grady/settings/live.py index 05d7bc2825803701af3b6ed0c779d1f12c89ed3c..6b5c140135725b48a55f4e8b01809ba34a81ce94 100644 --- a/grady/settings/live.py +++ b/grady/settings/live.py @@ -19,7 +19,9 @@ DEBUG = False SECRET_FILE = 'secret' try: SECRET_KEY = open(SECRET_FILE).read().strip() -except IOError: + if len(SECRET_KEY) == 0: + raise Exception +except (IOError, Exception): try: SECRET_KEY = ''.join(secrets.choice(string.printable) for i in range(50))