|
|
@@ -54,13 +54,30 @@ export class GradeTeacher implements OnInit {
|
|
|
.subscribe(gradeList => this.gradeList = gradeList);
|
|
|
}
|
|
|
}
|
|
|
+ hasGradeForStudentInSubject(studentId: number, subjectId: number): boolean {
|
|
|
+ return !!this.gradeList?.some(
|
|
|
+ grade => grade.student.id === studentId && grade.subject.id === subjectId
|
|
|
+ );
|
|
|
+ }
|
|
|
|
|
|
addGrade(): void {
|
|
|
this.student = this.studentList?.find(student => student.id === Number(this.form.student));
|
|
|
+ if (!this.student) {
|
|
|
+ this.errorMessage = 'Please select a student.';
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ this.student.id !== undefined &&
|
|
|
+ this.subjectId !== undefined &&
|
|
|
+ this.hasGradeForStudentInSubject(this.student.id, this.subjectId)
|
|
|
+ ) {
|
|
|
+ this.errorMessage = 'Student already has a grade';
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (this.subject && this.student) {
|
|
|
this.gradeToAdd = new Grade(this.form.grade, this.subject, this.student);
|
|
|
}
|
|
|
- if(this.gradeToAdd) {
|
|
|
+ if (this.gradeToAdd) {
|
|
|
this.gradeService.addGrade(this.gradeToAdd).subscribe(
|
|
|
data => {
|
|
|
console.log(data);
|