getodk / collect

ODK Collect is an Android app for filling out forms. It's been used to collect billions of data points in challenging environments around the world. Contribute and make the world a better place! ✨📋✨
https://docs.getodk.org/collect-intro
Other
700 stars 1.35k forks source link

Store shared entities for follow up forms #6108

Closed seadowg closed 3 weeks ago

seadowg commented 1 month ago

Closes #6029 Blocked by https://github.com/getodk/javarosa/pull/756

The big change here is that we now combine the server's entity list with locally created entities when downloading a form (or update). The EntitiesRepository is then used to create the secondary instance used in follow up forms (and the actual CSV is ignored).

As the issue mentions, the big caveat here is that you have to manually create the entity list via the entity browser (in experimental settings) to get anything working. In the future, this will likely not have to happen as which media files are entity lists will hopefully be flagged to us by the server.

Something else to point out here is that all entities (including the ones from the server) will be visible in the entity browser now. I could have filtered the "online" ones out, but it felt more useful to see them all anyway.

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

The approach here was discussed in the issue.

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?

This should only affect users with entity forms and only in the cases where they have manually added an entity list via experimental settings (Settings > Experimental > View entity lists > Options menu > Add entity list). As the issue points out, it's pretty hard to simulate the problems solved here without using manual form management (as match exactly will download all updates at once).

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

It'd be a good idea to test entity forms including create forms, update forms and follow up forms.

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

Before submitting this PR, please make sure you have:

grzesiek2010 commented 1 month ago

There is something wrong with the browser because if there are multiple elements in the list it looks like this: Screenshot_1714668781

seadowg commented 4 weeks ago

There is something wrong with the browser because if there are multiple elements in the list it looks like this

I'm not able to reproduce. Do you have more specific steps?

grzesiek2010 commented 3 weeks ago

I'm not able to reproduce. Do you have more specific steps?

I'm just adding 2 entity lists in the Experimental section.