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}}) { 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 this.studentSubmission = cloneDeep(studentSubmission); // we don't want to update the value when the server updates
} }
}; };
@ -152,6 +155,21 @@
this.updateFeedbackText(feedbackText); this.updateFeedbackText(feedbackText);
this._save(); 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() { turnIn() {
this.$apollo.mutate({ this.$apollo.mutate({
mutation: UPDATE_FEEDBACK_WITH_TEXT_MUTATION, mutation: UPDATE_FEEDBACK_WITH_TEXT_MUTATION,
@ -195,12 +213,14 @@
}; };
const data = store.readQuery({query, variables}); const data = store.readQuery({query, variables});
data.studentSubmission.submissionFeedback = Object.assign({}, data.studentSubmission.submissionFeedback, { if (data) {
id: updatedSubmissionFeedback.id, data.studentSubmission.submissionFeedback = Object.assign({}, data.studentSubmission.submissionFeedback, {
final: updatedSubmissionFeedback.final id: updatedSubmissionFeedback.id,
}); final: updatedSubmissionFeedback.final
});
store.writeQuery({query, variables, data}); store.writeQuery({query, variables, data});
}
} }
} catch (e) { } catch (e) {
console.error(e); console.error(e);

View File

@ -1,7 +1,7 @@
from django.contrib import admin from django.contrib import admin
# Register your models here. # Register your models here.
from assignments.models import Assignment, StudentSubmission from assignments.models import Assignment, StudentSubmission, SubmissionFeedback
@admin.register(Assignment) @admin.register(Assignment)
@ -13,3 +13,7 @@ class AssignmentAdmin(admin.ModelAdmin):
class StudentSubmissionAdmin(admin.ModelAdmin): class StudentSubmissionAdmin(admin.ModelAdmin):
pass 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') student_submission = models.OneToOneField(StudentSubmission, on_delete=models.CASCADE, primary_key=True, related_name='submission_feedback')
final = models.BooleanField(default=False) final = models.BooleanField(default=False)
def __str__(self):
return '{} - {}'.format(self.student_submission.student.full_name, self.text)