Skip to content

release: v1.5.0#182

Merged
MiquelAdell merged 47 commits intomasterfrom
development
Apr 24, 2026
Merged

release: v1.5.0#182
MiquelAdell merged 47 commits intomasterfrom
development

Conversation

@MiquelAdell
Copy link
Copy Markdown
Contributor

Summary

Merge development into master to cut release v1.5.0.

Includes PRs merged since v1.4.0: #153, #164, #170, #171, #172, #174, #175, #176, #177, #178, #180, #181, plus the 1.5.0 version bump.

Test plan

  • Release draft v1.5.0 on GitHub is published with the rebuilt assets (d2-autogen-forms.zip, d2-autogen-configurator.zip, custom-data-form.html).

eperedo and others added 30 commits February 13, 2026 12:17
…with comments

Add comment field to DataValueBase and extract it from the DHIS2 API
response. CommentIcon now shows a green dot badge when the associated
data value has a comment, threaded through DataElementItem. Enabled by
default for all datasets with no configuration needed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Extract hasComment() to domain utility in DataValue.ts (single source
  of truth, tested via production code not test-local copy)
- Guard data value lookup behind !noComment to skip wasted work when
  comment icon is not rendered
- Make hasComment a required boolean prop on CommentIcon
- Remove unnecessary explicit comment: undefined from fixture

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove display:flex from CommentIcon wrapper that was inflating the
icon size. Remove temporary console.log debug statements from the
repository.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Make `comment` a required string (default "") on DataValueBase instead
  of optional, preventing missing-comment bugs in new code paths
- Introduce DataValueLookup type for store get/getOrEmpty so callers
  don't need to pass comment for lookups
- Use `dataValue.comment.length > 0` instead of `!!` in hasComment
- Fix orgUnitId in DataElementItem to use dataElement.orgUnit fallback
  for subnational datasets
- Wrap hasComment computation in React.useMemo
- Update test fixtures and assertions to match new empty-string default

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…9bz8cup

hide cells for not visible columns
Allow disabling automatic validation rule pop-ups on data value save
while keeping validation rules available via the DHIS2 "Run validations"
button. Configured per dataset in the DataStore with
`disableAutoValidation: true`.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: add disableAutoValidation option for datasets
[feature]: Give dataElement toggle conditions precedence over orgUnit in toggleMultiple
The previous sort logic ordered the table axes by the (translated) display
label, with a hard-coded "unknown"/"other" pattern to push those to the end.
That broke for non-English translations: in Spanish "desconocido" sorts
before "resistente" / "susceptible" alphabetically and the unknown-pattern
matcher does not catch it, so the column order changes per language.

Sort instead by the canonical position of the category option in its parent
DHIS2 Category. The d2-api schema does not expose a sortOrder field on
CategoryOption, so derive it from the array index of the categoryOptions
collection on the parent Category — DHIS2 returns this collection in its
canonical sort order set in the maintenance app. The index is propagated
through getCocOrdered and getVisibleCategoryOptionCombos via a per-data-
element lookup map, and exposed on the CategoryOption domain entity as a
new `sortOrder: number` field.

The hard-coded unknown-pattern bucket and numeric-prefix parsing in
sortItems are deleted; the function is now a one-line sortBy on the new
field. This resolves the TODO at the top of sortItems about moving the
patterns into datastore config — they are no longer needed.
…y-metadata-sortorder

fix: sort DisaggregatedCOCsGrid columns/rows by metadata order
The custom tab scroll arrow was rendered with opacity 0.5 when its
direction was already exhausted (leftmost/rightmost). The arrow remained
visible and absolutely positioned over the tablist, so on forms with few
tabs that start at x=0 (e.g. EUR annual with 4 tabs at narrow widths) the
disabled left arrow overlapped the first tab label. On forms with many
tabs the issue went unnoticed because the first tab was scrolled off
screen, leaving the arrow over the fade gradient.

Set opacity to 0 and pointer-events to none when the direction is
exhausted, so the arrow disappears entirely until there is something to
scroll to — matching the natural expectation that a scroll affordance
only appears when scrolling is possible.
fix(tabs): hide scroll arrow when at scroll boundary
MiquelAdell and others added 17 commits April 17, 2026 13:20
- change version to D2 Autogen Forms version to avoid confussions
[feature]: Add form info to display form version
Addresses review feedback on #164:
- DataValueLookup narrowed to orgUnitId/period/categoryOptionComboId — the
  lookup methods (get, getOrEmpty, getEmpty) do not need comment or isRequired.
- MirrorDataElementItem annotates dataValueBase with DataValueLookup so TS
  catches stray properties; drops the unused isRequired passthrough.
feat(comments): visual indicator for data values with comments
…mbos

Error with periods not restoring data
…ibility-fixes

Feat/new data entry app compatibility fixes
…th-period-offset

[fix]: Apply rules to sections with period offset
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bump app version to 1.5.0 and align configurator to 1.5.0 for the release.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@MiquelAdell MiquelAdell merged commit a870974 into master Apr 24, 2026
8 of 9 checks passed
@bundlemon
Copy link
Copy Markdown

bundlemon Bot commented Apr 24, 2026

BundleMon

No change in files bundle size

Groups updated (1)
Status Path Size Limits
Build Folder
./**/*
1.52MB (+311.09KB +24.97%) +20%

Final result: ❌

View report in BundleMon website ➡️


Current branch size history | Target branch size history

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.

6 participants