From fd40558a7eadfc016197fec782d9a3b2a3f84825 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Thu, 3 Sep 2026 20:58:48 +0200 Subject: admin-tools: remove obsolete button and add coach assignment import --- src/admin-tools.js | 50 +++++++++++++++++++------------------------------- 1 file changed, 19 insertions(+), 31 deletions(-) (limited to 'src/admin-tools.js') diff --git a/src/admin-tools.js b/src/admin-tools.js index d8e1bf7..bcbbcbc 100644 --- a/src/admin-tools.js +++ b/src/admin-tools.js @@ -1,5 +1,5 @@ -import { DB } from "./database-ENV.ts"; -import { fetchStudents } from "./student-ENV.ts"; +import { GraduationChange, submitGraduationChange } from "./graduation-ENV.ts"; +import { fetchStudent } from "./student-ENV.ts"; let outputNode; function output(msg) { @@ -12,42 +12,30 @@ function output(msg) { outputNode.appendChild(line); } -const studentsPromise = fetchStudents(); +async function coachAssignmentImport() { + const csv = document.getElementById("admin-tools-coach-import").value; + const assignments = {}; -async function createGraduationDbs() { - const students = await studentsPromise; - - for (const student of students) { - if (!DB.getStudentDbs(student)) { + for (const line of csv.split("\n")) { + const [studentName, ...coaches] = line.trim().split(";"); + const student = await fetchStudent(undefined, studentName); + if (student === null) { + output(`${studentName} nicht gefunden`); + continue; } + assignments[student.id] = coaches; } + + const assignmentChange = GraduationChange.newCoachAssignmentChange(assignments); + await submitGraduationChange(assignmentChange); + output("Coach Zuweisung importiert"); } async function init() { outputNode = document.getElementById("admin-tools-output"); - const students = await studentsPromise; - - output("Suche nach Datenbanken ..."); - let missing = 0; - for (const student of students) { - const dbs = await DB.getStudentDbs(student); - if (!dbs) { - output(`\t${student.name}: Datenbanken fehlen`); - missing += 3; - continue; - } - for (const type of ["shadow", "public", "submit"]) { - if (!dbs[type]) { - output(`\t${student.name} ${student.group}: ${type} Datenbank fehlt`); - missing++; - } - } - } - if (missing) { - output(`${missing} von ${students.length * 3} Datenbanken fehlen!`); - } else { - output("Alle Datenbanken vorhanden!"); - } + document + .getElementById("admin-tools-coach-import-submit") + .addEventListener("click", coachAssignmentImport); } if (document.readyState === "loading") { -- cgit v1.2.3