Closed sstasi95 closed 7 months ago
Hi Simone (@sstasi95),
I've thoroughly reviewed your recent pull request, and I must say, I'm truly impressed with the level of detail and the quality of the implementation. The addition of support for work items in inherited processes marks a significant enhancement to our project. Your implementation of custom rules for work items is a clever solution that adds much-needed flexibility and functionality.
I particularly appreciate the introduction of the RulesChecker class in lib/src/services/rules_checker.dart. This is a smart approach to managing field requirements and states, ensuring a dynamic and robust user experience. Also, the way you've handled the editability of form fields for different work item types, with specific validators and visibility logic, shows a deep understanding of both our users' needs and the technical challenges involved.
The commits show a clear and methodical approach to development, from basic support to refining features like date handling, UI overflow, and field formatting. Your attention to detail in cleaning up the code and improving the documentation has not gone unnoticed. It's evident that a lot of thought and effort went into making this feature user-friendly and maintainable.
Overall, this is an excellent contribution that significantly improves our application's functionality and user experience. It's a pleasure to have such talented and dedicated team members like you. Great job!
Approved and looking forward to seeing this in action.
Great Job!
This PR adds support for work items inherited processes. Work items of any type can now be added and edited in any process. This is done by adding support for work item custom rules, which are used to decide if a certain field is required/read-only/should be set to empty depending on the state of the work item and on other conditions.
A
RulesChecker
class has been added at _lib/src/services/ruleschecker.dart, which is responsible to check if a field should be required/read-only/set to empty depending on the current state.Also, all the form fields available for a work item type are now editable with a different form validator depending on their value type (int, string, etc.) and their allowed values. All (and only) the fields that have been set to a non empty value will be visible in the work item detail page.
The logic that decides which form fields should be visible in the form field in
apiService.getWorkItemTypeFields
method in _lib/src/services/azure_apiservice.dart file, and it basically parses the xml version of the form returned from DevOps api to understand which fields should be visible, and then gets the rules for these fields.