diff --git a/src/server/templates/admin.js b/src/server/templates/admin.js index 3eeafbe..cf89ae6 100644 --- a/src/server/templates/admin.js +++ b/src/server/templates/admin.js @@ -332,13 +332,15 @@ function downloadSummaryPdf() { } function adminStartEdit(email) { + const requestedWeek = currentAdminWeek; setAdminActionDisabled('start-edit', true); - adminFetch(ADMIN_URL + '?week=' + encodeURIComponent(currentAdminWeek), { headers: adminHeaders() }) + adminFetch(ADMIN_URL + '?week=' + encodeURIComponent(requestedWeek), { headers: adminHeaders() }) .then(r => { if (!r.ok) throw new Error('HTTP ' + r.status); return r.json(); }) .then(data => { + if (currentAdminWeek !== requestedWeek) return; lastAdminData = data; const order = data.orders.find(o => o.employee_email === email); if (!order) return; diff --git a/tests/test_generate_form.py b/tests/test_generate_form.py index c5d5fc3..98b2b2b 100644 --- a/tests/test_generate_form.py +++ b/tests/test_generate_form.py @@ -357,10 +357,15 @@ class TestGenerateFormPlaywright: bottom: box.bottom, }; }; + const footer = document.querySelector('#sticky-footer'); return { clientWidth: document.documentElement.clientWidth, scrollWidth: document.documentElement.scrollWidth, - footer: rect('#sticky-footer'), + viewportHeight: window.innerHeight, + footer: { + ...rect('#sticky-footer'), + position: getComputedStyle(footer).position, + }, total: rect('#total-display'), count: rect('#count-display'), submit: rect('#submit-btn'), @@ -373,6 +378,9 @@ class TestGenerateFormPlaywright: for selector in ("footer", "total", "count", "submit"): assert layout[selector]["left"] >= 0 assert layout[selector]["right"] <= layout["clientWidth"] + assert layout["footer"]["position"] == "fixed" + assert layout["footer"]["top"] >= 0 + assert layout["footer"]["bottom"] <= layout["viewportHeight"] assert layout["lastCard"]["bottom"] <= layout["footer"]["top"] finally: browser.close()