aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mass-graduation.js6
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),