mirror of
https://github.com/Tria-plc/emaui.git
synced 2026-08-26 19:12:50 +00:00
The detail page fired assign/draw requests blind and surfaced the raw backend key to the user — a locked paper showed up as the literal string "paper_locked_after_registration" in a toast. Manage Questions is now disabled once any candidate has registered, with a tooltip and badge explaining why; both the manual assign and the random draw live behind that modal, so one guard covers the same ground the backend's assertPaperEditable does. The empty-paper alert now explains the deadlock instead of telling the user to click a button that will fail, and both error handlers translate paper_locked_after_registration in case someone registers while the modal is open. Registrations come from the query ExamCandidatesPanel already runs on this page, so RTK Query serves it from cache rather than issuing a second request.