This adds the seated booking experience and turns booking into a stateful, per-session order.

Node display: an upcoming-slots formatter and a per-node booking display render a resource's slots on a content node, without exposing the private booking entities.

Slots and schedule: a per-resource Slots tab and generator, plus a venue Schedule tab showing occupancy across the venue's resources.

Seat map: book a slot by category quantity or by picking seats on a map; seated slots auto-assign the best adjacent seats per category and price them; seats gain geometry (x, y, angle) and a venue gains a seat-map background and sprite ids.

Printed seat labels: a seat's identity is two printed strings, the row and the place (its seat number), concatenated for tickets, with a separate integer position for keyboard navigation and adjacency that need not match the printed place.

Stateful cart: the per-slot form is one accumulating order per session; fields prefill from what the session already holds and submitting reconciles the basket by delta.

Order state machine: a transaction moves through empty, pending, locked, placed, confirmed and cancelled through one chokepoint that emits an OrderStateEntered event. An order is born empty and enters pending on its first hold; releasing every line returns it to empty; cancelled is terminal.

Configurable workflow start: a resource names a workflow_start state (a constraint requires it whenever a workflow is named), so the workflow starts when the order enters that state instead of always on hold.

The changes span yoyaku core, yoyaku_calendar, yoyaku_seating and yoyaku_orchestra.

Issue fork yoyaku-3611785

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

mably created an issue. See original summary.

mably’s picture

Status: Active » Needs review

  • mably committed 4e68dc09 on 1.x
    feat: #3611785 Stateful booking cart and seated booking UX: order state...
mably’s picture

Status: Needs review » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.