/multiple api for acceptance

Hi,

There is an API (/dataApprovals/multiple) for approving multiple datasets for a given period and org unit. But we don’t have /multiple api for accepting data (/acceptances).

We have a scenario where we need to “accept” data for multiple datasets for a given period and org unit. Would it make sense to the broader DHIS2 community to have this API? Are you planning to write api for the same or should we submit a patch?

···


Regards,

Mansi Singhal

Hi Mansi,

We are refactoring some of the approvals service layer for 2.17, and will have the ability there already for multiple acceptances. I will add support for this in the API controller as well.

Cheers,

Jim

···

On Mon, Oct 6, 2014 at 4:56 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hi,

There is an API (/dataApprovals/multiple) for approving multiple datasets for a given period and org unit. But we don’t have /multiple api for accepting data (/acceptances).

Regards,

Mansi Singhal

We have a scenario where we need to “accept” data for multiple datasets for a given period and org unit. Would it make sense to the broader DHIS2 community to have this API? Are you planning to write api for the same or should we submit a patch?


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Hey Jim,

Can you please tell us, By when these changes are expected to be there in trunk ?

···

On Mon, Oct 6, 2014 at 4:52 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

We are refactoring some of the approvals service layer for 2.17, and will have the ability there already for multiple acceptances. I will add support for this in the API controller as well.

Cheers,

Jim


Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 4:56 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hi,

There is an API (/dataApprovals/multiple) for approving multiple datasets for a given period and org unit. But we don’t have /multiple api for accepting data (/acceptances).

Regards,

Mansi Singhal

We have a scenario where we need to “accept” data for multiple datasets for a given period and org unit. Would it make sense to the broader DHIS2 community to have this API? Are you planning to write api for the same or should we submit a patch?


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Should be some time this week.

···

On Mon, Oct 6, 2014 at 7:51 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hey Jim,

Can you please tell us, By when these changes are expected to be there in trunk ?

On Mon, Oct 6, 2014 at 4:52 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

We are refactoring some of the approvals service layer for 2.17, and will have the ability there already for multiple acceptances. I will add support for this in the API controller as well.

Cheers,

Jim

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 4:56 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hi,

There is an API (/dataApprovals/multiple) for approving multiple datasets for a given period and org unit. But we don’t have /multiple api for accepting data (/acceptances).

Regards,

Mansi Singhal

We have a scenario where we need to “accept” data for multiple datasets for a given period and org unit. Would it make sense to the broader DHIS2 community to have this API? Are you planning to write api for the same or should we submit a patch?


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Thanks.

···

On Mon, Oct 6, 2014 at 5:35 PM, Jim Grace jimgrace@gmail.com wrote:

Should be some time this week.


Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 7:51 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hey Jim,

Can you please tell us, By when these changes are expected to be there in trunk ?

On Mon, Oct 6, 2014 at 4:52 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

We are refactoring some of the approvals service layer for 2.17, and will have the ability there already for multiple acceptances. I will add support for this in the API controller as well.

Cheers,

Jim

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 4:56 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hi,

There is an API (/dataApprovals/multiple) for approving multiple datasets for a given period and org unit. But we don’t have /multiple api for accepting data (/acceptances).

Regards,

Mansi Singhal

We have a scenario where we need to “accept” data for multiple datasets for a given period and org unit. Would it make sense to the broader DHIS2 community to have this API? Are you planning to write api for the same or should we submit a patch?


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Sorry, not yet. The work on this was a bit disrupted this week by other things. But I’m trying for the end of the weekend.

···

On Fri, Oct 10, 2014 at 1:58 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

We were wondering these changes have been checked in to trunk.

On Mon, Oct 6, 2014 at 5:42 PM, Mansi Singhal msinghal@thoughtworks.com wrote:

Thanks.

On Mon, Oct 6, 2014 at 5:35 PM, Jim Grace jimgrace@gmail.com wrote:

Should be some time this week.

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 7:51 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hey Jim,

Can you please tell us, By when these changes are expected to be there in trunk ?

On Mon, Oct 6, 2014 at 4:52 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

We are refactoring some of the approvals service layer for 2.17, and will have the ability there already for multiple acceptances. I will add support for this in the API controller as well.

Cheers,

Jim

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 4:56 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hi,

There is an API (/dataApprovals/multiple) for approving multiple datasets for a given period and org unit. But we don’t have /multiple api for accepting data (/acceptances).

Regards,

Mansi Singhal

We have a scenario where we need to “accept” data for multiple datasets for a given period and org unit. Would it make sense to the broader DHIS2 community to have this API? Are you planning to write api for the same or should we submit a patch?


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Hi Mansi,

My time has been hijacked by some critical work supporting a deployment, but I’m now back to work on this. I need to get it done within the next couple of days. Sorry about the further delay.

Cheers,

Jim

···

On Mon, Oct 20, 2014 at 1:31 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

Just wondering if you got time to work on this api.

On Fri, Oct 10, 2014 at 3:37 PM, Jim Grace jimgrace@gmail.com wrote:

Sorry, not yet. The work on this was a bit disrupted this week by other things. But I’m trying for the end of the weekend.

On Fri, Oct 10, 2014 at 1:58 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

We were wondering these changes have been checked in to trunk.

On Mon, Oct 6, 2014 at 5:42 PM, Mansi Singhal msinghal@thoughtworks.com wrote:

Thanks.

On Mon, Oct 6, 2014 at 5:35 PM, Jim Grace jimgrace@gmail.com wrote:

Should be some time this week.

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 7:51 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hey Jim,

