From 5c4bf21a778448141bb4127c32f61ca7f288d751 Mon Sep 17 00:00:00 2001 From: minie4 Date: Thu, 2 Jun 2022 16:30:33 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Save=20original=20teacher=20in=20su?= =?UTF-8?q?bstitution=20entries?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/api/index.js | 2 ++ server/parser/index.js | 6 +++++- server/prisma/schema.prisma | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/server/api/index.js b/server/api/index.js index d736e76..6c3df30 100644 --- a/server/api/index.js +++ b/server/api/index.js @@ -81,6 +81,7 @@ export async function getSubstitutions(req, res) { lesson: element.lesson, date: new Date(element.date).getTime(), notes: element.notes, + teacher: element.teacher, change: {}, }; if (element.changedRoom) substitution.change.room = element.changedRoom; @@ -145,6 +146,7 @@ export async function getHistory(req, res) { lesson: element.substitution.lesson, updatedAt: new Date(element.createdAt).getTime(), date: new Date(element.substitution.date).getTime(), + teacher: element.teacher, change: element.changes, notes: element.notes, parseEventId: element.parseEventId, diff --git a/server/parser/index.js b/server/parser/index.js index cb5e7ec..4de7c4e 100644 --- a/server/parser/index.js +++ b/server/parser/index.js @@ -123,7 +123,8 @@ export class Parser { substitution.lesson == change.lesson && classes.sort().join(",") == substitution.class.sort().join(",") && - substitution.changedSubject == change.subject; + substitution.changedSubject == change.subject && + substitution.teacher == (change.teacher || ""); } ); const matchingSubstitution = knownSubstitutions[matchingSubstitutionId]; @@ -136,6 +137,7 @@ export class Parser { date: new Date(date), type: change.type == "Entfall" ? "cancellation" : "change", lesson: parseInt(change.lesson), + teacher: change.teacher || "", changedTeacher: change.changedTeacher, changedRoom: change.room || undefined, changedSubject: change.subject, @@ -154,6 +156,7 @@ export class Parser { lesson: parseInt(change.lesson), date: new Date(date), notes: change.notes, + teacher: change.teacher || "", change: { teacher: change.changedTeacher, room: change.room || undefined, @@ -224,6 +227,7 @@ export class Parser { lesson: remainingSubstitution.lesson, date: remainingSubstitution.date.getTime(), notes: remainingSubstitution.notes, + teacher: remainingSubstitution.teacher, change: { teacher: remainingSubstitution.changedTeacher, room: remainingSubstitution.changedRoom, diff --git a/server/prisma/schema.prisma b/server/prisma/schema.prisma index a2660dc..f319f1b 100644 --- a/server/prisma/schema.prisma +++ b/server/prisma/schema.prisma @@ -25,6 +25,7 @@ model Substitution { date DateTime type String lesson Int + teacher String changedTeacher String? changedRoom String? changedSubject String? @@ -40,6 +41,7 @@ model SubstitutionChange { substitution Substitution @relation(fields: [substitutionId], references: [id]) substitutionId Int type String + teacher String? changes Json? parseEvent ParseEvent @relation(fields: [parseEventId], references: [id]) parseEventId Int