diff --git a/frontend/src/store/modules/submission-notes.ts b/frontend/src/store/modules/submission-notes.ts index 4dfd9d2997e4a7a64475475d257c92a5a9cec4a3..7d5ba0939d022298f16afe14eb2624b4bd208e36 100644 --- a/frontend/src/store/modules/submission-notes.ts +++ b/frontend/src/store/modules/submission-notes.ts @@ -141,14 +141,17 @@ async function submitFeedback ({state}: BareActionContext<SubmissionNotesState, isFinal: isFinal, ofSubmission: state.submission.pk } - if (Object.keys(state.updatedFeedback.feedbackLines || {}).length > 0) { - feedback.feedbackLines = state.updatedFeedback.feedbackLines - } if (state.origFeedback.score === undefined && state.updatedFeedback.score === undefined) { throw new Error('You need to give a score.') - } else if (state.updatedFeedback.score !== undefined) { - feedback.score = state.updatedFeedback.score + } else { + feedback.score = state.updatedFeedback.score || state.origFeedback.score || 0 + } + if (Object.keys(state.updatedFeedback.feedbackLines || {}).length > 0) { + feedback.feedbackLines = state.updatedFeedback.feedbackLines + } else if (feedback.score! < SubmissionNotes.submissionType.fullScore!) { + throw new Error('You need to provide a reason for a reduced score.') } + // delete those comments that have been marked for deletion await SubmissionNotes.deleteComments() if (!state.hasOrigFeedback) { return api.submitFeedbackForAssignment({feedback})