4.10.0 release notes

Known issues

Check the repository for the latest known issues.

Upgrade notes

Breaking changes

None.

UI/UX changes

This release includes two improvements to Aggregate Targets.

Highlights

Aggregate Targets can now be viewed for the previous month

The CHT now supports viewing Aggregate Targets for the previous month. All users who have access to Aggregate Targets will see a Filter option that allows them to choose between the current month and previous month. This affects both “monthly” and “all time” widgets. Viewing the previous month’s data for an “all time” widget (which is cumulative) will show the data as it were at the end of the previous month. When “Previous Month” is selected, a visual cue (the month name) will be displayed both in the list view (as a breadcrumb) and the detail view (as the column header).

Details
  • “Current month” will always be shown by default
  • The “Reporting Period” label in the filter sidebar uses the analytics.target.aggregates.reporting_period translation key
  • This filter is shown for all users who have access to aggregate targets, you don’t need to do anything to enable it (and there is no way to disable it)

Aggregate Targets for users assigned to multiple places

The CHT also now supports Aggregate Targets for users that are assigned to multiple places. If a user has multiple places (added in 4.9.0), they will see an additional filter option that allows them to choose which place they want to view. There is also a visual cue on each Target to clearly indicate which place is being viewed.

NOTE: Users who are assigned only one place will not see the additional place filter option, but they will continue to see the new Reporting Period filter option.

Details
  • The list of places will be shown alphabetically
  • The first place in the list will be selected by default
  • Only one place can be selected at a time (it’s not a multi-select)
  • The label / heading for the list of places in the filter sidebar is the name_key of the place contact type as set in app_settings
  • This filter is shown for all users who have access to aggregate targets and are configured with multiple places, you don’t need to do anything to enable it (and there is no way to disable it)

Form validation for Luhn identifiers

Luhn numbers are used in a range of identification schemes and include a check digit to allow validation so they can be checked for common mistakes like typos. Including this in xpath means this can be checked while the form is being filled out to detect mistakes before the form is completed. More information is available in the xpath documentation.

#9227: Include xpath function for validation of Luhn identifiers

And more…

Features

  • #9194: API Endpoint for getting place by UUID
  • #9227: Include xpath function for validation of Luhn identifiers

Improvements

  • #8461: Client side error log under contacts
  • #9231: Allow users to view aggregate targets and filter by facility_id and reporting period

Security fixes

None.

Performance improvements

None.

Bug fixes

  • #9156: Submitter name is duplicated on the Reports Page | Detail View
  • #9212: The “View all” filter of the History section on the Contact Page | Detail View is not working correctly
  • #9226: Telemetry record for task:refresh isn’t resetting the start time
  • #9229: Old action bar should prevent users with multiple facilities assigned from editing the homeplace
  • #9243: CHT Docker Helper for 4.x fails to install the TLS certificate
  • #9264: Contact detail’s telemetry is not recording the contact’s type in default config.
  • #9265: Contact Details load facilities when user has one home place assigned
  • #9275: The text on the Analytics Filter dropdown does not update
  • #9284: CouchDb restart causes all services to go down
  • #9298: CouchDb error on indexing telemetry documents

Technical improvements

  • #8699: Clean and organize e2e tests: folder /contacts
  • #9081: Add environment shared library
  • #9106: Investigate moving common dependencies to root to make updates easier
  • #9172: Add linting to ensure translations are complete and correct for supported languages
  • #9191: Upgrade from latest release test fails for patch releases
  • #9218: Upgrade e2e tests fails on minor releases
  • #9257: Organize the upgrade test suite
  • #9302: Consolidate angular dependencies
  • #9315: Validation test is failing silently
  • #9320: Update dependabot configuration for dependencies at root level

Contributors

Thanks to all who committed changes for this release!