A venue package does not round-trip. Exporting a configured venue and importing it back gives you the geometry and nothing else, silently: the zones, the default modes, the subsections and every configuration are gone, with no warning at export time and nothing in the manifest to show they were dropped.

What is lost

  • Section.map_element, so every clickable zone on the plan
  • Section.default_mode, so how each area is normally sold
  • Place.subsection, which is how part of an area is closed or pooled independently of the rest
  • Place.weight
  • every yoyaku_configuration and yoyaku_configuration_section, so every way of opening the hall: reduced capacity, a pooled parterre, a closed balcony

Where

  • VenueExporter::exportBand() writes only key, label, weight (plus color for a grade)
  • VenueImporter::createBand() is called with an empty extra-field list for sections, so a manifest that carried those keys by hand would still be ignored
  • VenueExporter::exportPlaces() omits subsection and weight
  • nothing in yoyaku_placement_io mentions configurations at all

Why it matters

The package is presented as a way to move a whole venue between sites and keep it in version control, and for the geometry it is exactly that. But a hall is only bookable once the sales setup exists, and that half is the part a person did by hand. Losing it on a restore is the worst possible time to find out.

Concretely: build a hall, set its zones and modes, add a reduced-capacity configuration, export, then import on another site. You get 1,422 seats you cannot sell the way you sold them, and nothing said so.

Options

Not obvious which is right, hence no patch yet.

  • Carry the missing fields and the configurations in the manifest, bumping the package version. Complete, and makes the format the backup it looks like.
  • Carry the section and place fields only, and leave configurations out on the grounds that they are event policy rather than venue layout. Cheaper, and still fixes the silent part for zones and modes.
  • Carry nothing more, but say so: document the boundary and have the export command report what it did not write.

My preference is the second plus the third: zones, default modes and subsections belong to the layout and should travel with it, while configurations are arguably a separate export, and either way the command should not stay quiet about the gap.

Whatever is chosen, the format is pre-1.0 and reinstall is the upgrade path, so there is no migration to carry.

Found while writing #3614221: Document how to build a venue map, from the artwork to the places, which documents the current boundary so nobody builds a restore plan on it.

Issue fork yoyaku-3614227

Command icon 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

mably created an issue. See original summary.

  • mably committed 5a67ce48 on 1.x
    fix: #3614227 A venue package does not round-trip: export drops zones,...
mably’s picture

Status: Active » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.