From a49d171e755a65bb587951eb187e10e23fd38ba8 Mon Sep 17 00:00:00 2001
From: "robinwilliam.hundt" <robinwilliam.hundt@stud.uni-goettingen.de>
Date: Tue, 7 Aug 2018 01:57:27 +0200
Subject: [PATCH] Secret is now generated if it's empty

---
 core/tests/test_export.py     | 15 ++++++++++-----
 core/views/export.py          |  3 ++-
 frontend/src/store/getters.ts |  3 +++
 grady/settings/live.py        |  4 +++-
 4 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/core/tests/test_export.py b/core/tests/test_export.py
index b0ae6ff7..c7422190 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 7628c7fe..f31e3d4b 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 3cdc0cbe..8c8da5ac 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 05d7bc28..6b5c1401 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))
-- 
GitLab