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>
</p>
</div>
<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>
<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>
</div>
</div>
</template>

View File

@ -21,7 +21,7 @@
>
</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>
</div>
</template>
@ -82,7 +82,7 @@
return this.assignment.id ? this.assignment.id.replace(/=/g, '') : ''
},
feedbackText() {
let feedback = this.assignment.submission.submissionfeedback;
let feedback = this.assignment.submission.submissionFeedback;
return `Feedback von ${feedback.teacher.firstName} ${feedback.teacher.lastName}: ${feedback.text}`;
}
},

View File

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

View File

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

View File

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

View File

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

View File

@ -42,6 +42,6 @@ class StudentSubmission(TimeStampedModel):
class SubmissionFeedback(TimeStampedModel):
text = models.TextField(blank=True)
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)

View File

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

View File

@ -68,7 +68,7 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
id
text
document
submissionfeedback {
submission_feedback {
text
}
}
@ -89,7 +89,7 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
id
text
document
submissionfeedback {
submission_feedback {
text
}
}
@ -110,7 +110,7 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
id
text
document
submissionfeedback {
submission_feedback {
text
}
}
@ -173,14 +173,14 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
SubmissionFeedbackFactory(teacher=self.teacher, final=False, student_submission=self.student_submission)
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):
submission_feedback = SubmissionFeedbackFactory(teacher=self.teacher, final=True,
student_submission=self.student_submission)
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)
def test_teacher_can_see_feedback_for_submission(self):
@ -190,7 +190,7 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
self.student_submission.save()
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)
def test_rogue_teacher_cannot_see_feedback(self):
@ -200,4 +200,4 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
self.student_submission.save()
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'))