OpenClinica / enketo-oc

OpenClinica's fork of the Enketo web forms monorepo
Apache License 2.0
0 stars 5 forks source link

Fixed translation cache access when the translation content is changed #208

Closed gushil closed 4 months ago

gushil commented 4 months ago

Closes #

The problem occured when editing the form (that already submitted before) and the page with multiple selectpickers in repeating group is always showing the wrong select text.

From my observation, it is caused by selectpicker using i18n translation with i18nNumber involved. We will have same translations for all selectpicker widgets because all widgets have same i18n data eventhough it has different i18nNumber.

This select instances

<group_nm7ec42  enk:ordinal="1" >
    <multiselect2>a b c</multiselect2>
</group_nm7ec42>
<group_nm7ec42  enk:ordinal="2" >
    <multiselect2>a b</multiselect2>
</group_nm7ec42>

will give us image

It is supposed to give us image

I have verified this PR works with

What else has been done to verify that this works as intended?

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

The solution that minimize cache key access, translation call and just adding one string comparison. Already tried the solultion in selectpicker but that is not an optimal one.

How does this change affect users? Describe intentional changes to behavior and behavior that could have accidentally been affected by code changes. In other words, what are the regression risks?

I don't think there is any. All tests are passed.

Do we need any specific form for testing your changes? If so, please attach one.

No.

gushil commented 4 months ago

Created PR in upstream (enketo/enketo) to fix this issue.

https://github.com/enketo/enketo/pull/1336

Thanks.