Carry a character's "heard as" aliases through campaign export and import #580
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to #579. The campaign export enumerates character fields explicitly (
routers/campaigns.py, around the export builder) and does not includeheard_as; the import turns members intoUnlinkedMemberstubs that hold one character in flat columns with nowhere to put a list. So a GM who exports a campaign and imports it elsewhere loses the aliases and the transcript regresses to "Vic" without warning.Fix. Add
heard_asto the exported character object; addunlinked_members.character_heard_as(JSONB, default[], raw-SQL migration) so an imported stub keeps the list; when a stub is claimed and becomes a realcampaign_charactersrow, copy it across. Bump whatever the export format versions on, and make the importer accept both the old shape (no field) and the new.Also noted on #579: the other-character's-name validation consults
campaign_charactersonly, not stubs; coherent with the alias-map builder today, but once stubs carry aliases both should be checked together.