Fix vanishing text bug on submission feedback

This commit is contained in:
Ramon Wenger 2020-11-17 14:03:10 +01:00
parent 80382d6bb5
commit ecec97a411
3 changed files with 34 additions and 6 deletions

View File

@ -112,6 +112,9 @@
};
},
result({data: {studentSubmission}}) {
if (!studentSubmission.submissionFeedback) { // create something for the cache to find
this.create();
}
this.studentSubmission = cloneDeep(studentSubmission); // we don't want to update the value when the server updates
}
};
@ -152,6 +155,21 @@
this.updateFeedbackText(feedbackText);
this._save();
},
create() {
this.$apollo.mutate({
mutation: UPDATE_FEEDBACK_WITH_TEXT_MUTATION,
variables: {
input: {
submissionFeedback: {
studentSubmission: this.studentSubmission.id,
text: '',
final: false
}
}
},
update: this.updateCache
});
},
turnIn() {
this.$apollo.mutate({
mutation: UPDATE_FEEDBACK_WITH_TEXT_MUTATION,
@ -195,12 +213,14 @@
};
const data = store.readQuery({query, variables});
data.studentSubmission.submissionFeedback = Object.assign({}, data.studentSubmission.submissionFeedback, {
id: updatedSubmissionFeedback.id,
final: updatedSubmissionFeedback.final
});
if (data) {
data.studentSubmission.submissionFeedback = Object.assign({}, data.studentSubmission.submissionFeedback, {
id: updatedSubmissionFeedback.id,
final: updatedSubmissionFeedback.final
});
store.writeQuery({query, variables, data});
store.writeQuery({query, variables, data});
}
}
} catch (e) {
console.error(e);

View File

@ -1,7 +1,7 @@
from django.contrib import admin
# Register your models here.
from assignments.models import Assignment, StudentSubmission
from assignments.models import Assignment, StudentSubmission, SubmissionFeedback
@admin.register(Assignment)
@ -13,3 +13,7 @@ class AssignmentAdmin(admin.ModelAdmin):
class StudentSubmissionAdmin(admin.ModelAdmin):
pass
@admin.register(SubmissionFeedback)
class SubmissionFeedbackAdmin(admin.ModelAdmin):
pass

View File

@ -46,3 +46,7 @@ class SubmissionFeedback(TimeStampedModel):
student_submission = models.OneToOneField(StudentSubmission, on_delete=models.CASCADE, primary_key=True, related_name='submission_feedback')
final = models.BooleanField(default=False)
def __str__(self):
return '{} - {}'.format(self.student_submission.student.full_name, self.text)