diff options
Diffstat (limited to 'src')
| -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), |
