The rule against leaving a place available on its own can refuse a booking outright. Every rung of the seating weighs it, and where no arrangement of the party avoids stranding a place, nobody is seated: today that is documented as the honest answer, and in #3616584: Judge the orphan rule against the seats a booker could actually take it becomes reachable more often, because a place held for an allotment now ends a run.
It is the wrong trade. A venue that refuses the booking loses it and still keeps the place it was protecting, so it loses two places to save one. What is left at the end of a session is exactly where this bites: an area down to a pair, a booker asking for one place, and a hall that says no rather than letting one of the two be booked.
So the rule stops being able to cost a booking. Where every rung has failed, the party is seated anyway, and the place left on its own is the price of the booking rather than the reason to refuse it. A venue that would rather protect the place can still say so, which is why this is a setting and not a rewrite: a third setting on the policy, beside the minimum and the one about a place somebody named, saying what to do when no arrangement avoids it. Seating the party is the default.
Nothing about the guide changes. The rungs still prefer an arrangement that strands nothing, and a legal arrangement anywhere in the house still wins: a party asking for no area in particular is seated elsewhere rather than stranding a place, exactly as it is today. Only the dead end at the bottom of the ladder changes.
Remaining tasks
- The setting, on the
orphaned_placespolicy, defaulting to seating the party. - A last resort in the placement provider, after every rung, marking what it proposes as such.
- The policy letting those lines through, the way it already lets a place somebody named through, since a proposal made when nothing legal existed is not a fault of the seating.
- Kernel tests seen to fail first: a party of one is seated on a pair when nothing else is legal, the same party is refused where the venue asked for that, and a party that could have been seated legally elsewhere still is.
AI-Generated: Yes (analysis, issue text and code by Claude Opus, reviewed and run by the maintainer)
Issue fork yoyaku-3616595
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
Comment #3
mably commentedComment #5
mably commentedComment #7
mably commented