Skip to content

July version - #37

Open
alex-vt wants to merge 14 commits into
ramp-mainfrom
ramp-july
Open

July version#37
alex-vt wants to merge 14 commits into
ramp-mainfrom
ramp-july

Conversation

@alex-vt

@alex-vt alex-vt commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator

Changes:

  • Org unit selector crash fixed (upstream-related)
  • "Transferred to" option for TEI listings & filter
  • User's org unit selection shortcut button in TEI list filter
  • "Charts" tabs removed
  • Org unit ID as module ID in Identification callouts (as everywhere)
  • ACF-54 Visit number in front of date for follow-up visits
  • ACF-57 Datastore-configurable enrolment listings in TEI list in a Program
  • ACF-63 Forms non-collapsible when mandatory fields not completed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR bundles a set of July feature and stability updates across Tracker search, filters, TEI cards/dashboard, and Forms. It introduces new filtering and presentation capabilities (e.g., transferred TEIs and detailed enrolment listings), removes Analytics/Charts tabs, and adjusts form section behavior to keep mandatory sections forced open until completion.

Changes:

  • Add “Transferred patient” filtering and UI affordances (including a “select my org unit” shortcut) and ensure transferred-filter searches remain offline-only.
  • Add datastore-configurable detailed enrolment listings for TEIs, plus “Transferred to” ownership emphasis in TEI list and dashboard cards.
  • Update form section state handling (mandatory sections forced open) and related tests; remove Analytics/Charts tabs by forcing displayAnalytics() to false.

Reviewed changes