Can you please tell us, By when these changes are expected to be there in trunk ?

On Mon, Oct 6, 2014 at 4:52 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

We are refactoring some of the approvals service layer for 2.17, and will have the ability there already for multiple acceptances. I will add support for this in the API controller as well.

Cheers,

Jim

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 4:56 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hi,

There is an API (/dataApprovals/multiple) for approving multiple datasets for a given period and org unit. But we don’t have /multiple api for accepting data (/acceptances).

Regards,

Mansi Singhal

We have a scenario where we need to “accept” data for multiple datasets for a given period and org unit. Would it make sense to the broader DHIS2 community to have this API? Are you planning to write api for the same or should we submit a patch?


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Hi Jim,

Just wanted to check on the status of approval and acceptance related changes being implemented. By when do you think these will be completed? Also, what is the release date for 2.17?

Thanks,
Shantala

···

On Tue, Oct 28, 2014 at 2:57 PM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

It would also be great if you can point us to any APIs that have changed while you were refactoring.

On Tue, Oct 28, 2014 at 10:49 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

I saw a lot of commits regarding approval over the weekend. I am not sure if /acceptance/multiple was one of them. So I was just wondering if it is there in the trunk. If you are too busy and need some help with it, please let us know.

On Mon, Oct 20, 2014 at 4:16 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

My time has been hijacked by some critical work supporting a deployment, but I’m now back to work on this. I need to get it done within the next couple of days. Sorry about the further delay.

Cheers,

Jim

On Mon, Oct 20, 2014 at 1:31 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

Just wondering if you got time to work on this api.

On Fri, Oct 10, 2014 at 3:37 PM, Jim Grace jimgrace@gmail.com wrote:

Sorry, not yet. The work on this was a bit disrupted this week by other things. But I’m trying for the end of the weekend.

On Fri, Oct 10, 2014 at 1:58 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

We were wondering these changes have been checked in to trunk.

On Mon, Oct 6, 2014 at 5:42 PM, Mansi Singhal msinghal@thoughtworks.com wrote:

Thanks.

On Mon, Oct 6, 2014 at 5:35 PM, Jim Grace jimgrace@gmail.com wrote:

Should be some time this week.

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 7:51 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hey Jim,

Can you please tell us, By when these changes are expected to be there in trunk ?

On Mon, Oct 6, 2014 at 4:52 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

We are refactoring some of the approvals service layer for 2.17, and will have the ability there already for multiple acceptances. I will add support for this in the API controller as well.

Cheers,

Jim

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 4:56 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hi,

There is an API (/dataApprovals/multiple) for approving multiple datasets for a given period and org unit. But we don’t have /multiple api for accepting data (/acceptances).

Regards,

Mansi Singhal

We have a scenario where we need to “accept” data for multiple datasets for a given period and org unit. Would it make sense to the broader DHIS2 community to have this API? Are you planning to write api for the same or should we submit a patch?


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Hi Shantala,

Sorry for the silence. The features are in trunk now. We’ve been doing quite a bit of work to both simplify and speed up the code. Please test and give any feedback.

I don’t know the 2.17 release date but hopefully it’s very soon.

Cheers,

Jim

···

On Thu, Nov 13, 2014 at 12:01 AM, Shantala Raman sraman@thoughtworks.com wrote:

Hi Jim,

Just wanted to check on the status of approval and acceptance related changes being implemented. By when do you think these will be completed? Also, what is the release date for 2.17?

Thanks,
Shantala

On Tue, Oct 28, 2014 at 2:57 PM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

It would also be great if you can point us to any APIs that have changed while you were refactoring.

On Tue, Oct 28, 2014 at 10:49 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

I saw a lot of commits regarding approval over the weekend. I am not sure if /acceptance/multiple was one of them. So I was just wondering if it is there in the trunk. If you are too busy and need some help with it, please let us know.

On Mon, Oct 20, 2014 at 4:16 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

My time has been hijacked by some critical work supporting a deployment, but I’m now back to work on this. I need to get it done within the next couple of days. Sorry about the further delay.

Cheers,

Jim

On Mon, Oct 20, 2014 at 1:31 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

Just wondering if you got time to work on this api.

On Fri, Oct 10, 2014 at 3:37 PM, Jim Grace jimgrace@gmail.com wrote:

Sorry, not yet. The work on this was a bit disrupted this week by other things. But I’m trying for the end of the weekend.

On Fri, Oct 10, 2014 at 1:58 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

We were wondering these changes have been checked in to trunk.

On Mon, Oct 6, 2014 at 5:42 PM, Mansi Singhal msinghal@thoughtworks.com wrote:

Thanks.

On Mon, Oct 6, 2014 at 5:35 PM, Jim Grace jimgrace@gmail.com wrote:

Should be some time this week.

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 7:51 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hey Jim,

Can you please tell us, By when these changes are expected to be there in trunk ?

On Mon, Oct 6, 2014 at 4:52 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

We are refactoring some of the approvals service layer for 2.17, and will have the ability there already for multiple acceptances. I will add support for this in the API controller as well.

Cheers,

Jim

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 4:56 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hi,

There is an API (/dataApprovals/multiple) for approving multiple datasets for a given period and org unit. But we don’t have /multiple api for accepting data (/acceptances).

Regards,

Mansi Singhal

We have a scenario where we need to “accept” data for multiple datasets for a given period and org unit. Would it make sense to the broader DHIS2 community to have this API? Are you planning to write api for the same or should we submit a patch?


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Awesome, thanks a lot, Jim. We will let you know if it doesn’t go well - no mails from us on this would mean it works like a charm :).

