aboutsummaryrefslogtreecommitdiff
path: root/src/admin-tools.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/admin-tools.js')
-rw-r--r--src/admin-tools.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/admin-tools.js b/src/admin-tools.js
index f598c35..9da744b 100644
--- a/src/admin-tools.js
+++ b/src/admin-tools.js
@@ -1,5 +1,6 @@
import { GraduationChange, submitGraduationChange } from "./graduation-ENV.ts";
import { fetchStudent, fetchStudents } from "./student-ENV.ts";
+import { fetchCourses } from "./moodle-ENV.ts";
let outputNode;
function output(msg) {
@@ -38,11 +39,41 @@ async function coachAssignmentImport() {
output("Coach Zuweisung importiert");
}
+async function updateActivities(course) {
+ const promises = [];
+ for (const activityName of ["Cockpit", "Klassenliste", "Coaching", "Admin-Tools"]) {
+ const activity = course.getActivity(activityName);
+ const input = document.getElementById(`${activityName.toLowerCase()}-file-input`);
+ if (input.value === "") continue;
+ const text = input.files[0].text();
+ promises.push((await activity).update(await text));
+ }
+ return Promise.all(promises);
+}
+
+export async function updateCourses() {
+ output("loading courses ...");
+ const courses = await fetchCourses("SOL Graduierung");
+ output(`updating ${courses.length} courses ... `);
+ const promises = [];
+ for (const course of courses) {
+ promises.push(updateActivities(course));
+ }
+
+ Promise.all(promises)
+ .then(() => {
+ output("Updating activities done.");
+ })
+ .catch((_error) => {});
+}
+
async function init() {
outputNode = document.getElementById("admin-tools-output");
+ output("Admin tools ready.");
document
.getElementById("admin-tools-coach-import-submit")
.addEventListener("click", coachAssignmentImport);
+ document.getElementById("activity-update-submit").addEventListener("click", updateCourses);
}
if (document.readyState === "loading") {