From 55b9822e77f888d2065a807f697d067d56508ec0 Mon Sep 17 00:00:00 2001
From: "robinwilliam.hundt" <robinwilliam.hundt@stud.uni-goettingen.de>
Date: Mon, 19 Feb 2018 09:24:17 +0100
Subject: [PATCH] FINALLY fix final checkbox

---
 .../toolbars/AnnotatedSubmissionBottomToolbar.vue    |  3 ++-
 frontend/src/store/modules/submission-notes.js       |  1 +
 frontend/src/store/mutations.js                      | 12 ++++++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/frontend/src/components/submission_notes/toolbars/AnnotatedSubmissionBottomToolbar.vue b/frontend/src/components/submission_notes/toolbars/AnnotatedSubmissionBottomToolbar.vue
index b34f78f7..4d0d5bff 100644
--- a/frontend/src/components/submission_notes/toolbars/AnnotatedSubmissionBottomToolbar.vue
+++ b/frontend/src/components/submission_notes/toolbars/AnnotatedSubmissionBottomToolbar.vue
@@ -61,7 +61,8 @@
     data () {
       return {
         scoreError: '',
-        isFinal: !this.$store.getters['submissionNotes/isFeedbackCreation'] || this.$store.getters.isReviewer
+        isFinal: this.$store.state.submissionNotes.origFeedback.isFinal ||
+          !this.$store.getters['submissionNotes/isFeedbackCreation'] || this.$store.getters.isReviewer
       }
     },
     props: {
diff --git a/frontend/src/store/modules/submission-notes.js b/frontend/src/store/modules/submission-notes.js
index c25e9954..1c0cd792 100644
--- a/frontend/src/store/modules/submission-notes.js
+++ b/frontend/src/store/modules/submission-notes.js
@@ -31,6 +31,7 @@ function initialState () {
     hasOrigFeedback: false,
     origFeedback: {
       score: null,
+      isFinal: false,
       feedback_lines: {}
     },
     updatedFeedback: {
diff --git a/frontend/src/store/mutations.js b/frontend/src/store/mutations.js
index 98a5330b..fdd4d9ed 100644
--- a/frontend/src/store/mutations.js
+++ b/frontend/src/store/mutations.js
@@ -36,9 +36,21 @@ const mutations = {
       acc[curr['pk']] = curr
       return acc
     }, {})
+    for (let subscription of Object.values(state.subscriptions)) {
+      for (let assignment of subscription.assignments) {
+        if (assignment.feedback) {
+          Vue.set(assignment.feedback, 'feedback_stage_for_user', subscription.feedback_stage)
+        }
+      }
+    }
   },
   [mut.SET_SUBSCRIPTION] (state, subscription) {
     Vue.set(state.subscriptions, subscription.pk, subscription)
+    for (let assignment of subscription.assignments) {
+      if (assignment.feedback) {
+        Vue.set(assignment.feedback, 'feedback_stage_for_user', subscription.feedback_stage)
+      }
+    }
   },
   [mut.DELETE_SUBSCRIPTION] (state, {pk}) {
     Vue.delete(state.subscriptions, pk)
-- 
GitLab