···

On Thu, Nov 13, 2014 at 6:33 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Shantala,

Sorry for the silence. The features are in trunk now. We’ve been doing quite a bit of work to both simplify and speed up the code. Please test and give any feedback.

I don’t know the 2.17 release date but hopefully it’s very soon.

Cheers,

Jim

On Thu, Nov 13, 2014 at 12:01 AM, Shantala Raman sraman@thoughtworks.com wrote:

Hi Jim,

Just wanted to check on the status of approval and acceptance related changes being implemented. By when do you think these will be completed? Also, what is the release date for 2.17?

Thanks,
Shantala

On Tue, Oct 28, 2014 at 2:57 PM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

It would also be great if you can point us to any APIs that have changed while you were refactoring.

On Tue, Oct 28, 2014 at 10:49 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

I saw a lot of commits regarding approval over the weekend. I am not sure if /acceptance/multiple was one of them. So I was just wondering if it is there in the trunk. If you are too busy and need some help with it, please let us know.

On Mon, Oct 20, 2014 at 4:16 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

My time has been hijacked by some critical work supporting a deployment, but I’m now back to work on this. I need to get it done within the next couple of days. Sorry about the further delay.

Cheers,

Jim

On Mon, Oct 20, 2014 at 1:31 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

Just wondering if you got time to work on this api.

On Fri, Oct 10, 2014 at 3:37 PM, Jim Grace jimgrace@gmail.com wrote:

Sorry, not yet. The work on this was a bit disrupted this week by other things. But I’m trying for the end of the weekend.

On Fri, Oct 10, 2014 at 1:58 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

We were wondering these changes have been checked in to trunk.

On Mon, Oct 6, 2014 at 5:42 PM, Mansi Singhal msinghal@thoughtworks.com wrote:

Thanks.

On Mon, Oct 6, 2014 at 5:35 PM, Jim Grace jimgrace@gmail.com wrote:

Should be some time this week.

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 7:51 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hey Jim,

Can you please tell us, By when these changes are expected to be there in trunk ?

On Mon, Oct 6, 2014 at 4:52 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

We are refactoring some of the approvals service layer for 2.17, and will have the ability there already for multiple acceptances. I will add support for this in the API controller as well.

Cheers,

Jim

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 4:56 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hi,

There is an API (/dataApprovals/multiple) for approving multiple datasets for a given period and org unit. But we don’t have /multiple api for accepting data (/acceptances).

Regards,

Mansi Singhal

We have a scenario where we need to “accept” data for multiple datasets for a given period and org unit. Would it make sense to the broader DHIS2 community to have this API? Are you planning to write api for the same or should we submit a patch?


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

OK, I guess I’m hoping not to hear from you. :wink:

···

On Thu, Nov 13, 2014 at 9:06 AM, Shantala Raman sraman@thoughtworks.com wrote:

Awesome, thanks a lot, Jim. We will let you know if it doesn’t go well - no mails from us on this would mean it works like a charm :).

On Thu, Nov 13, 2014 at 6:33 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Shantala,

Sorry for the silence. The features are in trunk now. We’ve been doing quite a bit of work to both simplify and speed up the code. Please test and give any feedback.

I don’t know the 2.17 release date but hopefully it’s very soon.

Cheers,

Jim

On Thu, Nov 13, 2014 at 12:01 AM, Shantala Raman sraman@thoughtworks.com wrote:

Hi Jim,

Just wanted to check on the status of approval and acceptance related changes being implemented. By when do you think these will be completed? Also, what is the release date for 2.17?

Thanks,
Shantala

On Tue, Oct 28, 2014 at 2:57 PM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

It would also be great if you can point us to any APIs that have changed while you were refactoring.

On Tue, Oct 28, 2014 at 10:49 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

I saw a lot of commits regarding approval over the weekend. I am not sure if /acceptance/multiple was one of them. So I was just wondering if it is there in the trunk. If you are too busy and need some help with it, please let us know.

On Mon, Oct 20, 2014 at 4:16 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

My time has been hijacked by some critical work supporting a deployment, but I’m now back to work on this. I need to get it done within the next couple of days. Sorry about the further delay.

Cheers,

Jim

On Mon, Oct 20, 2014 at 1:31 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

Just wondering if you got time to work on this api.

On Fri, Oct 10, 2014 at 3:37 PM, Jim Grace jimgrace@gmail.com wrote:

Sorry, not yet. The work on this was a bit disrupted this week by other things. But I’m trying for the end of the weekend.

On Fri, Oct 10, 2014 at 1:58 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

We were wondering these changes have been checked in to trunk.

On Mon, Oct 6, 2014 at 5:42 PM, Mansi Singhal msinghal@thoughtworks.com wrote:

Thanks.

On Mon, Oct 6, 2014 at 5:35 PM, Jim Grace jimgrace@gmail.com wrote:

Should be some time this week.

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 7:51 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hey Jim,

Can you please tell us, By when these changes are expected to be there in trunk ?

On Mon, Oct 6, 2014 at 4:52 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

We are refactoring some of the approvals service layer for 2.17, and will have the ability there already for multiple acceptances. I will add support for this in the API controller as well.

Cheers,

Jim

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 4:56 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hi,

There is an API (/dataApprovals/multiple) for approving multiple datasets for a given period and org unit. But we don’t have /multiple api for accepting data (/acceptances).

Regards,

Mansi Singhal

