Skip to content

Task 13886 customizable fields metadata values handling#13908

Draft
raulbob wants to merge 48 commits intodevelopmentfrom
task-13886-customizable_fields_metadata_values_handling
Draft

Task 13886 customizable fields metadata values handling#13908
raulbob wants to merge 48 commits intodevelopmentfrom
task-13886-customizable_fields_metadata_values_handling

Conversation

@raulbob
Copy link
Copy Markdown
Contributor

@raulbob raulbob commented Apr 13, 2026

Fixes #

raulbob and others added 30 commits March 19, 2026 10:34
Implements the customizable fields (metadata and values):

API Layer:
- Added CustomizableFieldType enum with 11 supported field types
- Added CustomizableFieldMetadataDto and CustomizableFieldCustomProperties for field configuration
- Added CustomizableFieldValueDto with typed value accessors for all supported types
- Added CustomizableFieldVisibilityRestrictions and CustomizableFieldVisibilityContext for
  disease-based field visibility control
- Added CustomizableFieldMetadataFacade and CustomizableFieldValueFacade interfaces

Backend Layer:
- Added CustomizableFieldMetadata and CustomizableFieldValue JPA entities with JSON support
- Added CustomizableFieldMetadataService and CustomizableFieldValueService with query methods
- Added EJB facades for metadata and value management with full serialization support
- Added database schema migration with proper indexing, history tables, and triggers
- Added initial testing with CustomizableFieldFacadeEjbTest

REST API:
- Added CustomizableFieldMetadataResource for metadata CRUD and field operations
- Added CustomizableFieldValueResource for value management

UI Layer:
- Extend AbstractEditForm to support preloaded metadata and values
- Added CustomizableFieldsGroup component for grouping fields by UI group
- Added CustomizableFieldInput base class with Binder integration for automatic value sync
- Implement 11 concrete input components for all supported field types:
  TEXT, TEXTAREA, NUMBER, DECIMAL, DATE, DATE_TIME,
  COMBOBOX, CHECKBOX, YES_NO_UNKNOWN, CHECKBOX_LIST, RADIO_BUTTON_LIST
- Added CustomizableFieldInputFactory for polymorphic component creation
- Support field visibility restrictions, mandatory/readonly flags, and UI weighting
Migrate contactProximity from single enum to Set<ContactProximity> in the
  Android app to match the API/backend changes.
… null check in both updateContactCategory() and getContactCategoryForProximity() to handle malformed proximity data
raulbob and others added 16 commits April 13, 2026 09:19
Updated YAML syntax for GitHub Actions workflow, including enabling KVM, fixing quotes, and adjusting cache keys.
* Update sql schema with TestReport renamed columns

* Fixed remarks in sql schema
Add check to avoid committing if no changes are detected.
- Refactored duplicated listeners for IGRA inputs into two listeners
- Fixed error caused by locale conversions with IGRA numeric inputs
Implements the customizable fields (metadata and values):

API Layer:
- Added CustomizableFieldType enum with 11 supported field types
- Added CustomizableFieldMetadataDto and CustomizableFieldCustomProperties for field configuration
- Added CustomizableFieldValueDto with typed value accessors for all supported types
- Added CustomizableFieldVisibilityRestrictions and CustomizableFieldVisibilityContext for
  disease-based field visibility control
- Added CustomizableFieldMetadataFacade and CustomizableFieldValueFacade interfaces

Backend Layer:
- Added CustomizableFieldMetadata and CustomizableFieldValue JPA entities with JSON support
- Added CustomizableFieldMetadataService and CustomizableFieldValueService with query methods
- Added EJB facades for metadata and value management with full serialization support
- Added database schema migration with proper indexing, history tables, and triggers
- Added initial testing with CustomizableFieldFacadeEjbTest

REST API:
- Added CustomizableFieldMetadataResource for metadata CRUD and field operations
- Added CustomizableFieldValueResource for value management

UI Layer:
- Extend AbstractEditForm to support preloaded metadata and values
- Added CustomizableFieldsGroup component for grouping fields by UI group
- Added CustomizableFieldInput base class with Binder integration for automatic value sync
- Implement 11 concrete input components for all supported field types:
  TEXT, TEXTAREA, NUMBER, DECIMAL, DATE, DATE_TIME,
  COMBOBOX, CHECKBOX, YES_NO_UNKNOWN, CHECKBOX_LIST, RADIO_BUTTON_LIST
- Added CustomizableFieldInputFactory for polymorphic component creation
- Support field visibility restrictions, mandatory/readonly flags, and UI weighting
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 13, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c3328e8f-66fb-4a48-b8e6-27ab62b1ee5b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch task-13886-customizable_fields_metadata_values_handling

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

raulbob added 2 commits April 13, 2026 09:31
- UI Group is now an enum instead of a string tied to Context
- Added handling for translation of captions and descriptions
- Improved rendering of YesNoUnkown component
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.

Implement customizable fields metadata and values handling - Customizable Fields

5 participants