Aller au contenu principal
Petanque Life

Booking List UI (PL-T192)

F22.10 6 fonctionnalités

En bref

A power-user DataTable for back-office booking review and reconciliation. Sticky resizable columns the operator can reorder, multi-criteria filter and free-text search serialized to URL, per-user saved-views for frequent queries, bulk-edit (confirm / cancel / notify) with per-row outcome reporting, CSV / Excel / PDF export, a mobile card variant, and live SSE updates.

Comment ça fonctionne

The list page renders Bookings as a DataTable with sticky resizable columns the operator can reorder and persist between sessions. Sort, filter, and search compose into a query serialized into the URL so any view can be shared as a link or pinned to a browser tab. Filters cover date range, status, resource type, color type, customer, payment state, and free-text search across customer name and notes.

Per-user saved-views (PL-T172) let an operator pin frequent queries — "Today's check-ins", "This week's no-shows", "Outstanding deposits" — and switch between them in one tap from a sidebar. Bulk-edit selects multiple rows via shift-click and applies confirm, cancel, or notify in a single batched API call that returns a per-row outcome report so operators can see which rows succeeded and which failed. CSV / Excel / PDF export (currently PARTIAL for some formats) writes the current filtered view out for accounting or month-end review.

The mobile card variant (also PARTIAL) collapses each row into a stacked card optimized for thumb-scrolling on a phone, with the most action-relevant fields surfaced first and swipe-to-action gestures. Like the calendar, the list subscribes to chain.bookings.{tenant}.{location} SSE so newly written bookings appear at the top without refresh, and any in-flight bulk action shows live progress.

Capacités clés

  • DataTable with sticky resizable columns + reorder persistence
  • Compound sort / filter / search serialized to URL
  • Saved-views per user (PL-T172)
  • Bulk-edit (confirm / cancel / notify) with per-row outcome
  • CSV / Excel / PDF export (partial)
  • Mobile card variant (partial)
  • Live updates via SSE on chain.bookings

En pratique

End of month the venue accountant needs to reconcile December. They open Bookings, set status = COMPLETED + payment_state = PAID + date range = December, save the view as "Completed Dec 2025", and export to Excel. The download includes booking_id, customer, lane, hours, food total, gift-card portion, Stripe portion, and net revenue — everything finance needs in one file.

Two days later the operations manager wants to chase no-shows: they switch to the saved "This week's no-shows" view, shift-click to select all 14 rows, and bulk-trigger a notify-with-feedback-survey action — the system fires per-row notifications, the progress bar streams live updates via SSE, and the result toast reports "14 sent, 0 failed". They pivot to the mobile card variant on the way home and approve a manual refund from the train.

Fonctionnalités de ce sous-système

6
ID Status Fonctionnalités
F22.10.01 Livré DataTable with sticky resizable columns
F22.10.02 Livré Sort / filter / search
F22.10.03 Livré Saved-views per user (PL-T172)
F22.10.04 Livré Bulk-edit (confirm / cancel / notify)
F22.10.05 Livré Export CSV / Excel / PDF ✅ — POST /chain/bookings/export with {format, filter, columns}, CSV/XLSX/PDF (PL-T211)
F22.10.06 Livré Mobile card-variant ✅ — DataTable mobileCardRenderer prop + <MobileBookingCard> on phone widths (PL-T211)