yoyaku_placement_example is two files: an info file and a 175-line install hook that creates a venue, four areas, four place grades, 128 places, a concert, its slot and its tariffs. What it cannot create is the two things a seated hall is drawn from, and it creates neither: the venue has no map background, and no area has an outline. So a fresh install gives a plan with no picture behind it and pooled areas nothing can click, which is the first seating anybody trying the placement feature sees.
Grepping the install hook for map_background, area_outlines or subsection returns nothing at all. The reason the hall looks right on a site where somebody has been working is that they did the layout trip by hand there, and that work lives in no repository: it is a file in one site's public files directory and a column on one site's sections.
It ships no configuration either, in the code or anywhere else, and that is the gap worth caring about most. A configuration records only its deviations, so several of them cost a handful of rows, and a closed area is legible on a hall of 128 places across four areas where it is invisible on one of 1422. The small hall is therefore the one that should demonstrate reduced capacity, a closed area and an area sold by quantity, and it demonstrates none of them.
Its labels are also French, the same half-and-half the bundled Auditorium package carried until #3622067: Grande Salle, Orchestre, Corbeille, Balcon, Paradis, Optima, Catégorie 1 to 3. An example is read by whoever is evaluating the module, so it reads in the module's language.
All three have the same answer now, which they did not before #3622067: ship the hall as a venue package the install imports, rather than as entity creation in code. A package carries the venue, its grades, its areas with the outlines they are clicked by, its places, and its configurations, so everything the install hook cannot express travels as data that is reviewable in a diff. What stays in code is only what is not the venue's: the concert, its slot and its tariffs, which belong to a resource.
The hall it ships is drawn for the purpose rather than exported from anywhere: four tiers of four rows of eight, on arcs centred in the stage so every seat faces it, each area outlined, two end seats of every front row accessible, and two configurations, one deviating nowhere and one closing the gallery and selling the balcony by quantity. It is named Grand Hall, in English like the rest of it.
This is also the hall the demo recipe and the Tugboat preview should use, rather than the Auditorium: 128 places read at a glance, and the Auditorium stays where it is, as the import and export module's example of a real hall at real scale. See #3622060, which is where the demos are.
PlacementExampleTest already pins what the module seeds and what it removes on uninstall, so the counts and the teardown extend there rather than into a class of their own.
AI-Generated: Yes (Claude Code was used to draw the hall, to survey what the example module ships against what a seated hall needs, and to draft this issue summary. I reviewed the drawing on screen and the summary before posting; the code change is not written yet.)
Issue fork yoyaku-3622101
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 commented