fix: leerling verplaatsen naar een andere klas ververst het paneel niet (v0.4.03-beta)
All checks were successful
dev - build & deploy naar test / build-and-deploy (push) Successful in 33s

De klas-select bij een leerling (uitwisselen naar een andere klas) miste de
reload() die elders bij een klaswijziging wel gebeurt: de server sloeg de
nieuwe klas gewoon op, maar het paneel liet nog de oude toestand zien - leek
dus alsof verplaatsen niet werkte. Test toegevoegd die de serverkant van
deze route bevestigt (die werkte al correct); de fix zelf is puur de
ontbrekende reload() in public/js/admin.js.
This commit is contained in:
Ramon 2026-07-18 03:51:21 +02:00
parent 45f66044f2
commit cae700f76d
4 changed files with 12 additions and 3 deletions

View file

@ -1 +1 @@
0.4.02-beta 0.4.03-beta

View file

@ -433,7 +433,7 @@
/* klas (uitwisselen met andere klassen) */ /* klas (uitwisselen met andere klassen) */
const cs = classSel(u.classId); const cs = classSel(u.classId);
cs.addEventListener("change", async ()=>{ cs.addEventListener("change", async ()=>{
try{ await api("/admin/users/"+u.id, {method:"PATCH", body:{classId: cs.value ? +cs.value : null}}); } try{ await api("/admin/users/"+u.id, {method:"PATCH", body:{classId: cs.value ? +cs.value : null}}); reload(); }
catch(e){ note(e.message); } catch(e){ note(e.message); }
}); });
tools.appendChild(field("amFieldClass", cs)); tools.appendChild(field("amFieldClass", cs));

View file

@ -2,7 +2,7 @@
"use strict"; "use strict";
/* version shown until /api/version resolves (or if the fetch fails, e.g. offline). /* version shown until /api/version resolves (or if the fetch fails, e.g. offline).
Kept in sync by hand with the VERSION file at the repo root on every release. */ Kept in sync by hand with the VERSION file at the repo root on every release. */
const VERSION = "0.4.02-beta"; const VERSION = "0.4.03-beta";
(function(){ (function(){
const tag = document.getElementById("verTag"); const tag = document.getElementById("verTag");
tag.textContent = "v"+VERSION; tag.textContent = "v"+VERSION;

View file

@ -140,6 +140,15 @@ test('systeemmanager koppelt een gebruiker aan een school en maakt hem weer los'
await app3.close(); await app3.close();
}); });
test('leerling verplaatsen naar een andere klas (uitwisselen) werkt', async () => {
const { app, calls } = await makeApp(superUser, { id: 9, role: 'pupil', school_id: 2, class_id: 50, username: 'lena' });
const res = await app.inject({ method: 'PATCH', url: '/api/admin/users/9', cookies, payload: { classId: 100 } });
assert.equal(res.statusCode, 200, res.body);
const upd = calls.find((c) => c.sql === 'UPDATE users SET class_id = $1 WHERE id = $2');
assert.deepEqual(upd.params, [100, 9]);
await app.close();
});
test('school koppelen kan niet door een schoolbeheerder en niet op super/parent', async () => { test('school koppelen kan niet door een schoolbeheerder en niet op super/parent', async () => {
const { app, calls } = await makeAppWithSchool(admin, { id: 7, role: 'teacher', school_id: 2, username: 'juf' }); const { app, calls } = await makeAppWithSchool(admin, { id: 7, role: 'teacher', school_id: 2, username: 'juf' });
await app.inject({ method: 'PATCH', url: '/api/admin/users/7', cookies, payload: { schoolId: 3 } }); await app.inject({ method: 'PATCH', url: '/api/admin/users/7', cookies, payload: { schoolId: 3 } });