Copilot reviewed 59 out of 61 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tracker/src/androidMain/kotlin/org/dhis2/tracker/search/data/SearchTrackedEntityRepositoryImpl.kt Avoid online cache when transferred filter requires offline search; program-aware owner org unit mapping.
tracker/src/androidHostTest/kotlin/org/dhis2/tracker/search/data/SearchTrackedEntityRepositoryImplTest.kt Add coverage ensuring transferred filter keeps immediate results offline-only.
README.md Update internal README line references.
form/src/test/java/org/dhis2/form/ui/FormViewModelTest.kt Migrate one assertion to Turbine and add test for consecutive section toggles.
form/src/test/java/org/dhis2/form/ui/DataEntryIntegrationTest.kt Update section-open mock to accept nullable open state.
form/src/test/java/org/dhis2/form/integration/ProgramRulesTest.kt Update section-open mocking/copying and adjust assertions for new section behavior.
form/src/test/java/org/dhis2/form/data/FormRepositoryIntegrationTest.kt Update expectations for forced-open sections and “all open when completed” behavior.
form/src/test/java/org/dhis2/form/data/FormRepositoryImplTest.kt Add tests for new mandatory/open/close section-state behavior and helpers.
form/src/main/java/org/dhis2/form/ui/FormViewModel.kt Ensure OnSection intents are not coalesced; scope legend refresh callback removal.
form/src/main/java/org/dhis2/form/ui/Form.kt Rework form rendering/scrolling and section navigation to support multi-open sections.
form/src/main/java/org/dhis2/form/data/FormRepositoryImpl.kt Replace single-open-section tracking with collapsed-section set; force mandatory sections open.
commonskmm/src/androidMain/kotlin/org/dhis2/mobile/commons/customintents/CustomIntentRepositoryImpl.kt Use root org unit code (not name) when overriding Simprints identify moduleId.
commons/src/test/kotlin/org/dhis2/commons/simprints/ramp/repository/RampDatastoreRepositoryTest.kt Extend datastore parsing/normalization tests for new config fields.
commons/src/test/kotlin/org/dhis2/commons/filters/data/TransferredPatientFilterTest.kt Add unit test coverage for transferred TEI detection logic.
commons/src/test/kotlin/org/dhis2/commons/filters/data/TrackerFilterSearchHelperTest.kt Verify transferred filter is applied to program search repositories.
commons/src/main/res/values/strings.xml Add strings for transferred filter label and “select my organization unit”.
commons/src/main/res/layout/item_header_filter.xml Add user-org-unit shortcut icon and adjust constraints.
commons/src/main/res/layout/item_filter_transferred.xml New layout for the transferred filter row.
commons/src/main/res/drawable/ic_transfer.xml New transfer icon for “Transferred to” affordances.
commons/src/main/res/drawable/ic_i_user.xml New “user” icon for org unit shortcut action.
commons/src/main/java/org/dhis2/commons/ui/model/ListCardUiModel.kt Add optional styled additional-info and emphasized-key support to list cards.
commons/src/main/java/org/dhis2/commons/ui/ListCardProvider.kt Render emphasized/styled additional-info rows and support bold/emphasis display.
commons/src/main/java/org/dhis2/commons/simprints/ramp/repository/RampDatastoreRepository.kt Add normalized detailed-enrolment listing settings + stage visit-number settings parsing.
commons/src/main/java/org/dhis2/commons/simprints/ramp/model/RampDatastoreConfig.kt Extend schema with detailed-enrolment listing + visit-number prefix configuration.
commons/src/main/java/org/dhis2/commons/filters/Filters.kt Register new TRANSFERRED filter type.
commons/src/main/java/org/dhis2/commons/filters/FilterResources.kt Add label accessor for transferred filter.
commons/src/main/java/org/dhis2/commons/filters/FilterManager.java Add transferred filter state, counters, reset/clear/copy support.
commons/src/main/java/org/dhis2/commons/filters/FilterItem.kt Add org-unit shortcut UI hooks and new TransferredFilter item type.
commons/src/main/java/org/dhis2/commons/filters/data/TransferredPatientFilter.kt New helper to compute transferred TEI UIDs by comparing owner vs enrollment org unit.
commons/src/main/java/org/dhis2/commons/filters/data/TrackerFilterSearchHelper.kt Apply transferred patient filtering to program repositories when enabled.
commons/src/main/java/org/dhis2/commons/filters/data/FilterRepository.kt Add transferred filtering to TEI queries; add user-org-unit shortcut provisioning.
commons/src/main/java/org/dhis2/commons/filters/data/FilterPresenter.kt Add requiresOfflineSearch() hook for transferred-filter behavior.
commons/src/main/java/org/dhis2/commons/data/EventModel.kt Add followUpVisitNumber for visit-prefixed date titles.
app/src/test/java/org/dhis2/utils/filters/FilterManagerTest.kt Add test coverage for transferred filter toggling/clearing.
app/src/test/java/org/dhis2/usescases/teiDashboard/ui/mapper/TEIDetailMapperTest.kt Update expectations for “Owned by” vs “Transferred to” display and emphasis.
app/src/test/java/org/dhis2/usescases/teiDashboard/TeiDashboardPageConfiguratorTest.kt Add assertion that Analytics is not displayed.
app/src/test/java/org/dhis2/usescases/teiDashboard/DashboardRepositoryImplTest.kt Ensure transfer availability logic uses program-matched owner.
app/src/test/java/org/dhis2/usescases/searchTrackEntity/ui/mapper/TEICardMapperTest.kt Cover transferred display, emphasized row, and detailed enrolment listing rendering.
app/src/test/java/org/dhis2/usescases/eventsWithoutRegistration/eventCapture/EventPageConfiguratorTest.kt Update to assert Analytics is always hidden.
app/src/test/java/org/dhis2/simprints/ramp/data/DetailedEnrollmentRepositoryTest.kt New tests for assembling detailed enrolment data from D2.
app/src/test/java/org/dhis2/data/filter/FilterRepositoryTest.kt Update filter list ordering/size assertions to include transferred filter.
app/src/main/res/values/strings.xml Add detailed-enrolment listing labels + “Transferred to”; rename visit label resource key.
app/src/main/java/org/dhis2/usescases/teiDashboard/ui/TeiDetailDashboard.kt Render emphasized additional-info column for “Transferred to” on detail cards.
app/src/main/java/org/dhis2/usescases/teiDashboard/ui/model/TeiCardUiModel.kt Add emphasizedAdditionalInfoKey to support emphasized row rendering.
app/src/main/java/org/dhis2/usescases/teiDashboard/ui/mapper/TeiDashboardCardMapper.kt Add transfer icon/label logic and emphasis key for transferred ownership.
app/src/main/java/org/dhis2/usescases/teiDashboard/TeiDashboardPageConfigurator.kt Disable Analytics tab unconditionally.
app/src/main/java/org/dhis2/usescases/teiDashboard/DashboardRepositoryImpl.kt Program-aware program-owner selection when resolving owner org unit.
app/src/main/java/org/dhis2/usescases/teiDashboard/dashboardfragments/teidata/teievents/ui/mapper/TEIEventCardMapper.kt Prefix follow-up event titles with configured visit number when available.
app/src/main/java/org/dhis2/usescases/teiDashboard/dashboardfragments/teidata/TeiDataRepositoryImpl.kt Inject RAMP datastore config; compute per-event visit number for list titles.
app/src/main/java/org/dhis2/usescases/teiDashboard/dashboardfragments/teidata/TEIDataModule.kt Wire RampDatastoreRepository into TeiDataRepositoryImpl.
app/src/main/java/org/dhis2/usescases/searchTrackEntity/ui/mapper/TEICardMapper.kt Add transferred emphasis row + optional detailed enrolment listing with styled spans.
app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEIViewModel.kt Disable global search flow while transferred filter is active.
app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTeiModel.java Add detailedEnrollments payload to carry listing details into UI mapping.
app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchTEActivity.kt Clear transferred filter on activity destroy.
app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchRepositoryImplKt.kt Load detailed enrolment listing config and attach per-TEI detailed enrolment info.
app/src/main/java/org/dhis2/usescases/searchTrackEntity/SearchRepositoryImpl.java Prevent transferred filter from being treated as applicable to global search.
app/src/main/java/org/dhis2/usescases/main/MainActivity.kt Avoid opening filter dialogs after FragmentManager state is saved (crash fix).
app/src/main/java/org/dhis2/usescases/eventsWithoutRegistration/eventCapture/EventPageConfigurator.kt Disable Analytics tab unconditionally.
app/src/main/java/org/dhis2/simprints/ramp/ui/EventHistoryTableScreen.kt Update “Visit” label to renamed resource.
app/src/main/java/org/dhis2/simprints/ramp/model/DetailedEnrollment.kt New model for detailed enrolment summary row data.
app/src/main/java/org/dhis2/simprints/ramp/data/DetailedEnrollmentRepository.kt New repository to assemble enrolment details from events, data values, and org units.
Comments suppressed due to low confidence (1)

form/src/main/java/org/dhis2/form/ui/Form.kt:89

  • Switching from LazyColumn to Column + verticalScroll removes lazy composition. For large forms, this will compose/measure all sections and fields every time, which can cause jank and higher memory usage compared to a lazy list.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@alex-vt
alex-vt marked this pull request as ready for review July 28, 2026 15:14
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.

2 participants