We have a scenario where we need to “accept” data for multiple datasets for a given period and org unit. Would it make sense to the broader DHIS2 community to have this API? Are you planning to write api for the same or should we submit a patch?


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Ah, you need to build the resource tables first. Apps → Data Administration → Resource Table → Generate Tables. Or it also happens as part of building the analytics tables. The key statement in the error log is “nested exception is org.postgresql.util.PSQLException: ERROR: relation “_orgunitstructure” does not exist”

Cheers,

Jim

···

On Sun, Nov 16, 2014 at 10:58 PM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

DHIS2 is throwing an exception (stack trace below) when we are trying to GET the following URL. We are on rev 17487.

http://localhost:8080/api/dataApprovals/status?children=true&ds=a00b93a8e1a&ds=a0264329d97&ds=a170b8cd5e5&ds=a1869d7c13a&ds=a1a3292f7ce&ds=a2d8612eae4&ds=a3a7972730b&ds=a3e7dd2a626&ds=a3ff8b407cb&ds=a6f379ec1b2&ds=a717250c552&ds=a798ad4eca5&ds=a80a255363a&ds=a9982fbd7a5&ds=aa73eadc073&ds=ab4a6b62fb9&ds=ab6203b3306&ds=ad7fe0ff2af&ds=aed7f5a4bc5&ds=af2c2344212&ds=afcb8adfba5&endDate=2014-11-17&ou=3d760c3a11a&ou=e3e286c6ca8&startDate=2014-09-22

HTTP ERROR 500

Problem accessing /api/dataApprovals/status. Reason:

Server Error

