diff options
Diffstat (limited to 'src/graduation-common.ts')
| -rw-r--r-- | src/graduation-common.ts | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/graduation-common.ts b/src/graduation-common.ts index ca4efde..3c90e34 100644 --- a/src/graduation-common.ts +++ b/src/graduation-common.ts @@ -16,7 +16,7 @@ const LEVEL_IMAGES = [ ]; interface CoachMapping { - [studentId: number]: string; + [studentId: number]: Array<string>; } class GraduationChange { @@ -115,7 +115,7 @@ class GraduationChange { class Graduation { student: Student; - coach: string = ""; + coaches: Array<string> = []; green: number = 0; orange: number = 0; red: number = 0; @@ -168,7 +168,7 @@ class Graduation { case "CoachZuweisung": // Reset the effective marks if (this.student.id in change.context.zuweisungen) - this.coach = change.context.zuweisungen[this.student.id]; + this.coaches = change.context.zuweisungen[this.student.id]; break; default: @@ -185,7 +185,7 @@ class Graduation { removeChange(change: GraduationChange) { let changes: Array<GraduationChange> = this.changes; // Reset the graduation - this.coach = ""; + this.coaches = []; this.green = 0; this.orange = 0; this.red = 0; @@ -222,16 +222,17 @@ class Graduation { } } -async function submitGraduationChange(graduation: Graduation, change: GraduationChange) { - graduation.addChange(change); +async function submitGraduationChange(change: GraduationChange, graduation?: Graduation) { + if (typeof graduation !== "undefined") graduation.addChange(change); + const db = await getGraduationDb(); - return db.saveEntry(JSON.stringify(change.dbFields())); + return await db.saveEntry(JSON.stringify(change.dbFields())); } async function deleteGraduationChange(graduation: Graduation, change: GraduationChange) { graduation.removeChange(change); const db = await getGraduationDb(); - return db.deleteEntries([change.changeId]); + return await db.deleteEntries([change.changeId]); } export { |
