From 36e9044972508f8560cd04fe9de8e750cb2c0a78 Mon Sep 17 00:00:00 2001 From: bonamin Date: Tue, 9 Jun 2026 12:55:48 +0300 Subject: [PATCH] fix: two bugs in cancellation settings - settings.py: add orders.waiter_cancellations_allowed to VALID_SETTINGS (was missing, causing 400 on every PUT attempt) - StaffTab.jsx: include can_cancel_orders in edit waiter mutation payload (was omitted, so the checkbox change was never sent to the backend) Co-Authored-By: Claude Sonnet 4.6 --- local_backend/routers/settings.py | 2 ++ manager_dashboard/src/pages/StaffTab.jsx | 1 + 2 files changed, 3 insertions(+) diff --git a/local_backend/routers/settings.py b/local_backend/routers/settings.py index a9781ae..8d7fdf8 100644 --- a/local_backend/routers/settings.py +++ b/local_backend/routers/settings.py @@ -41,6 +41,8 @@ VALID_SETTINGS = { # Beep settings "print.beep_on_ticket": "Play beep when a kitchen ticket prints: 'true' | 'false'", "print.beep_pattern": "Beep pattern: 'single' | 'double' | 'triple' | 'long' | 'custom:n1:n2:n3'", + # Phase 2 — cancellations + "orders.waiter_cancellations_allowed": "Allow waiters with per-account permission to cancel sent orders: 'true' | 'false'", } DEFAULTS = { diff --git a/manager_dashboard/src/pages/StaffTab.jsx b/manager_dashboard/src/pages/StaffTab.jsx index 86e6478..6e7e193 100644 --- a/manager_dashboard/src/pages/StaffTab.jsx +++ b/manager_dashboard/src/pages/StaffTab.jsx @@ -445,6 +445,7 @@ export default function WaitersPage() { mobile_phone: editForm.mobile_phone || null, email: editForm.email || null, note: editForm.note || null, role: editForm.role, hourly_rate: editForm.hourly_rate !== '' ? parseFloat(editForm.hourly_rate) : null, + can_cancel_orders: !!editForm.can_cancel_orders, })} onUploadAvatar={file => uploadAvatar.mutate({ id: editModal.id, file })} onDeleteAvatar={() => deleteAvatar.mutate(editModal.id)}