diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2026-10-15 19:33:53 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2026-10-15 19:33:53 +0200 |
| commit | f095f524b7e07f81363e524b48241d6215dd58e8 (patch) | |
| tree | 8a026a889cab1aa26ad0b93d38e4b8b33825f9e3 | |
| parent | 25d723f829cadb8de1763a9158e53c88fe082f87 (diff) | |
| download | bycs-sol-f095f524b7e07f81363e524b48241d6215dd58e8.tar.gz bycs-sol-f095f524b7e07f81363e524b48241d6215dd58e8.zip | |
mass-graduation: prevent re-graduation of already graduated students
| -rw-r--r-- | src/mass-graduation.js | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mass-graduation.js b/src/mass-graduation.js index 7ff8f1d..047ec19 100644 --- a/src/mass-graduation.js +++ b/src/mass-graduation.js @@ -146,6 +146,7 @@ async function loadGroup() { } } +const graduatedStudents = new Set(); function submitMassGraduation() { const state = document.getElementById("submit-mass-graduation-state"); state.innerHTML = ""; @@ -158,8 +159,11 @@ function submitMassGraduation() { const promises = []; for (const li of document.querySelectorAll("li.group-member, li.group-mandatory-member")) { const student = li.student; + if (graduatedStudents.has(student)) continue; + const mandatory = li.classList.contains("group-mandatory-member"); if (li.querySelector(".group-member-green").innerHTML === "X") { + graduatedStudents.add(student); promises.push( submitGraduationChange( GraduationChange.newGreenPointChange(mandatory, "", name), @@ -168,6 +172,7 @@ function submitMassGraduation() { ); } if (li.querySelector(".group-member-orange").innerHTML === "X") { + graduatedStudents.add(student); promises.push( submitGraduationChange( GraduationChange.newOrangePointChange(mandatory, "", name), @@ -176,6 +181,7 @@ function submitMassGraduation() { ); } if (li.querySelector(".group-member-red").innerHTML === "X") { + graduatedStudents.add(student); promises.push( submitGraduationChange( GraduationChange.newRedPointChange(mandatory, "", name), |
