Change submissionfeedback to submission_feedback or submissionFeedback,

respectively
This commit is contained in:
Ramon Wenger 2019-12-09 10:30:14 +01:00
parent 84a69b24f1
commit 89e3925590
9 changed files with 29 additions and 29 deletions

View File

@ -9,8 +9,8 @@
<student-submission-document :document="submission.document" class="entry-document"></student-submission-document> <student-submission-document :document="submission.document" class="entry-document"></student-submission-document>
</p> </p>
</div> </div>
<div class="student-submission__feedback entry" v-if="submission.submissionfeedback"> <div class="student-submission__feedback entry" v-if="submission.submissionFeedback">
<p class="entry__text" :class="{'entry__text--final': submission.submissionfeedback.final}">{{submission.submissionfeedback.text | trimToLength(50)}}</p> <p class="entry__text" :class="{'entry__text--final': submission.submissionFeedback.final}">{{submission.submissionFeedback.text | trimToLength(50)}}</p>
</div> </div>
</div> </div>
</template> </template>

View File

@ -21,7 +21,7 @@
> >
</submission-form> </submission-form>
<div v-if="this.assignment.submission.submissionfeedback" class="assignment__feedback"> <div v-if="this.assignment.submission.submissionFeedback" class="assignment__feedback">
<p>{{feedbackText}}</p> <p>{{feedbackText}}</p>
</div> </div>
</template> </template>
@ -82,7 +82,7 @@
return this.assignment.id ? this.assignment.id.replace(/=/g, '') : '' return this.assignment.id ? this.assignment.id.replace(/=/g, '') : ''
}, },
feedbackText() { feedbackText() {
let feedback = this.assignment.submission.submissionfeedback; let feedback = this.assignment.submission.submissionFeedback;
return `Feedback von ${feedback.teacher.firstName} ${feedback.teacher.lastName}: ${feedback.text}`; return `Feedback von ${feedback.teacher.firstName} ${feedback.teacher.lastName}: ${feedback.text}`;
} }
}, },

View File

@ -19,7 +19,7 @@ query AssignmentWithSubmissions($id: ID!) {
} }
} }
} }
submissionfeedback { submissionFeedback {
id id
text text
final final

View File

@ -8,7 +8,7 @@ fragment AssignmentParts on AssignmentNode {
text text
final final
document document
submissionfeedback { submissionFeedback {
id id
text text
teacher { teacher {

View File

@ -11,7 +11,7 @@ query StudentSubmissions($id: ID!) {
title title
assignment assignment
} }
submissionfeedback { submissionFeedback {
id id
text text
final final

View File

@ -62,7 +62,7 @@
return `${this.studentSubmission.student.firstName} ${this.studentSubmission.student.lastName}` return `${this.studentSubmission.student.firstName} ${this.studentSubmission.student.lastName}`
}, },
feedback() { feedback() {
return this.studentSubmission.submissionfeedback ? this.studentSubmission.submissionfeedback : {text: '', final: false}; return this.studentSubmission.submissionFeedback ? this.studentSubmission.submissionFeedback : {text: '', final: false};
} }
}, },
@ -92,7 +92,7 @@
input: { input: {
submissionFeedback: { submissionFeedback: {
studentSubmission: this.studentSubmission.id, studentSubmission: this.studentSubmission.id,
text: this.studentSubmission.submissionfeedback.text, text: this.studentSubmission.submissionFeedback.text,
} }
} }
}, },
@ -120,7 +120,7 @@
input: { input: {
submissionFeedback: { submissionFeedback: {
studentSubmission: this.studentSubmission.id, studentSubmission: this.studentSubmission.id,
text: this.studentSubmission.submissionfeedback.text, text: this.studentSubmission.submissionFeedback.text,
final: true final: true
} }
} }
@ -139,7 +139,7 @@
input: { input: {
submissionFeedback: { submissionFeedback: {
studentSubmission: this.studentSubmission.id, studentSubmission: this.studentSubmission.id,
text: this.studentSubmission.submissionfeedback.text, text: this.studentSubmission.submissionFeedback.text,
final: false final: false
} }
} }
@ -156,7 +156,7 @@
}; };
const data = store.readQuery({query, variables}); const data = store.readQuery({query, variables});
data.studentSubmission.submissionfeedback = Object.assign({}, updatedSubmissionFeedback); data.studentSubmission.submissionFeedback = Object.assign({}, updatedSubmissionFeedback);
store.writeQuery({query, variables, data}); store.writeQuery({query, variables, data});
} }
} catch (e) { } catch (e) {
@ -166,7 +166,7 @@
}, },
updateFeedbackText(text) { updateFeedbackText(text) {
this.studentSubmission = Object.assign({}, this.studentSubmission, { this.studentSubmission = Object.assign({}, this.studentSubmission, {
submissionfeedback: Object.assign({}, this.studentSubmission.submissionfeedback, {text: text}) submissionFeedback: Object.assign({}, this.studentSubmission.submissionFeedback, {text: text})
}) })
} }
}, },
@ -183,7 +183,7 @@
}, },
text: '', text: '',
document: '', document: '',
submissionfeedback: { submissionFeedback: {
text: '', text: '',
final: false final: false
} }