Caused by:

  org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [select a.categoryoptioncomboid, a.organisationunitid, (select min(coalesce(dal.level, 0)) from period p join dataset ds on ds.datasetid in (7073) and ds.categorycomboid = a.categorycomboid left join dataapproval da on da.datasetid = ds.datasetid and da.periodid = p.periodid and da.attributeoptioncomboid = a.categoryoptioncomboid and da.organisationunitid = a.organisationunitid left join dataapprovallevel dal on dal.dataapprovallevelid = da.dataapprovallevelid where p.periodid in (9197) ) as highest_approved_level, (select substring(min(concat(100000 + coalesce(dal.level, 0), coalesce(da.accepted, FALSE))) from 7) from period p join dataset ds on ds.datasetid in (7073) and ds.categorycomboid = a.categorycomboid left join dataapproval da on da.datasetid = ds.datasetid and da.periodid = p.periodid and da.attributeoptioncomboid = a.categoryoptioncomboid and da.organisationunitid = a.organisationunitid left join dataapprovallevel dal on dal.dataapprovallevelid = da.dataapprovallevelid where p.periodid in (9197) ) as accepted_at_highest_level, not exists (select 1 from _orgunitstructure ous left join dataapproval da on da.organisationunitid = ous.organisationunitid and da.dataapprovallevelid = 1 and da.periodid in (9197) and da.datasetid in (7073) and da.attributeoptioncomboid = a.categoryoptioncomboid where ous.idlevel5 = a.organisationunitid and ous.level = 6 and ( da.dataapprovalid is null ) ) as ready_below, false as approved_above from ( select distinct cocco.categoryoptioncomboid, ccoc.categorycomboid, o.organisationunitid from categoryoptioncombos_categoryoptions cocco join categorycombos_optioncombos ccoc on ccoc.categoryoptioncomboid = cocco.categoryoptioncomboid and ccoc.categorycomboid in (14) join dataelementcategoryoption co on co.categoryoptionid = cocco.categoryoptionid and (co.startdate is null or co.startdate <= '2014-11-16') and (co.enddate is null or co.enddate >= '2014-11-10') join _orgunitstructure o on o.organisationunitid = 9171 left join categoryoption_organisationunits coo on coo.categoryoptionid = co.categoryoptionid left join _orgunitstructure ous on ous.idlevel5= o.organisationunitid and ous.organisationunitid = coo.organisationunitid left join _orgunitstructure o1 on o1.idlevel5 = o.organisationunitid and o1.idlevel1 = coo.organisationunitid left join _orgunitstructure o2 on o2.idlevel5 = o.organisationunitid and o2.idlevel2 = coo.organisationunitid left join _orgunitstructure o3 on o3.idlevel5 = o.organisationunitid and o3.idlevel3 = coo.organisationunitid left join _orgunitstructure o4 on o4.idlevel5 = o.organisationunitid and o4.idlevel4 = coo.organisationunitid left join dataelementcategoryoptionusergroupaccesses couga on couga.categoryoptionid = cocco.categoryoptionid left join usergroupaccess uga on uga.usergroupaccessid = couga.usergroupaccessid left join usergroupmembers ugm on ugm.usergroupid = uga.usergroupid where ( coo.categoryoptionid is null or ous.organisationunitid is not null or o1.organisationunitid is not null or o2.organisationunitid is not null or o3.organisationunitid is not null or o4.organisationunitid is not null ) ) as a]; nested exception is org.postgresql.util.PSQLException: ERROR: relation "_orgunitstructure" does not exist Position: 1930 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:769) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1667) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.hisp.dhis.security.filter.CustomAuthenticationFilter.doFilter(CustomAuthenticationFilter.java:64) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter(AutomaticAccessFilter.java:115) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) at org.springframework.web.filter.ShallowEtagHeaderFilter.doFilterInternal(ShallowEtagHeaderFilter.java:80) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:152) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:485) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:290) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:606) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:535) at java.lang.Thread.run(Thread.java:724) Caused by: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [select a.categoryoptioncomboid, a.organisationunitid, (select min(coalesce(dal.level, 0)) from period p join dataset ds on ds.datasetid in (7073) and ds.categorycomboid = a.categorycomboid left join dataapproval da on da.datasetid = ds.datasetid and da.periodid = p.periodid and da.attributeoptioncomboid = a.categoryoptioncomboid and da.organisationunitid = a.organisationunitid left join dataapprovallevel dal on dal.dataapprovallevelid = da.dataapprovallevelid where p.periodid in (9197) ) as highest_approved_level, (select substring(min(concat(100000 + coalesce(dal.level, 0), coalesce(da.accepted, FALSE))) from 7) from period p join dataset ds on ds.datasetid in (7073) and ds.categorycomboid = a.categorycomboid left join dataapproval da on da.datasetid = ds.datasetid and da.periodid = p.periodid and da.attributeoptioncomboid = a.categoryoptioncomboid and da.organisationunitid = a.organisationunitid left join dataapprovallevel dal on dal.dataapprovallevelid = da.dataapprovallevelid where p.periodid in (9197) ) as accepted_at_highest_level, not exists (select 1 from _orgunitstructure ous left join dataapproval da on da.organisationunitid = ous.organisationunitid and da.dataapprovallevelid = 1 and da.periodid in (9197) and da.datasetid in (7073) and da.attributeoptioncomboid = a.categoryoptioncomboid where ous.idlevel5 = a.organisationunitid and ous.level = 6 and ( da.dataapprovalid is null ) ) as ready_below, false as approved_above from ( select distinct cocco.categoryoptioncomboid, ccoc.categorycomboid, o.organisationunitid from categoryoptioncombos_categoryoptions cocco join categorycombos_optioncombos ccoc on ccoc.categoryoptioncomboid = cocco.categoryoptioncomboid and ccoc.categorycomboid in (14) join dataelementcategoryoption co on co.categoryoptionid = cocco.categoryoptionid and (co.startdate is null or co.startdate <= '2014-11-16') and (co.enddate is null or co.enddate >= '2014-11-10') join _orgunitstructure o on o.organisationunitid = 9171 left join categoryoption_organisationunits coo on coo.categoryoptionid = co.categoryoptionid left join _orgunitstructure ous on ous.idlevel5= o.organisationunitid and ous.organisationunitid = coo.organisationunitid left join _orgunitstructure o1 on o1.idlevel5 = o.organisationunitid and o1.idlevel1 = coo.organisationunitid left join _orgunitstructure o2 on o2.idlevel5 = o.organisationunitid and o2.idlevel2 = coo.organisationunitid left join _orgunitstructure o3 on o3.idlevel5 = o.organisationunitid and o3.idlevel3 = coo.organisationunitid left join _orgunitstructure o4 on o4.idlevel5 = o.organisationunitid and o4.idlevel4 = coo.organisationunitid left join dataelementcategoryoptionusergroupaccesses couga on couga.categoryoptionid = cocco.categoryoptionid left join usergroupaccess uga on uga.usergroupaccessid = couga.usergroupaccessid left join usergroupmembers ugm on ugm.usergroupid = uga.usergroupid where ( coo.categoryoptionid is null or ous.organisationunitid is not null or o1.organisationunitid is not null or o2.organisationunitid is not null or o3.organisationunitid is not null or o4.organisationunitid is not null ) ) as a]; nested exception is org.postgresql.util.PSQLException: ERROR: relation "_orgunitstructure" does not exist Position: 1930 at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:413) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:468) at org.springframework.jdbc.core.JdbcTemplate.queryForRowSet(JdbcTemplate.java:523) at org.hisp.dhis.dataapproval.hibernate.HibernateDataApprovalStore.getDataApprovals(HibernateDataApprovalStore.java:374) at org.hisp.dhis.dataapproval.DefaultDataApprovalService.getDataApprovalStatus(DefaultDataApprovalService.java:329) at org.hisp.dhis.dataapproval.DefaultDataApprovalService.getDataApprovalStatusAndPermissions(DefaultDataApprovalService.java:355) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy75.getDataApprovalStatusAndPermissions(Unknown Source) at org.hisp.dhis.webapi.controller.DataApprovalController.getDataApprovalStateResponse(DataApprovalController.java:241) at org.hisp.dhis.webapi.controller.DataApprovalController.getApproval(DataApprovalController.java:228) at org.hisp.dhis.webapi.controller.DataApprovalController$$FastClassBySpringCGLIB$$3201324d.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:640) at org.hisp.dhis.webapi.controller.DataApprovalController$$EnhancerBySpringCGLIB$$e9879b14.getApproval(<generated>) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) ... 73 more Caused by: org.postgresql.util.PSQLException: ERROR: relation "_orgunitstructure" does not exist Position: 1930 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2198) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1927) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:561) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:405) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:285) at com.mchange.v2.c3p0.impl.NewProxyStatement.executeQuery(NewProxyStatement.java:35) at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:452) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:402) ... 110 more

On Fri, Nov 14, 2014 at 2:36 AM, Jim Grace jimgrace@gmail.com wrote:

OK, I guess I’m hoping not to hear from you. :wink:

On Thu, Nov 13, 2014 at 9:06 AM, Shantala Raman sraman@thoughtworks.com wrote:

Awesome, thanks a lot, Jim. We will let you know if it doesn’t go well - no mails from us on this would mean it works like a charm :).

On Thu, Nov 13, 2014 at 6:33 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Shantala,

Sorry for the silence. The features are in trunk now. We’ve been doing quite a bit of work to both simplify and speed up the code. Please test and give any feedback.

