Owner calendar view + manual booking + owner cancel/reschedule (#20)

Adds an owner-authenticated weekly agenda (grouped by day, today highlighted)
with manual walk-in/phone booking creation, cancel, and reschedule -- all
routed through booking_api.py's create/cancel/reschedule logic (refactored
into shared helpers) so the EXCLUDE overlap constraint and confirmation
email stay on the single existing code path. Manual creation can skip the
opening-hours/min-notice/max-advance/buffer checks via an explicit override,
but never the overlap constraint itself.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-03 17:16:19 +02:00
parent 59c35ce39f
commit 528a13ca7c
8 changed files with 678 additions and 56 deletions
+2 -3
View File
@@ -53,9 +53,8 @@ def logout():
@bp.get("/")
@login_required
def dashboard():
# Tickets 6/7/8 (calendar, manual booking, settings) build the real
# dashboard content on top of this session; this is just the landing
# page proving a login resolved to (and is scoped to) one client_id.
# Tickets 7/8 (settings, notify channel) still build on top of this
# session; the agenda/calendar (#20) now lives at owner_booking.agenda.
client = bdb.get_client(session["client_id"])
return render_template("owner/dashboard.html", client=client)