@@ -698,8 +701,8 @@ export function AfwezigheidPage() {
);
}
-/* -------------------------------- Leerplein ------------------------------- */
-// Gezamenlijk structuurbeheer: leerplein -> groep -> subgroep.
+/* ----------------------------- Groepsindeling ----------------------------- */
+// Gezamenlijk beheer: bovenliggende groep -> groep -> subgroep.
export function LeerpleinPage() {
const [leerpleinen, setLeerpleinen] = useState([]);
const [groepen, setGroepen] = useState([]);
@@ -745,7 +748,6 @@ export function LeerpleinPage() {
const toggleArray = (lijst, id) => lijst.includes(id) ? lijst.filter((x) => x !== id) : [...lijst, id];
const groepNaam = (id) => groepen.find((g) => g.id === id)?.naam || "—";
- const leerpleinNaam = (id) => leerpleinen.find((lp) => lp.id === id)?.naam || "—";
const leerpleinVanGroep = (groepId) => leerpleinen.find((lp) => (lp.groepen || []).includes(Number(groepId)));
const leerpleinVanSubgroep = (subgroepId) => leerpleinen.find((lp) => (lp.subgroepen || []).includes(Number(subgroepId)));
const leerlingenVanGroep = (groepId) => leerlingen.filter((l) => l.groep === Number(groepId));
@@ -820,7 +822,7 @@ export function LeerpleinPage() {
}
async function opslaanGroep(e) {
e.preventDefault();
- if (!groepForm.leerplein) { setError("Kies een bovenliggend leerplein voor deze groep."); return; }
+ if (!groepForm.leerplein) { setError(`Kies een ${BOVENGROEP_LABEL_LC} voor deze groep.`); return; }
try {
const payload = { naam: groepForm.naam, omschrijving: groepForm.omschrijving };
const opgeslagen = editGroepId ? await updateResource("groepen", editGroepId, payload) : await createResource("groepen", payload);
@@ -834,7 +836,7 @@ export function LeerpleinPage() {
async function opslaanSubgroep(e) {
e.preventDefault();
if (!subgroepForm.groep) { setError("Kies een groep waar deze subgroep onder valt."); return; }
- if (subgroepForm.ledenBron === "leerplein" && !subgroepForm.leerplein) { setError("Kies een leerplein voor leden uit het hele leerplein."); return; }
+ if (subgroepForm.ledenBron === "leerplein" && !subgroepForm.leerplein) { setError(`Kies een ${BOVENGROEP_LABEL_LC} voor leden uit de volledige ${BOVENGROEP_LABEL_LC}.`); return; }
try {
const payload = {
naam: subgroepForm.naam,
@@ -852,8 +854,8 @@ export function LeerpleinPage() {
}
async function verwijderLeerplein(id) {
const lp = leerpleinen.find((x) => x.id === id);
- if ((lp?.groepen || []).length > 0) { setError("Verplaats of verwijder eerst de groepen onder dit leerplein."); return; }
- if (!confirm("Dit leerplein verwijderen?")) return;
+ if ((lp?.groepen || []).length > 0) { setError(`Verplaats of verwijder eerst de groepen onder deze ${BOVENGROEP_LABEL_LC}.`); return; }
+ if (!confirm(`Deze ${BOVENGROEP_LABEL_LC} verwijderen?`)) return;
try { await deleteResource("leerpleinen", id); await laadAlles(); } catch (err) { setError(err.message); }
}
async function verwijderGroep(id) {
@@ -885,18 +887,18 @@ export function LeerpleinPage() {
return (
-
Groepenstructuur
-
Beheer leerpleinen, groepen en subgroepen op één plek. Een groep hoort altijd onder een leerplein; een subgroep hoort altijd onder een groep.
+
Groepsindeling
+
Beheer bovenliggende groepen, groepen en subgroepen op één plek. Een groep hoort altijd onder een bovenliggende groep; een subgroep hoort altijd onder een groep.
@@ -913,7 +915,7 @@ export function LeerpleinPage() {
Er zijn groepen zonder leerplein. Bewerk ze hieronder en kies een bovenliggend leerplein: {groepen.filter((g) => !leerpleinVanGroep(g.id)).map((g) => g.naam).join(", ")}
+
Er zijn groepen zonder {BOVENGROEP_LABEL_LC}. Bewerk ze hieronder en kies een {BOVENGROEP_LABEL_LC}: {groepen.filter((g) => !leerpleinVanGroep(g.id)).map((g) => g.naam).join(", ")}
)}
)}
@@ -1277,7 +1296,7 @@ export function leerlingenVanBlok(blok, ctx) {
if (blok.leerling) return [blok.leerling];
return [];
}
-// Welke leerlingen vallen binnen een gekozen scope (klas/leerplein/leerling)?
+// Welke leerlingen vallen binnen een gekozen scope (klas/bovenliggende groep/leerling)?
export function scopeLeerlingen(scope, ctx) {
if (scope.type === "leerling") return [scope.id];
if (scope.type === "klas") return ctx.leerlingen.filter((l) => l.groep === scope.id).map((l) => l.id);
@@ -1504,7 +1523,7 @@ function BlokBewerker({ blok, ctx, onSluit, onKlaar }) {
}
/* ------------------------------- Groepsindeling --------------------------- */
-// Verdeel een hoofdgroep (of leerplein) kolomsgewijs in subgroepen: per kolom
+// Verdeel een hoofdgroep (of bovenliggende groep) kolomsgewijs in subgroepen: per kolom
// de subgroep met haar verantwoordelijke(n) en de vakken die er gegeven worden.
function Groepsindeling({ groepen, leerpleinen, subgroepen, medewerkers, blokken, onWijzig }) {
const [type, setType] = useState("groep");
@@ -1544,13 +1563,13 @@ function Groepsindeling({ groepen, leerpleinen, subgroepen, medewerkers, blokken
return (
-
Kies een hoofdgroep of leerplein en verdeel die in subgroepen. Per subgroep zie je de vakken en wie verantwoordelijk is.
+
Kies een hoofdgroep of bovenliggende groep en verdeel die in subgroepen. Per subgroep zie je de vakken en wie verantwoordelijk is.