XLSForm / pyxform

A Python package to create XForms for ODK Collect.
BSD 2-Clause "Simplified" License
80 stars 136 forks source link

678: itextId node not added to instance items for choice list names with dashes in multilingual forms #680

Closed lindsay-stevens closed 8 months ago

lindsay-stevens commented 8 months ago

Closes #678

Why is this the best possible solution? Were any other approaches considered?

In survey.py, _generate_static_instances has a check for multi_lang, which involves matching the list_name to the translations dict. That split the list_name on the itextId separator (a dash) but a dash can also appear in the list_name, so it was broken when a list_name contained a dash.

The fix is to still split the string, but chop off the last group (the number) to do the list_name match. Another way could be to not use a string internally (e.g. a tuple) to avoid parsing issues, then output a string when necessary.

What are the regression risks?

This fixes a regression.

Does this change require updates to documentation? If so, please file an issue here and include the link below.

No

Before submitting this PR, please make sure you have: