PurpleSoftSrl / azure_devops_app

Azure DevOps Mobile App
https://www.azdevops.app
MIT License
74 stars 7 forks source link

Add support for work items inherited processes #10

Closed sstasi95 closed 7 months ago

sstasi95 commented 7 months ago

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.

tiz-sharp commented 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!