Issue #3615040: The placement vocabulary says a place is on sale, which says money about a booking that may be free

Says a place is bookable rather than on sale, so the placement vocabulary stops asserting money about a booking that may be free.

What changed

  • available / bookable / closed replace the sale words. A place is bookable as a place rather than on sale as a place; a closed area is kept out of bookings rather than taken off sale; a pooled booking of an area replaces a pooled sale of it.
  • Six operator-visible strings: the three mode options on the place configuration section form (Placed: every place booked by name, Pooled: a capacity booked with no named place, Closed: not bookable in this configuration.) and three field descriptions. fr.po moves with them, msgid and msgstr both: en vente and vendue become réservable, proposée and réservée.
  • The mode-triple sentence ("placed / pooled / closed") is normalized wherever it defines the three modes: ConfigurationInterface, ConfigurationSectionInterface, Configuration, ConfigurationSection, SectionMode, and the two docs pages. Leaving half of its homes saying "sold" would have left one definition speaking two vocabularies.
  • One identifier: the private PlaceAvailability::restrictToPlaceMarket() becomes restrictToBookablePlaces(). Same metaphor, and private, so nothing outside the class sees it. One test method built on it is renamed too.
  • Docs: concepts, constraint policies, placement, capacity and holds, venue map.

Nothing in the module says sale, sales, on sale or off sale any more, and no public API, config key, plugin id or field name changes.

Deliberately not in this pass

sold and sells are still the module's verbs in roughly 150 places, including constraint messages a booker reads ("This area is sold as a pool for this event"). That is a bigger decision than a vocabulary tidy: it touches most of yoyaku_placement and several user-facing refusals. This issue scoped the sale family, and the sentences carried along above are only the ones that sit in the same string or the same definition as something that changed.

Coverage

No test pinned any of the changed strings, so nothing needed rewriting to keep passing. The classes whose comments, assertion messages or renamed method are touched were run locally and pass: ConfigurationTest, SectionPoolBookableTest, TransactionQuantityLimitTest. phpcs clean over yoyaku_placement and src, and msgfmt --check passes on the po.

Merge request reports

Loading
Loading