I don’t know the 2.17 release date but hopefully it’s very soon.

Cheers,

Jim

On Thu, Nov 13, 2014 at 12:01 AM, Shantala Raman sraman@thoughtworks.com wrote:

Hi Jim,

Just wanted to check on the status of approval and acceptance related changes being implemented. By when do you think these will be completed? Also, what is the release date for 2.17?

Thanks,
Shantala

On Tue, Oct 28, 2014 at 2:57 PM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

It would also be great if you can point us to any APIs that have changed while you were refactoring.

On Tue, Oct 28, 2014 at 10:49 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

I saw a lot of commits regarding approval over the weekend. I am not sure if /acceptance/multiple was one of them. So I was just wondering if it is there in the trunk. If you are too busy and need some help with it, please let us know.

On Mon, Oct 20, 2014 at 4:16 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

My time has been hijacked by some critical work supporting a deployment, but I’m now back to work on this. I need to get it done within the next couple of days. Sorry about the further delay.

Cheers,

Jim

On Mon, Oct 20, 2014 at 1:31 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

Just wondering if you got time to work on this api.

On Fri, Oct 10, 2014 at 3:37 PM, Jim Grace jimgrace@gmail.com wrote:

Sorry, not yet. The work on this was a bit disrupted this week by other things. But I’m trying for the end of the weekend.

On Fri, Oct 10, 2014 at 1:58 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

We were wondering these changes have been checked in to trunk.

On Mon, Oct 6, 2014 at 5:42 PM, Mansi Singhal msinghal@thoughtworks.com wrote:

Thanks.

On Mon, Oct 6, 2014 at 5:35 PM, Jim Grace jimgrace@gmail.com wrote:

Should be some time this week.

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 7:51 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hey Jim,

Can you please tell us, By when these changes are expected to be there in trunk ?

On Mon, Oct 6, 2014 at 4:52 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

We are refactoring some of the approvals service layer for 2.17, and will have the ability there already for multiple acceptances. I will add support for this in the API controller as well.

Cheers,

Jim

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 4:56 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hi,

There is an API (/dataApprovals/multiple) for approving multiple datasets for a given period and org unit. But we don’t have /multiple api for accepting data (/acceptances).

Regards,

Mansi Singhal

We have a scenario where we need to “accept” data for multiple datasets for a given period and org unit. Would it make sense to the broader DHIS2 community to have this API? Are you planning to write api for the same or should we submit a patch?


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Yes, that’s fine.

Note that the approvals feature doesn’t require data to be present. Approving a combination of data set / period / org unit with no data means that you are approving the case that no data is present for that combination.

Cheers,

Jim

···

On Mon, Nov 17, 2014 at 8:16 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Ahh Ok!

I hope it wouldn’t be an issue if we generate tables with only the metadata (without any data values) in DHIS.

On Mon, Nov 17, 2014 at 6:02 PM, Jim Grace jimgrace@gmail.com wrote:

Ah, you need to build the resource tables first. Apps → Data Administration → Resource Table → Generate Tables. Or it also happens as part of building the analytics tables. The key statement in the error log is “nested exception is org.postgresql.util.PSQLException: ERROR: relation “_orgunitstructure” does not exist”

Cheers,

Jim

On Sun, Nov 16, 2014 at 10:58 PM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

DHIS2 is throwing an exception (stack trace below) when we are trying to GET the following URL. We are on rev 17487.

http://localhost:8080/api/dataApprovals/status?children=true&ds=a00b93a8e1a&ds=a0264329d97&ds=a170b8cd5e5&ds=a1869d7c13a&ds=a1a3292f7ce&ds=a2d8612eae4&ds=a3a7972730b&ds=a3e7dd2a626&ds=a3ff8b407cb&ds=a6f379ec1b2&ds=a717250c552&ds=a798ad4eca5&ds=a80a255363a&ds=a9982fbd7a5&ds=aa73eadc073&ds=ab4a6b62fb9&ds=ab6203b3306&ds=ad7fe0ff2af&ds=aed7f5a4bc5&ds=af2c2344212&ds=afcb8adfba5&endDate=2014-11-17&ou=3d760c3a11a&ou=e3e286c6ca8&startDate=2014-09-22

HTTP ERROR 500

Problem accessing /api/dataApprovals/status. Reason:

Server Error

