akvo / akvo-flow

A data collection and monitoring tool that works anywhere.
http://akvo.org/products/akvoflow/
GNU Affero General Public License v3.0
65 stars 31 forks source link

Assign a data approval workflow to a survey definition - MVP (estimated: 48) #1660

Closed janagombitova closed 7 years ago

janagombitova commented 8 years ago

For all the background information on this feature and the decisions around the MVP please check: akvo/akvo-product-design#82

Assign approval workflow to survey

Details: The user will select which workflow he wants to use when defining the survey following the monitoring pattern.

Questions: Will the user need to re-publish a survey after making this change?

Assign responsible user to an approval workflow

In the survey definition after the user selects a workflow here is also the place where the user will define which dashboard user is responsible in implementing the workflow step. We have decided not to add this user permission in the general Users tab because:

Details: (draft)

muloem commented 8 years ago

We will possibly need to have multiple users to be able to approve an approval

janagombitova commented 8 years ago

Assigning responsible users to an approval workflow

Expected behaviour: (please follow the mock ups and functional design doc)

The question that came up today in the planning poker meeting was whether multiple user can be assigned to one workflow step and how will it work. Is it ok to limit and have only one user responsible for one step and not multiple users? If we made John and Peter responsible for step 1 in the workflow this would mean that the data point will have the status approved on step 1 if either John or Peter approve it. Not if both John and Peter had to approve it, then John would have one approval step and Peter another one.

The proposal was to limit this to only be able to assign one user in the MVP to one step to not overcomplicate this feature for the users. @joycarpediem What is your take on this?

@muloem @loicsans @LarsSjogreen Do you have any remarks?

joycarpediem commented 8 years ago

@janagombitova , John or Peter approving is going to be the most frequent usecase. If John and Peter has to approve , then that will be distinct approval steps.

The workaround for now will be to create a common user for Peter and John and assign it to the approval step. Doing this, we will loose visibility of whether John or Peter approved but i think we can live with that for now.

muloem commented 8 years ago

To Do:

janagombitova commented 8 years ago

Test plan

To run this test you need to have a few test user accounts in place

  1. Open a survey on the dashboard
  2. Go to Survey basics > Advanced Settings - you should see two unchecked boxes, one for enabling monitoring and one for enabling data approval
  3. Check the Save button is now enabled as well - is blue again and not grey
  4. Select Enable data approval > a dropdown with the list of existing approval groups show, with the new ones you have created
  5. Select release version - ordered group and click on Show approval
  6. All step are shown in proper order, the type is indicated correctly as well
  7. Click on the user icon for a step
  8. You receive a list of users to select from (users who have view data permission for this survey)
  9. Select one user per step > user is assigned to the step. (Make sure you assign test users you have access to to cross check if assignment logic works when executing the approval)
  10. Make sure you cannot select more than one user per step
  11. Save changes for the survey
  12. refresh the dashboard, open the survey again and cross check all changes are saved properly
  13. Open another survey and repeat steps 2 - 12 but add the unordered data approval group
  14. Open and 3rd survey and repeat steps 2 - 6. Add an ordered approval group. Do not assign users to this approval group
  15. Repeat all steps using different browsers
janagombitova commented 8 years ago

Notes from testing assigning an approval group to a survey

@muloem before taking action we need to decide what is urgent to get fixed before the 1st public release and what can wait for the following sprints and later improvements

Missing info text

Dropdown to select approval improvement

Saving

Vocabulary change

janagombitova commented 8 years ago

@muloem I am splitting this issue to have the assign responsible user part in a separate one. https://github.com/akvo/akvo-flow/issues/1774

janagombitova commented 8 years ago

2nd round of testing

For this review we can consider the implementation good enough and any comments (from the previous tests) will be handled in the following sprints

👍 assigning an approval group to a survey passes the test

janagombitova commented 8 years ago

👍 passes 3rd test round as well

janagombitova commented 8 years ago

Test plan

For UAT testing follow test plan above https://github.com/akvo/akvo-flow/issues/1660#issuecomment-249529472

janagombitova commented 7 years ago

Notes from another round of testing

👍 passes test plan (besides assigning users which is handled in another issue)