aboutsummaryrefslogtreecommitdiff
path: root/src/mass-graduation.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/mass-graduation.js')
-rw-r--r--src/mass-graduation.js68
1 files changed, 29 insertions, 39 deletions
diff --git a/src/mass-graduation.js b/src/mass-graduation.js
index 6d53e55..46c4efe 100644
--- a/src/mass-graduation.js
+++ b/src/mass-graduation.js
@@ -126,52 +126,42 @@ async function loadGroup() {
}
}
-function graduationChangeForGroupMember(li) {
- const student = li.student;
- const mandatory = li.classList.contains("group-mandatory-member");
- let change = null;
- if (li.querySelector(".group-member-green").innerHTML === "X") {
- change = GraduationChange.newGreenPointChange(mandatory, "", name);
- } else if (li.querySelector(".group-member-orange").innerHTML === "X") {
- change = GraduationChange.newOrangePointChange(mandatory, "", name);
- } else if (li.querySelector(".group-member-red").innerHTML === "X") {
- change = GraduationChange.newRedPointChange(mandatory, "", name);
- }
-
- return [change, student];
-}
-
function submitMassGraduation() {
const state = document.getElementById("submit-mass-graduation-state");
state.innerHTML = "";
- document.getElementById("submit-mass-graduation").disabled = true;
-
- // TODO(muhq): await graduation promises
-
- const mandatoryChanges = [];
- for (const li of document.querySelectorAll("li.group-mandatory-member")) {
- const [ch, s] = graduationChangeForGroupMember(li);
- if (ch !== null) mandatoryChanges.push([ch, s]);
- }
-
- if (mandatoryChanges.length !== 5) {
- // not all mandatory graduations are selected
- state.style.display = "inline";
- state.innerHTML = "Bitte bewerte alle als erforderlich angezeigten Schülys.";
- return;
- }
-
state.classList.add("submit-mass-graduation-inprogress");
state.style.display = "unset";
- const promises = [];
- for (const [ch, s] of mandatoryChanges) {
- promises.push(submitGraduationChange(ch, s.graduation));
- }
+ // TODO(muhq): await graduation promises
- for (const li of document.querySelectorAll("li.group-member")) {
- const [ch, s] = graduationChangeForGroupMember(li);
- if (ch !== null) promises.push(submitGraduationChange(ch, s.graduation));
+ const promises = [];
+ for (const li of document.querySelectorAll("li.group-member, li.group-mandatory-member")) {
+ const student = li.student;
+ const mandatory = li.classList.contains("group-mandatory-member");
+ if (li.querySelector(".group-member-green").innerHTML === "X") {
+ promises.push(
+ submitGraduationChange(
+ GraduationChange.newGreenPointChange(mandatory, "", name),
+ student.graduation,
+ ),
+ );
+ }
+ if (li.querySelector(".group-member-orange").innerHTML === "X") {
+ promises.push(
+ submitGraduationChange(
+ GraduationChange.newOrangePointChange(mandatory, "", name),
+ student.graduation,
+ ),
+ );
+ }
+ if (li.querySelector(".group-member-red").innerHTML === "X") {
+ promises.push(
+ submitGraduationChange(
+ GraduationChange.newRedPointChange(mandatory, "", name),
+ student.graduation,
+ ),
+ );
+ }
}
Promise.all(promises)