Caused by:

  org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [select a.categoryoptioncomboid, a.organisationunitid, (select min(coalesce(dal.level, 0)) from period p join dataset ds on ds.datasetid in (7073) and ds.categorycomboid = a.categorycomboid left join dataapproval da on da.datasetid = ds.datasetid and da.periodid = p.periodid and da.attributeoptioncomboid = a.categoryoptioncomboid and da.organisationunitid = a.organisationunitid left join dataapprovallevel dal on dal.dataapprovallevelid = da.dataapprovallevelid where p.periodid in (9197) ) as highest_approved_level, (select substring(min(concat(100000 + coalesce(dal.level, 0), coalesce(da.accepted, FALSE))) from 7) from period p join dataset ds on ds.datasetid in (7073) and ds.categorycomboid = a.categorycomboid left join dataapproval da on da.datasetid = ds.datasetid and da.periodid = p.periodid and da.attributeoptioncomboid = a.categoryoptioncomboid and da.organisationunitid = a.organisationunitid left join dataapprovallevel dal on dal.dataapprovallevelid = da.dataapprovallevelid where p.periodid in (9197) ) as accepted_at_highest_level, not exists (select 1 from _orgunitstructure ous left join dataapproval da on da.organisationunitid = ous.organisationunitid and da.dataapprovallevelid = 1 and da.periodid in (9197) and da.datasetid in (7073) and da.attributeoptioncomboid = a.categoryoptioncomboid where ous.idlevel5 = a.organisationunitid and ous.level = 6 and ( da.dataapprovalid is null ) ) as ready_below, false as approved_above from ( select distinct cocco.categoryoptioncomboid, ccoc.categorycomboid, o.organisationunitid from categoryoptioncombos_categoryoptions cocco join categorycombos_optioncombos ccoc on ccoc.categoryoptioncomboid = cocco.categoryoptioncomboid and ccoc.categorycomboid in (14) join dataelementcategoryoption co on co.categoryoptionid = cocco.categoryoptionid and (co.startdate is null or co.startdate <= '2014-11-16') and (co.enddate is null or co.enddate >= '2014-11-10') join _orgunitstructure o on o.organisationunitid = 9171 left join categoryoption_organisationunits coo on coo.categoryoptionid = co.categoryoptionid left join _orgunitstructure ous on ous.idlevel5= o.organisationunitid and ous.organisationunitid = coo.organisationunitid left join _orgunitstructure o1 on o1.idlevel5 = o.organisationunitid and o1.idlevel1 = coo.organisationunitid left join _orgunitstructure o2 on o2.idlevel5 = o.organisationunitid and o2.idlevel2 = coo.organisationunitid left join _orgunitstructure o3 on o3.idlevel5 = o.organisationunitid and o3.idlevel3 = coo.organisationunitid left join _orgunitstructure o4 on o4.idlevel5 = o.organisationunitid and o4.idlevel4 = coo.organisationunitid left join dataelementcategoryoptionusergroupaccesses couga on couga.categoryoptionid = cocco.categoryoptionid left join usergroupaccess uga on uga.usergroupaccessid = couga.usergroupaccessid left join usergroupmembers ugm on ugm.usergroupid = uga.usergroupid where ( coo.categoryoptionid is null or ous.organisationunitid is not null or o1.organisationunitid is not null or o2.organisationunitid is not null or o3.organisationunitid is not null or o4.organisationunitid is not null ) ) as a]; nested exception is org.postgresql.util.PSQLException: ERROR: relation "_orgunitstructure" does not exist Position: 1930 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:769) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1667) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.hisp.dhis.security.filter.CustomAuthenticationFilter.doFilter(CustomAuthenticationFilter.java:64) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter(AutomaticAccessFilter.java:115) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) at org.springframework.web.filter.ShallowEtagHeaderFilter.doFilterInternal(ShallowEtagHeaderFilter.java:80) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:152) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:485) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:290) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:606) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:535) at java.lang.Thread.run(Thread.java:724) Caused by: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [select a.categoryoptioncomboid, a.organisationunitid, (select min(coalesce(dal.level, 0)) from period p join dataset ds on ds.datasetid in (7073) and ds.categorycomboid = a.categorycomboid left join dataapproval da on da.datasetid = ds.datasetid and da.periodid = p.periodid and da.attributeoptioncomboid = a.categoryoptioncomboid and da.organisationunitid = a.organisationunitid left join dataapprovallevel dal on dal.dataapprovallevelid = da.dataapprovallevelid where p.periodid in (9197) ) as highest_approved_level, (select substring(min(concat(100000 + coalesce(dal.level, 0), coalesce(da.accepted, FALSE))) from 7) from period p join dataset ds on ds.datasetid in (7073) and ds.categorycomboid = a.categorycomboid left join dataapproval da on da.datasetid = ds.datasetid and da.periodid = p.periodid and da.attributeoptioncomboid = a.categoryoptioncomboid and da.organisationunitid = a.organisationunitid left join dataapprovallevel dal on dal.dataapprovallevelid = da.dataapprovallevelid where p.periodid in (9197) ) as accepted_at_highest_level, not exists (select 1 from _orgunitstructure ous left join dataapproval da on da.organisationunitid = ous.organisationunitid and da.dataapprovallevelid = 1 and da.periodid in (9197) and da.datasetid in (7073) and da.attributeoptioncomboid = a.categoryoptioncomboid where ous.idlevel5 = a.organisationunitid and ous.level = 6 and ( da.dataapprovalid is null ) ) as ready_below, false as approved_above from ( select distinct cocco.categoryoptioncomboid, ccoc.categorycomboid, o.organisationunitid from categoryoptioncombos_categoryoptions cocco join categorycombos_optioncombos ccoc on ccoc.categoryoptioncomboid = cocco.categoryoptioncomboid and ccoc.categorycomboid in (14) join dataelementcategoryoption co on co.categoryoptionid = cocco.categoryoptionid and (co.startdate is null or co.startdate <= '2014-11-16') and (co.enddate is null or co.enddate >= '2014-11-10') join _orgunitstructure o on o.organisationunitid = 9171 left join categoryoption_organisationunits coo on coo.categoryoptionid = co.categoryoptionid left join _orgunitstructure ous on ous.idlevel5= o.organisationunitid and ous.organisationunitid = coo.organisationunitid left join _orgunitstructure o1 on o1.idlevel5 = o.organisationunitid and o1.idlevel1 = coo.organisationunitid left join _orgunitstructure o2 on o2.idlevel5 = o.organisationunitid and o2.idlevel2 = coo.organisationunitid left join _orgunitstructure o3 on o3.idlevel5 = o.organisationunitid and o3.idlevel3 = coo.organisationunitid left join _orgunitstructure o4 on o4.idlevel5 = o.organisationunitid and o4.idlevel4 = coo.organisationunitid left join dataelementcategoryoptionusergroupaccesses couga on couga.categoryoptionid = cocco.categoryoptionid left join usergroupaccess uga on uga.usergroupaccessid = couga.usergroupaccessid left join usergroupmembers ugm on ugm.usergroupid = uga.usergroupid where ( coo.categoryoptionid is null or ous.organisationunitid is not null or o1.organisationunitid is not null or o2.organisationunitid is not null or o3.organisationunitid is not null or o4.organisationunitid is not null ) ) as a]; nested exception is org.postgresql.util.PSQLException: ERROR: relation "_orgunitstructure" does not exist Position: 1930 at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:413) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:468) at org.springframework.jdbc.core.JdbcTemplate.queryForRowSet(JdbcTemplate.java:523) at org.hisp.dhis.dataapproval.hibernate.HibernateDataApprovalStore.getDataApprovals(HibernateDataApprovalStore.java:374) at org.hisp.dhis.dataapproval.DefaultDataApprovalService.getDataApprovalStatus(DefaultDataApprovalService.java:329) at org.hisp.dhis.dataapproval.DefaultDataApprovalService.getDataApprovalStatusAndPermissions(DefaultDataApprovalService.java:355) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy75.getDataApprovalStatusAndPermissions(Unknown Source) at org.hisp.dhis.webapi.controller.DataApprovalController.getDataApprovalStateResponse(DataApprovalController.java:241) at org.hisp.dhis.webapi.controller.DataApprovalController.getApproval(DataApprovalController.java:228) at org.hisp.dhis.webapi.controller.DataApprovalController$$FastClassBySpringCGLIB$$3201324d.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:640) at org.hisp.dhis.webapi.controller.DataApprovalController$$EnhancerBySpringCGLIB$$e9879b14.getApproval(<generated>) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) ... 73 more Caused by: org.postgresql.util.PSQLException: ERROR: relation "_orgunitstructure" does not exist Position: 1930 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2198) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1927) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:561) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:405) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:285) at com.mchange.v2.c3p0.impl.NewProxyStatement.executeQuery(NewProxyStatement.java:35) at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:452) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:402) ... 110 more