View File

@ -42,6 +42,6 @@ class StudentSubmission(TimeStampedModel):
class SubmissionFeedback(TimeStampedModel): class SubmissionFeedback(TimeStampedModel):
text = models.TextField(blank=True) text = models.TextField(blank=True)
teacher = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, related_name='feedbacks') teacher = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, related_name='feedbacks')
student_submission = models.OneToOneField(StudentSubmission, on_delete=models.CASCADE, primary_key=True) 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)

View File

@ -15,31 +15,31 @@ class SubmissionFeedbackNode(DjangoObjectType):
class StudentSubmissionNode(DjangoObjectType): class StudentSubmissionNode(DjangoObjectType):
submissionfeedback = graphene.Field(SubmissionFeedbackNode) submission_feedback = graphene.Field(SubmissionFeedbackNode)
class Meta: class Meta:
model = StudentSubmission model = StudentSubmission
filter_fields = [] filter_fields = []
interfaces = (relay.Node,) interfaces = (relay.Node,)
def resolve_submissionfeedback(self, info, **kwargs): def resolve_submission_feedback(self, info, **kwargs):
user = info.context.user user = info.context.user
if not hasattr(self, 'submissionfeedback'): if not hasattr(self, 'submission_feedback'):
return None return None
# teacher path # teacher path
if user.has_perm('users.can_manage_school_class_content'): if user.has_perm('users.can_manage_school_class_content'):
if self.submissionfeedback.teacher == user: if self.submission_feedback.teacher == user:
return self.submissionfeedback return self.submission_feedback
else: else:
raise PermissionDenied('Missing permissions') raise PermissionDenied('Missing permissions')
# student path # student path
if self.submissionfeedback.final: if self.submission_feedback.final:
return self.submissionfeedback return self.submission_feedback
return None return None

View File

@ -68,7 +68,7 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
id id
text text
document document
submissionfeedback { submission_feedback {
text text
} }
} }
@ -89,7 +89,7 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
id id
text text
document document
submissionfeedback { submission_feedback {
text text
} }
} }
@ -110,7 +110,7 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
id id
text text
document document
submissionfeedback { submission_feedback {
text text
} }
} }
@ -173,14 +173,14 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
SubmissionFeedbackFactory(teacher=self.teacher, final=False, student_submission=self.student_submission) SubmissionFeedbackFactory(teacher=self.teacher, final=False, student_submission=self.student_submission)
result = self._fetch_assignment_student(self.student1) result = self._fetch_assignment_student(self.student1)
self.assertIsNone(result.get('data').get('submissionfeedback')) self.assertIsNone(result.get('data').get('submission_feedback'))
def test_student_does_see_final_feedback(self): def test_student_does_see_final_feedback(self):
submission_feedback = SubmissionFeedbackFactory(teacher=self.teacher, final=True, submission_feedback = SubmissionFeedbackFactory(teacher=self.teacher, final=True,
student_submission=self.student_submission) student_submission=self.student_submission)
result = self._fetch_assignment_student(self.student1) result = self._fetch_assignment_student(self.student1)
self.assertEqual(result.get('data').get('assignment').get('submission').get('submissionfeedback') self.assertEqual(result.get('data').get('assignment').get('submission').get('submission_feedback')
.get('text'), submission_feedback.text) .get('text'), submission_feedback.text)
def test_teacher_can_see_feedback_for_submission(self): def test_teacher_can_see_feedback_for_submission(self):
@ -190,7 +190,7 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
self.student_submission.save() self.student_submission.save()
result = self._fetch_assignment_teacher(self.teacher) result = self._fetch_assignment_teacher(self.teacher)
self.assertEqual(result.get('data').get('assignment').get('submissions')[0].get('submissionfeedback') self.assertEqual(result.get('data').get('assignment').get('submissions')[0].get('submission_feedback')
.get('text'), submission_feedback.text) .get('text'), submission_feedback.text)
def test_rogue_teacher_cannot_see_feedback(self): def test_rogue_teacher_cannot_see_feedback(self):
@ -200,4 +200,4 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
self.student_submission.save() self.student_submission.save()
result = self._fetch_assignment_teacher(self.teacher2) result = self._fetch_assignment_teacher(self.teacher2)
self.assertIsNone(result.get('data').get('assignment').get('submissions')[0].get('submissionfeedback')) self.assertIsNone(result.get('data').get('assignment').get('submissions')[0].get('submission_feedback'))