Skip to content

chore: port changes in 1.14.1#2635

Merged
taridepaco merged 11 commits into
developfrom
1.14.1-rc-to-develop
Jun 11, 2026
Merged

chore: port changes in 1.14.1#2635
taridepaco merged 11 commits into
developfrom
1.14.1-rc-to-develop

Conversation

@taridepaco

Copy link
Copy Markdown
Collaborator

No description provided.

taridepaco and others added 11 commits May 19, 2026 15:51
…er download

When downloading trackedentities globally (multiple programs sharing the
same org units in a single bundle), an exhausted program was removed by
filtering the original captured `bundlePrograms` list instead of the
current map value. Each exhaustion overwrote the previous one, so only the
last exhausted program was actually removed per iteration. This forced one
extra bundle iteration per program and re-issued the same network calls,
re-downloading already-persisted TEIs (quadratic in the number of programs).

The removal now operates cumulatively on the remaining programs, so each
org-unit/program combination is queried only once when it is exhausted.

Add a regression test asserting each program is requested exactly once.
… is downloaded

Add a safety net so the bundle download loop does not depend solely on the
org-unit list being emptied to terminate. Track the number of items
downloaded per iteration and stop the loop as soon as a full iteration
downloads nothing new.
…r automatic selection

The "all options" selection of a visualization dimension was persisted with a
fixed "autogenerated" dimensionItem. Since the primary key is
(visualization, dimensionItem), two dimensions with automatic selection in the
same visualization collided and one was dropped. The placeholder was also read
back as a real item, so it was wrongly interpreted as a category option instead
of "all options".

Now the placeholder is unique per dimension (<dimensionId>.allItems) and the
children appender strips it, exposing an empty item list so it is correctly
resolved as "all options".
…erve local results

In OFFLINE_FIRST mode, when the online call fails (e.g. HTTP 400, timeout),
the failure was added to the result list and propagated to the
PagingSource as LoadResult.Error. This caused Paging3 to discard the
offline results already collected and freeze the UI on the previous
result set.

Filter out failed online results before merging with the local results,
so a failing online query no longer wipes out valid offline data. Local
failures coming from transform() (e.g. missing TrackedEntityType) are
unaffected, since they originate after this point and still propagate.
@sonarqubecloud

Copy link
Copy Markdown

@taridepaco taridepaco merged commit fde9b58 into develop Jun 11, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants