diff --git a/backend/config/settings.py b/backend/config/settings.py
index 8e25f7c..2a77179 100644
--- a/backend/config/settings.py
+++ b/backend/config/settings.py
@@ -72,7 +72,7 @@ CORE_APPS = [
MODULE_APPS = [
"modules.printing", # Printen/Exporteren
"modules.accounts", # Multi-user & toegang
- "modules.leerplein", # Leerplein (groepsstructuur)
+ "modules.leerplein", # Bovenliggende groepen
"modules.stage", # Stage (intern/extern)
]
diff --git a/backend/core/apps.py b/backend/core/apps.py
index 7808263..831d81f 100644
--- a/backend/core/apps.py
+++ b/backend/core/apps.py
@@ -32,7 +32,7 @@ class CoreConfig(AppConfig):
MenuItem("Roostermaker", "/roostermaker", icon="calendar", order=12),
# Submenu Organisatie: wie hoort waar.
MenuItem("Personen", "/personen", icon="users", order=20, group="Organisatie"),
- MenuItem("Groepsindeling", "/structuur", icon="layers", order=24, group="Organisatie"),
+ MenuItem("Groepsindeling", "/groepsindeling", icon="layers", order=24, group="Organisatie"),
MenuItem("Afwezigheid", "/afwezigheid", icon="away", order=28, group="Organisatie"),
),
)
diff --git a/backend/modules/leerplein/migrations/0003_rename_leerplein_verbose_names.py b/backend/modules/leerplein/migrations/0003_rename_leerplein_verbose_names.py
new file mode 100644
index 0000000..234679d
--- /dev/null
+++ b/backend/modules/leerplein/migrations/0003_rename_leerplein_verbose_names.py
@@ -0,0 +1,19 @@
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("module_leerplein", "0002_leerplein_medewerkers"),
+ ]
+
+ operations = [
+ migrations.AlterModelOptions(
+ name="leerplein",
+ options={
+ "ordering": ["naam"],
+ "verbose_name": "bovenliggende groep",
+ "verbose_name_plural": "bovenliggende groepen",
+ },
+ ),
+ ]
diff --git a/backend/modules/leerplein/models.py b/backend/modules/leerplein/models.py
index 87f9685..7aeba88 100644
--- a/backend/modules/leerplein/models.py
+++ b/backend/modules/leerplein/models.py
@@ -1,8 +1,8 @@
"""
-Leerplein-module: een overkoepelende groepsstructuur.
+Module voor bovenliggende groepen.
-- Een Leerplein bundelt meerdere groepen en/of subgroepen, en kan daarnaast
- losse (individuele) leerlingen bevatten.
+- Een bovenliggende groep bundelt meerdere groepen en/of subgroepen, en kan
+ daarnaast losse (individuele) leerlingen bevatten.
- Een SubgroepGroep-koppeling verbindt een subgroep met een groep.
De module raakt de kernmodellen niet aan; het zijn losse koppeltabellen die
@@ -33,8 +33,8 @@ class Leerplein(models.Model):
aangemaakt_op = models.DateTimeField(auto_now_add=True)
class Meta:
- verbose_name = "leerplein"
- verbose_name_plural = "leerpleinen"
+ verbose_name = "bovenliggende groep"
+ verbose_name_plural = "bovenliggende groepen"
ordering = ["naam"]
def __str__(self) -> str:
diff --git a/backend/modules/stage/apps.py b/backend/modules/stage/apps.py
index 35b898b..f7c27e0 100644
--- a/backend/modules/stage/apps.py
+++ b/backend/modules/stage/apps.py
@@ -19,7 +19,7 @@ class StageConfig(AppConfig):
"krijgen een begeleider; een interne stage ook een ruimte."
),
version="0.1.0",
- category="Structuur",
+ category="Groepsindeling",
core=False,
default_enabled=False,
menu_items=(
diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx
index fb08aff..b698400 100644
--- a/frontend/src/App.jsx
+++ b/frontend/src/App.jsx
@@ -5,7 +5,7 @@ import {
PersonenPage, FunctiesPage,
ActiviteitenPage, LocatiesPage, TijdslotenPage, SchooljaarPage,
RoosterWeergavePage, RoostermakerPage,
- AfwezigheidPage, LeerpleinPage, StagePage, GebruikersPage,
+ AfwezigheidPage, GroepsindelingPage, StagePage, GebruikersPage,
} from "./pages.jsx";
const ICONS = {
@@ -14,16 +14,16 @@ const ICONS = {
away: "🌴", gear: "⚙️",
};
-const STRUCTUUR_PADEN = new Set(["/structuur", "/leerplein", "/groepen", "/subgroepen"]);
-const STRUCTUUR_ITEM = { label: "Groepsindeling", path: "/structuur", icon: "layers", order: 24, group: "Organisatie" };
-const normaliseerPad = (path) => (STRUCTUUR_PADEN.has(path) ? "/structuur" : path);
+const GROEPSINDELING_PADEN = new Set(["/groepsindeling", "/structuur", "/leerplein", "/groepen", "/subgroepen"]);
+const GROEPSINDELING_ITEM = { label: "Groepsindeling", path: "/groepsindeling", icon: "layers", order: 24, group: "Organisatie" };
+const normaliseerPad = (path) => (GROEPSINDELING_PADEN.has(path) ? "/groepsindeling" : path);
// Koppel een menu-pad aan een echt scherm. Onbekende paden tonen een
// placeholder (worden in een latere fase ingevuld).
const PAGES = {
"/rooster": RoosterWeergavePage,
"/roostermaker": RoostermakerPage,
- "/structuur": LeerpleinPage,
+ "/groepsindeling": GroepsindelingPage,
"/personen": PersonenPage,
"/functies": FunctiesPage,
"/activiteiten": ActiviteitenPage,
@@ -137,13 +137,13 @@ function Shell({ user, onLogout }) {
}
// Bouw de navigatie op uit de menu-items die ACTIEVE modules aanbieden.
- // Verouderde structuurpaden blijven werken, maar verschijnen als één tab.
+ // Verouderde groepspaden blijven werken, maar verschijnen als één tab.
const { tabs, instellingenTabs, alleItems } = useMemo(() => {
const perPad = new Map();
const voegToe = (raw) => {
const pad = normaliseerPad(raw.path);
- const item = pad === "/structuur"
- ? { ...raw, ...STRUCTUUR_ITEM, module: raw.module }
+ const item = pad === "/groepsindeling"
+ ? { ...raw, ...GROEPSINDELING_ITEM, module: raw.module }
: { ...raw, path: pad };
const huidig = perPad.get(item.path);
if (!huidig || item.order < huidig.order) perPad.set(item.path, item);
diff --git a/frontend/src/pages.jsx b/frontend/src/pages.jsx
index a36d1a9..f0094a5 100644
--- a/frontend/src/pages.jsx
+++ b/frontend/src/pages.jsx
@@ -199,7 +199,7 @@ export function LocatiesPage() {
/* --------------------------------- Groepen -------------------------------- */
export function GroepenPage() {
- return
Beheer bovenliggende groepen, groepen en subgroepen op één plek. Een groep hoort altijd onder een bovenliggende groep; een subgroep hoort altijd onder een groep.