Error while Accepting data

Hi Mahendra,

I have reviewed your patch, and tested the code with and without it. As far as I can tell, the patch would break the intended working of the F_ACCEPT_DATA_LOWER_LEVELS authority. Here is what I am seeing:

Without the patch: If a user with F_ACCEPT_DATA_LOWER_LEVELS is assigned to an org unit, they may accept approvals for lower levels under that org unit, but they may not accept approvals for the org unit to which they are assigned. This is how the authority is intended to work.

With the patch: If a user with F_ACCEPT_DATA_LOWER_LEVELS is assigned to an org unit, they may accept approvals for that org unit, or for lower levels under that org unit. This is not how the authority is intended to work.

If you are seeing differently, please let me know, and please provide more details of your use case and configuration so I can reproduce your results.

Cheers,

Jim

···

On Tue, Mar 17, 2015 at 7:24 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi,

While “accepting” data, we are getting an error “Approval level not found” although the user has F_ACCEPT_DATA_LOWER_LEVELS authority. We were accepting the data at the org unit level defined in Approval Level settings.

On investigating, we found that the issue is in DefaultApprovalLevelService.java.

We have fixed the bug. The patch is attached with this mail.

Please review and apply it to trunk.

Thanks,

Mahendra

Hi Jim,

Is there any way in DHIS we can permit a user to accept data for the org unit he is assigned to?

That is the use case we are trying to configure

Regards,

Simanta

···

On 18 March 2015 20:37:16 IST, Jim Grace jimgrace@gmail.com wrote:

Hi Mahendra,

I have reviewed your patch, and tested the code with and without it. As far as I can tell, the patch would break the intended working of the F_ACCEPT_DATA_LOWER_LEVELS authority. Here is what I am seeing:

Without the patch: If a user with F_ACCEPT_DATA_LOWER_LEVELS is assigned to an org unit, they may accept approvals for lower levels under that org unit, but they may not accept approvals for the org unit to which they are assigned. This is how the authority is intended to work.

With the patch: If a user with F_ACCEPT_DATA_LOWER_LEVELS is assigned to an org unit, they may accept approvals for that org unit, or for lower levels under that org unit. This is not how the authority is intended to work.

If you are seeing differently, please let me know, and please provide more details of your use case and configuration so I can reproduce your results.

Cheers,

Jim

On Tue, Mar 17, 2015 at 7:24 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi,

While “accepting” data, we are getting an error “Approval level not found” although the user has F_ACCEPT_DATA_LOWER_LEVELS authority. We were accepting the data at the org unit level defined in Approval Level settings.

On investigating, we found that the issue is in DefaultApprovalLevelService.java.

We have fixed the bug. The patch is attached with this mail.

Please review and apply it to trunk.

Thanks,

Mahendra

Thanks, I will work on reproducing this.

···

On Wed, Mar 18, 2015 at 11:31 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

Let me describe the use case.

User is assigned at Org Unit Level 3. User has authority only to accept data, not to approve it. (Approval is done by some other user.)

Data that needs to be accepted is captured at OU level 6.

One Approval Level is defined at OU Level 6.

Without the patch:

After data is approved, if user tries to accept the data at OU level 6, DHIS shows an error message “Approval Level not found”. So user is not able to accept the approved data.

With Patch:

User is able to accept the data.

Just to be clear, this is the behavior on tw-msf branch. On trunk, user is not able to see the “Accept” button at all. We had submitted a patch which was reverted recently. Simanta has sent a reminder for this issue to Lars a few hours back. I have looped you as well on that thread.

Let me know if any other information is required.

Regards,

Mahendra

On Wed, Mar 18, 2015 at 8:37 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mahendra,

I have reviewed your patch, and tested the code with and without it. As far as I can tell, the patch would break the intended working of the F_ACCEPT_DATA_LOWER_LEVELS authority. Here is what I am seeing:

Without the patch: If a user with F_ACCEPT_DATA_LOWER_LEVELS is assigned to an org unit, they may accept approvals for lower levels under that org unit, but they may not accept approvals for the org unit to which they are assigned. This is how the authority is intended to work.

With the patch: If a user with F_ACCEPT_DATA_LOWER_LEVELS is assigned to an org unit, they may accept approvals for that org unit, or for lower levels under that org unit. This is not how the authority is intended to work.

If you are seeing differently, please let me know, and please provide more details of your use case and configuration so I can reproduce your results.

Cheers,

Jim

On Tue, Mar 17, 2015 at 7:24 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi,

While “accepting” data, we are getting an error “Approval level not found” although the user has F_ACCEPT_DATA_LOWER_LEVELS authority. We were accepting the data at the org unit level defined in Approval Level settings.

On investigating, we found that the issue is in DefaultApprovalLevelService.java.

We have fixed the bug. The patch is attached with this mail.

Please review and apply it to trunk.

Thanks,

Mahendra