A big hall offers a part of the house rather than a seat: the booker takes the Corbeille, the house gives each booking a place in it, and the ticket still says row F, place 12. An area is offered in one of four ways now: placed (the booker points at a seat on the plan), assigned (the booker takes the area and the house gives out its places), pooled (a capacity with no named place) or closed.

An assigned area's places are real places everywhere it matters. They are counted as places, they bound a tariff as places, PlaceBookable protects each of them under the slot lock, a pinning may hold them for an allotment, and a ticket names the seat. What differs is who points at the seat, and only that.

  • Capacity is its places, full stop: a pool capacity and a pool grade are never read for it, since the house hands out those very seats.
  • The engine assigns at hold, so a held line already names its seat and collisions are settled where every other collision is, under the slot lock.
  • A named area that fills up refuses and names itself. Nothing is seated in another part of the house and nothing falls back to letting the engine choose the part.
  • The seats are drawn on the plan, dim and not clickable, and the ones the booker is given paint as their own: most venues let you see where you will sit in the part of the house you took. The area's outline is the control, so a click on one of its seats falls through to it.
  • The booker may not choose one. PlaceBookable refuses a place the booker pointed at in such an area, which covers the relocate operation and a request built by hand as well as the map.
  • Stepping the block down gives seats back through the same reader the booking page uses, so giving up the middle of a run cannot strand the place beside it.

Nothing new is stored on a booking. The line names its place, and the place carries the section and subsection that say which area it sits in.

The area is taken by quantity from two surfaces that read one list of offers: the block beside the plan, and the Placement control on the booking page from #3616323: Offer the part of the house on the booking page, not only on the plan. The Areas form shows how many places an area is drawn with, beside the capacity field, which is the number a capacity for unreserved seating is meant to match.

Where the meaning widened, pools becomes areas: the map payload and its model, areaTaken() and areaAvailable(), and the picker's answers. The readers that stay pooled-only keep their pool names, because an assigned area must never be counted as places AND as a block: its capacity is already in the place counts, and a second reading would promise every one of its seats twice.

AI-Generated: Yes (Claude Code wrote the code and the tests on this issue, ran them, and drafted this summary; I reviewed both before posting.)

Issue fork yoyaku-3616297

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

Title: Offer an area with real seats in it, chosen by the engine rather than by the booker » Offer an area whose places the house gives out
Issue summary: View changes
mably’s picture

Status: Active » Needs review

  • mably committed 84b3d5b8 on 1.x
    feat: #3616297 Offer an area whose places the house gives out
    
    By: mably
    
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.