Implement comprehensive three-tier validation system for Excel imports#194
Open
nautilus69 wants to merge 7 commits into
Open
Implement comprehensive three-tier validation system for Excel imports#194nautilus69 wants to merge 7 commits into
nautilus69 wants to merge 7 commits into
Conversation
- Add ValidationResult R6 class for structured validation results
- Store data, critical errors, and warnings separately
- Provide methods for categorizing and formatting messages
- Include validation summary and status checking
- Create validation utilities with esqlabsR integration
- Wrap esqlabsR validation functions to capture errors/warnings
- Implement validators for project config, scenarios, and plots files
- Add smart error categorization (Missing Fields, Uniqueness, References, etc.)
- Parse error messages to extract details (sheet names, row numbers)
- Enhance WarningHandler to support ValidationResult objects
- Add validation_results and critical_errors tracking
- Maintain backward compatibility with legacy warnings
- Provide summary method for all validation results
- Update import module with validation workflow
- Validate project configuration before import
- Show modal for critical errors that block import
- Validate individual Excel files (scenarios, plots)
- Skip files with critical errors, import files with warnings
- Redesign warning modal for three-tier display
- Add tabbed interface (Summary, Critical Errors, Warnings)
- Color-code messages (red for critical, yellow for warnings)
- Dynamic icon changes based on severity
- Include validation summary table with clear status
AKostiv8
requested changes
Nov 18, 2025
AKostiv8
left a comment
Collaborator
There was a problem hiding this comment.
esqlabsR should:
- Perform ALL validation logic
- Return structured ValidationResult objects (or similar)
- Include critical errors, warnings, and validated data
- Handle all business rules (required fields, uniqueness, references, etc.)
ESQapp should:
- Call esqlabsR validation functions
- Display validation results to users
- Make UI decisions based on validation status
- Have ONLY ESQapp-specific validation (UI-related checks, if any)
- Remove validation logic from ESQapp (prepare for esqlabsR migration) - Simplify mod_import.R with clear TODOs for esqlabsR integration - Add HTML support to modal system for rich error formatting - Implement configuration-driven dropdown population
- Add format_validation_errors() to show specific errors by file - Display exact error category, message, and affected Excel file - Replace generic summary with actionable error details - Add validation integration tests (non-reactive checks)
Contributor
Author
|
This should be Tested After [Extending validation #912: https://github.com/esqLABS/esqlabsR/pull/912] on esqlabsR merged to main. This is dependent on the Validation Object which is developed inside esqlabsR package. |
Contributor
Author
PavelBal
reviewed
Dec 12, 2025
| #### **Main Changes:** | ||
| - **Dropdown Validation with Visual Feedback:** Updated `esqlabs.handsontable` components to include dropdown validation across multiple table components (DataCombined, PlotConfiguration, ExportConfiguration, Demographics, IndividualBiometrics). Invalid dropdown values now display with red background and warning tooltips on hover. Resolved an issue in (#191). | ||
| - **Column Description Tooltips:** Added informative tooltips to all table column headers across the application. Hovering over any column header now displays a description extracted from official esqlabsR documentation, helping users understand the purpose and expected values for each field. Resolved an issue in (#191). | ||
| - **Validate Imported Excel file:** Use the R6 Validation Object from EsqlabsR and show the user where should be edited to resolve the critical error. |
Member
There was a problem hiding this comment.
Please rephrase to "validate loaded project" - as we plan to move away from the excel structure.
Collaborator
|
When importing a project configuration, the validation does not detect cases where some or all of the required XLSX configuration files are missing. Here is the list of XLSX file names:
|
Contributor
Author
|
This will be resolved by esqLABS/esqlabsR#919 merge to esqlabsR main. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add ValidationResult R6 class for structured validation results
Create validation utilities with esqlabsR integration
Enhance WarningHandler to support ValidationResult objects
Update import module with validation workflow
Redesign warning modal for three-tier display