When convertOtherPattern collapses the XLSForm "other" pattern (a choice other plus a <question>_other text row) into LimeSurvey's native other=Y, the converter still emits the companion text question. Its relevance can never be true:
| Entity |
Companion relevance in the TSV |
Why it never holds |
select_one_other |
aufmerksam == 'other' |
LimeSurvey stores -oth- for the native "other" of a list |
select_multiple_other |
(geraetebesitz_other.NAOK == 'Y') (was geraetebesitz == 'other' before the fixture used selected()) |
geraetebesitz_other holds the typed text, not Y; a multiple choice has no single value |
So the companion is always hidden. LimeSurvey's native "other" text box collects the text, and the live response round-trip confirms it (geraetebesitz[other]). The companion is dead weight: an extra always-hidden question in the imported survey, and an extra empty column in the response export.
To decide:
- Drop the companion question when the pattern is collapsed into
other=Y. The reverse (lstsv2xlsform) and lstsv2ddi already rebuild <question>_other from other=Y, so no information is lost.
- Or keep it and give it a relevance that actually holds, e.g.
!is_empty(geraetebesitz_other). That duplicates the native box.
Found while fixing the skill's or_other guidance (the select_multiple_other example used = instead of selected()).
When
convertOtherPatterncollapses the XLSForm "other" pattern (a choiceotherplus a<question>_othertext row) into LimeSurvey's nativeother=Y, the converter still emits the companion text question. Its relevance can never be true:select_one_otheraufmerksam == 'other'-oth-for the native "other" of a listselect_multiple_other(geraetebesitz_other.NAOK == 'Y')(wasgeraetebesitz == 'other'before the fixture usedselected())geraetebesitz_otherholds the typed text, notY; a multiple choice has no single valueSo the companion is always hidden. LimeSurvey's native "other" text box collects the text, and the live response round-trip confirms it (
geraetebesitz[other]). The companion is dead weight: an extra always-hidden question in the imported survey, and an extra empty column in the response export.To decide:
other=Y. The reverse (lstsv2xlsform) andlstsv2ddialready rebuild<question>_otherfromother=Y, so no information is lost.!is_empty(geraetebesitz_other). That duplicates the native box.Found while fixing the skill's
or_otherguidance (theselect_multiple_otherexample used=instead ofselected()).