678: itextId node not added to instance items for choice list names with dashes in multilingual forms #680
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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:
tests
nosetests
and verified all tests passblack pyxform tests
to format code