On Fri, Nov 14, 2014 at 2:36 AM, Jim Grace jimgrace@gmail.com wrote:

OK, I guess I’m hoping not to hear from you. :wink:

On Thu, Nov 13, 2014 at 9:06 AM, Shantala Raman sraman@thoughtworks.com wrote:

Awesome, thanks a lot, Jim. We will let you know if it doesn’t go well - no mails from us on this would mean it works like a charm :).

On Thu, Nov 13, 2014 at 6:33 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Shantala,

Sorry for the silence. The features are in trunk now. We’ve been doing quite a bit of work to both simplify and speed up the code. Please test and give any feedback.

I don’t know the 2.17 release date but hopefully it’s very soon.

Cheers,

Jim

On Thu, Nov 13, 2014 at 12:01 AM, Shantala Raman sraman@thoughtworks.com wrote:

Hi Jim,

Just wanted to check on the status of approval and acceptance related changes being implemented. By when do you think these will be completed? Also, what is the release date for 2.17?

Thanks,
Shantala

On Tue, Oct 28, 2014 at 2:57 PM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

It would also be great if you can point us to any APIs that have changed while you were refactoring.

On Tue, Oct 28, 2014 at 10:49 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

I saw a lot of commits regarding approval over the weekend. I am not sure if /acceptance/multiple was one of them. So I was just wondering if it is there in the trunk. If you are too busy and need some help with it, please let us know.

On Mon, Oct 20, 2014 at 4:16 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

My time has been hijacked by some critical work supporting a deployment, but I’m now back to work on this. I need to get it done within the next couple of days. Sorry about the further delay.

Cheers,

Jim

On Mon, Oct 20, 2014 at 1:31 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

Just wondering if you got time to work on this api.

On Fri, Oct 10, 2014 at 3:37 PM, Jim Grace jimgrace@gmail.com wrote:

Sorry, not yet. The work on this was a bit disrupted this week by other things. But I’m trying for the end of the weekend.

On Fri, Oct 10, 2014 at 1:58 AM, Mahendra Kariya mahendra.kariya@thoughtworks.com wrote:

Hi Jim,

We were wondering these changes have been checked in to trunk.

On Mon, Oct 6, 2014 at 5:42 PM, Mansi Singhal msinghal@thoughtworks.com wrote:

Thanks.

On Mon, Oct 6, 2014 at 5:35 PM, Jim Grace jimgrace@gmail.com wrote:

Should be some time this week.

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 7:51 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hey Jim,

Can you please tell us, By when these changes are expected to be there in trunk ?

On Mon, Oct 6, 2014 at 4:52 PM, Jim Grace jimgrace@gmail.com wrote:

Hi Mansi,

We are refactoring some of the approvals service layer for 2.17, and will have the ability there already for multiple acceptances. I will add support for this in the API controller as well.

Cheers,

Jim

Regards,

Mansi Singhal

On Mon, Oct 6, 2014 at 4:56 AM, Mansi Singhal msinghal@thoughtworks.com wrote:

Hi,

There is an API (/dataApprovals/multiple) for approving multiple datasets for a given period and org unit. But we don’t have /multiple api for accepting data (/acceptances).

Regards,

Mansi Singhal

We have a scenario where we need to “accept” data for multiple datasets for a given period and org unit. Would it make sense to the broader DHIS2 community to have this API? Are you planning to write api for the same or should we submit a patch?


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp