Skip to content

Ab#134989 abc uniqueness constraints in forms - #2931

Merged
AntoineRelief merged 14 commits into
nextfrom
AB#134989-ABC-Uniqueness-constraints-in-forms
Oct 1, 2026
Merged

AntoineRelief merged 14 commits into
nextfrom
AB#134989-ABC-Uniqueness-constraints-in-forms

Conversation

@GhaziAlibi

@GhaziAlibi GhaziAlibi commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

Description

Adds configurable scoped uniqueness constraints on resource records, enforced on create, update, and bulk (XLSX) import.

Useful links

Type of change

  • New feature (non-breaking change which adds functionality)

How Has This Been Tested?

  • Configured a single-field rule (error severity) on a resource, confirmed duplicate record creation/edit is blocked.
  • Configured a composite-field rule with warning severity, confirmed the errors modal appears and "Update" saves anyway.
  • Configured a conditional rule (field != value / field = value), confirmed it only applies to matching records.
  • Configured a date-overlap rule, confirmed overlapping ranges are flagged and non-overlapping ones aren't.
  • Bulk-uploaded an XLSX with a duplicate row against a conditional error-severity rule: whole file rejected, correct localized message shown in the UI.
  • Backend automated suite: 76 test suites / 865 tests passing.

Screenshots

Screencast_20260907_010130.webm

Checklist:

  • * I have set myself as assignee of the pull request
  • * My code follows the style guidelines of this project
  • * Linting does not generate new warnings
  • * I have performed a self-review of my own code
  • * I have put the ticket for review, adding the oort-frontend team to the list of reviewers
  • * I have commented my code, particularly in hard-to-understand areas
  • * I have put JSDoc comment in all required places
  • * My changes generate no new warnings
  • * I have included screenshots describing my changes if relevant
  • * I have selected labels in the Pull Request, according to the changes with code brings
  • I have made corresponding changes to the documentation ( if required )
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

Add a modal (next to Access) to configure per-resource uniqueness rules
(fields, conditions, date-overlap, severity). Record create/edit now
shows warning-severity violations via the existing errors modal with a
save-anyway option, and bulk upload failures show the actual backend
error instead of a generic message.

AB#134989
@GhaziAlibi
GhaziAlibi changed the base branch from main to next September 2, 2026 00:46
@AntoineRelief

Copy link
Copy Markdown
Collaborator

@GhaziAlibi

Some general comments

  • I'd prefer the rules to be built in a new tab (like forms, records etc). Right now, the feature is too hidden, it's hard to reach it, because the icon is really not clear, and there is no reason to hide it there
  • Translation isn't supported. If using the app in ukrainian, user must see a message in ukrainian
  • I generated an UI with Claude, as an example. I think it's better structured, and fits more what the feature aims to achieve. Only element we miss is the overlapping date ranges. You can take that as an inspiration
CleanShot 2026-09-10 at 23 41 38@2x

@AntoineRelief
AntoineRelief self-requested a review September 11, 2026 09:13

@AntoineRelief AntoineRelief left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

See comments made on PR:
#2931

…modal editor

Replace the modal-only rule editor with a dedicated Validation tab
(table + add/edit/delete modal), matching the styling of the other
resource tabs. Adds active toggle, message tokens, and match display
support to the rule editor and record error modal.
…ess-constraints-in-forms

* origin/next:
  chore(release): 2.24.0-rc.10 [skip ci]
  feat: Enable Read only fields to not be editable when creating a new record (#2936)
  chore(release): 2.24.0-rc.9 [skip ci]
  fix: show actual upload error message instead of a generic one (#2937)
  refactor: Now possible to limit the available languages per application (#2933)
  chore(release): 2.24.0-rc.8 [skip ci]
  feat: In Layout, add possibility to quickly add all fields to a grid, in the order they appear in a form (#2934)
  chore(release): 2.24.0-rc.7 [skip ci]
  fix: Localize button text in edit action button modal (#2935)
  chore(release): 2.24.0-rc.6 [skip ci]
  feat: Roles can now automatically grant permissions on new fields (#2914)
  chore(release): 2.24.0-rc.5 [skip ci]
  feat: Allow sorting query layouts by more than one field (#2925)
  chore(release): 2.24.0-rc.4 [skip ci]
  fix: Some fields could conflict with grid data formatter and generate empty cells in grid widgets
  chore(release): 2.24.0-rc.3 [skip ci]
  feat: Add a new form trigger to capture changes on fields and set value of another field on complete (#2911)
  chore(release): 2.24.0-rc.2 [skip ci]
  fix: Download button not appearing for single image fields in forms
  Replace ESRI API key

# Conflicts:
#	libs/shared/src/lib/components/form/form.component.ts
#	libs/shared/src/lib/services/download/download.service.ts
@GhaziAlibi

Copy link
Copy Markdown
Contributor Author
2 1

@GhaziAlibi
GhaziAlibi requested review from a team and AntoineRelief September 14, 2026 10:46
@AntoineRelief
AntoineRelief merged commit e8321c4 into next Oct 1, 2026
1 check passed
@AntoineRelief
AntoineRelief deleted the AB#134989-ABC-Uniqueness-constraints-in-forms branch October 1, 2026 10:09
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