Problem
A venue's screens are all primary tabs in one row: Edit, Schedule, Sections, Place grades, Places, Layout, Numbering, Configurations, Pinnings, and Translate once the site has the translation UI. That is ten from the engine before a site adds anything, and an operator's site adds more.
Ten tabs already fill the row at a normal window width. Translated they overflow it: French words are longer, so the theme hyphenates the labels and every one of them wraps onto two or three lines. Numerotation, Implantation and Plans de contingents each become a stack, the row grows to three times its height, and reading which tab is which takes longer than the screens are worth.
It is also flat where the work is not. Seven of those screens are one job, setting a hall up, and the engine already treats them as one: they are what VenueInventoryController serves, and PlacementHooks calls them the inventory. The venue form, what runs in the hall, and its translations are three separate things that happen to sit beside them.
Proposed resolution
Two rows instead of one, which is what Drupal's local tasks are for. The seven inventory screens go under a single Inventory tab, so the top row holds the venue itself, its schedule, the inventory and its translations. The name is the module's own noun for that set, not a new one.
The group opens on the sections, since a hall is described before it is divided and every other screen there reads what the sections say; a parent tab with no route of its own renders as a heading nothing can be clicked.
Plain YAML, following core's own two-level shape (config.export and the tasks under it): a parent task carrying the base_route, and seven children carrying parent_id. No new routes, no new controllers, and every URL is unchanged, so a bookmarked screen still opens.
Remaining tasks
None. The regrouping, its test, the documentation and the French land together.
User interface changes
The venue page has two rows of tabs. Nothing moves address.
API changes
None.
AI-Generated: Yes (Claude Code was used to write the issue summary and the regrouping with its test. I reviewed both; the new test was confirmed to fail against unpatched code and to pass with the change.)
Issue fork yoyaku-3618361
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