The booking lists on a resource and on a slot show every line an order ever had. Choosing seats on the map leaves a long tail of released and expired holds behind, so a handful of real bookings arrives buried in lines that never became bookings and that nothing reads.
What to hide
- Hidden by default:
releasedandexpired. A hold handed back, or one the sweep timed out. Neither ever became a booking, andTransactionLookupalready excludes both from what an order holds and from the record of what it was. - Still shown by default:
cancelled. This is the record of a booking that existed and was undone, which is whatTransactionLookup::cancelledLines()exists to return and whatTransactionSummary::currentLines()shows. It is also the line an operator comes to this list for: a refund query, or a seat that freed up. Retention agrees, keeping cancelled orders 30 days against 7 for empty. - Still shown by default:
held. A held seat is unavailable to everybody else, so it is exactly what answers "why can't I book B12". Hiding it would stop the list explaining the state of the house.
Why released and expired are safe to hide
Neither can be a live booking and neither can owe anything. A line only reaches released from held, and confirmed is only reachable through BookingManager::confirm(), so a released line was never confirmed. Where it had been paid, which is a placed order that gets rejected, the refund step runs before the release: in the shipped workflow n_reject_refund precedes n_release. So released means no live booking and nothing outstanding, and expired is a hold that simply lapsed.
TransactionLookup already draws the same line: both states are outside CONSUMING_STATES and outside the record of what an order was.
The order itself stays visible with its own state in the orders list, so hiding its released lines from a per-show list of who is coming removes nothing an operator needs.
How
- A filter default, not a hard exclusion, so nothing becomes unreachable and clearing the filter still shows the whole history.
- The active chip names what is being hidden, so the list never looks shorter than it is for no visible reason.
- Display only. No count, no availability figure and no capacity decision may read this: the same states are already excluded from those by
CONSUMING_STATES, and this must not become a second place that decides it.
Issue fork yoyaku-3615677
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 #2
mably commentedComment #5
mably commented