← Back to team overview

dhis2-devs team mailing list archive

Tracker: Allow Future Date in Report Date

 

Hi Abyot,

I have a use case where the Entity being tracked is a Project. There is currently a limitation with the Report date. At the beginning of the project we need to be able to record future targets so that one one hand you can calculate performance up to date and also relative to the end of the project. For example a  5-year project starting in 2014 has an overall target to conduct 1000 (200 yearly) sensitisation meetings. As of now they have completed 100. We must be able to calculate that this currently represents 50% performance to date and 10% relative to the overall project target. 

The report date does not currently allow for future dates. Can this be implemented fairly easily just like you did for the Enrolment Date?

Many thanks.

Regards,

Busoye


On 12 Sep 2014, at 11:25, Adebusoye Anifalaje <busoye@xxxxxxxx> wrote:

> That works very well. My use case is tracking projects. So project end dates for attributes is probably maximum 5- 10 years. So, that’s great.
> 
> I have been using the setting in Programs that allow you to define a date as “Allow Future dates” if the data type is date. It as working in Individual Records module but not the Tracker Capture. I imagine hat this is the fix you just made.
> 
> Cheers.
> Busoye 
> 
> 
> On 12 Sep 2014, at 11:19, Abyot Gizaw <abyota@xxxxxxxxx> wrote:
> 
>> Just made a fix with the date range. What we have now is, it is possible for example to register a 120 year old person (that is sort of the lower limit) and scheduled ahead of 30 years. This could be a bit much but we don't know what kind of use case is out there. If we keep it open, the maximum to be displayed is only 10 years then there is going to be a lot of paging. It is better to display a bigger range. Now we have 150 years (-120,+30). Hope your needs fall in this range.
>> 
>> One more thing, there is a setting in program that relates to future dates.
>> 
>> ---
>> Thank you,
>> Abyot.
>> 
>> On Fri, Sep 12, 2014 at 12:03 PM, Abyot Gizaw <abyota@xxxxxxxxx> wrote:
>> Hi Busoye,
>> 
>> 1. Custom registration form is not yet possible... will come for 2.17
>> 2. Future dates, yes you are correct current year is sort of the limit. We really couldn't get a sensible boundary there. will make some changes to give more space.
>> 3. not sure I understand 3, that can only happen if the enrollment has failed. 
>> 
>> 
>> ---
>> Thank you,
>> Abyot.
>> 
>> On Fri, Sep 12, 2014 at 11:36 AM, Adebusoye Anifalaje <busoye@xxxxxxxx> wrote:
>> Hi Abyot,
>> 
>> I have just downloaded the latest 2.16 stable and the enrolment attributes are loading when you select register. A few problems
>>  though:
>> 
>> 1)  Customised tracked entity form does not load on enrolment page. I get the message below from the console when I select Register
>> 
>> ReferenceError: data is not defined
>>     at http://localhost:8080/dhis-web-tracker-capture/components/enrollment/enrollment-controller.js:176:43
>>     at wrappedCallback (http://localhost:8080/dhis-web-commons/javascripts/angular/angular.js:11046:81)
>>     at http://localhost:8080/dhis-web-commons/javascripts/angular/angular.js:11132:26
>>     at Scope.$eval (http://localhost:8080/dhis-web-commons/javascripts/angular/angular.js:12075:28)
>>     at Scope.$digest (http://localhost:8080/dhis-web-commons/javascripts/angular/angular.js:11903:31)
>>     at Scope.$apply (http://localhost:8080/dhis-web-commons/javascripts/angular/angular.js:12179:24)
>>     at done (http://localhost:8080/dhis-web-commons/javascripts/angular/angular.js:7939:45)
>>     at completeRequest (http://localhost:8080/dhis-web-commons/javascripts/angular/angular.js:8142:7)
>> 
>> 
>> More details here:
>> 
>>     //get enrollment attributes and their values - new attributes because of enrollment
>>         angular.forEach($scope.attributesForEnrollment, function(attribute){
>>             if(!angular.isUndefined(attribute.value)){
>>                 tei.attributes.push({attribute: attribute.id, value: attribute.value});
>>             } 
>>         });
>>         
>>         var enrollment = {trackedEntityInstance: tei.trackedEntityInstance,
>>                             program: $scope.selectedProgram.id,
>>                             status: 'ACTIVE',
>>                             dateOfEnrollment: $scope.newEnrollment.dateOfEnrollment,
>>                             dateOfIncident: $scope.newEnrollment.dateOfIncident ? $scope.newEnrollment.dateOfIncident : $scope.newEnrollment.dateOfEnrollment
>>                         };
>>                         
>>         TEIService.update(tei).then(function(updateResponse){
>>             
>>             if(updateResponse.status === 'SUCCESS'){
>>                 
>>                 //registration is successful, continue for enrollment               
>>                 EnrollmentService.enroll(enrollment).then(function(enrollmentResponse){
>>                     if(enrollmentResponse.status !== 'SUCCESS'){
>>                         //enrollment has failed
>>                         var dialogOptions = {
>>                                 headerText: 'enrollment_error',
>>                                 bodyText: data.description
>>                             };
>>                         DialogService.showDialog({}, dialogOptions);
>>                         return;
>>                     }
>> 
>> 2) Future date in attribute date data type not possible beyond last month of current year. This works on the old Find/Add Instance module
>> 
>> 3) When you add the registration information and click "Save and Continue”, the dashboard still comes up with "Not yet enrolled"
>> 
>> Version:
>> 2.16
>> Build revision:
>> 16420
>> 
>> Hope this give you  bit more detail.
>> 
>> Thanks
>> 
>> Busoye
>> 
>> 
>> On 12 Sep 2014, at 10:33, Abyot Gizaw <abyota@xxxxxxxxx> wrote:
>> 
>>> Hi Busoye,
>>> 
>>> Yes it is committed properly :)
>>> 
>>> I have checked the demo as well. I can see First name, Last name and Gender in the registration form - it is only these three attributes which are assigned to Child Programme. 
>>> 
>>> I think the issue is with your cache. Can you clear and try one more time?
>>> 
>>> 
>>> ---
>>> Thank you,
>>> Abyot.
>>> 
>>> On Fri, Sep 12, 2014 at 11:07 AM, Adebusoye Anifalaje <busoye@xxxxxxxx> wrote:
>>> Hi Abyot,
>>> 
>>> Thanks for the update.
>>> 
>>> I am checking the demo site but I see that this error still persists. If you choose Ngelehun CHC -> Child Program -> Register, the attributes that you get are not from the Program Attributes rather those defined as "Attributes with no Programs".   The output from the console is below. I can’t see the build revision but the details are and from the CI I see that the fix was restored earlier this morning. 
>>> 
>>> Any chance you could see if this was committed properly?
>>> 
>>> Thanks
>>> 
>>> Busoye
>>> 
>>> 
>>> 
>>> TypeError: Cannot read property 'id' of undefined
>>>     at https://apps.dhis2.org/demo/dhis-web-tracker-capture/scripts/services.js:437:75
>>>     at Array.forEach (native)
>>>     at Object.forEach (https://apps.dhis2.org/demo/dhis-web-commons/javascripts/angular/angular.js:322:11)
>>>     at https://apps.dhis2.org/demo/dhis-web-tracker-capture/scripts/services.js:436:25
>>>     at wrappedCallback (https://apps.dhis2.org/demo/dhis-web-commons/javascripts/angular/angular.js:11046:81)
>>>     at https://apps.dhis2.org/demo/dhis-web-commons/javascripts/angular/angular.js:11132:26
>>>     at Scope.$eval (https://apps.dhis2.org/demo/dhis-web-commons/javascripts/angular/angular.js:12075:28)
>>>     at Scope.$digest (https://apps.dhis2.org/demo/dhis-web-commons/javascripts/angular/angular.js:11903:31)
>>>     at Scope.$apply (https://apps.dhis2.org/demo/dhis-web-commons/javascripts/angular/angular.js:12179:24)
>>>     at https://apps.dhis2.org/demo/dhis-web-tracker-capture/scripts/services.js:417:36 
>>> 
>>> 
>>> Demo site
>>> 
>>> 2.16
>>> Build revision:
>>> Build date:
>>> 2014-09-12 08:54
>>> 
>>> 
>>> 
>>> On 11 Sep 2014, at 16:14, Abyot Gizaw <abyota@xxxxxxxxx> wrote:
>>> 
>>>> Hi Busoye,
>>>> 
>>>> A fix is now committed - r16418.
>>>> 
>>>> ---
>>>> Thank you,
>>>> Abyot.
>>>> 
>>>> On Thu, Sep 11, 2014 at 1:59 PM, Adebusoye Anifalaje <busoye@xxxxxxxx> wrote:
>>>> Public bug reported:
>>>> 
>>>> Hi Devs,
>>>> 
>>>> I am having issues loading attributes for a defined program. The program
>>>> assigned to the org unit shows but when I select Register only the
>>>> Report Date comes up. There are no errors in the log but the Console
>>>> output is below:
>>>> 
>>>> TypeError: Cannot read property 'id' of undefined
>>>>     at https://dhis.leprosy.org/dhis-web-tracker-capture/scripts/services.js:437:62
>>>>     at Array.forEach (native)
>>>>     at Object.forEach (https://dhis.leprosy.org/dhis-web-commons/javascripts/angular/angular.js:322:11)
>>>>     at https://dhis.leprosy.org/dhis-web-tracker-capture/scripts/services.js:436:25
>>>>     at wrappedCallback (https://dhis.leprosy.org/dhis-web-commons/javascripts/angular/angular.js:11046:81)
>>>>     at https://dhis.leprosy.org/dhis-web-commons/javascripts/angular/angular.js:11132:26
>>>>     at Scope.$eval (https://dhis.leprosy.org/dhis-web-commons/javascripts/angular/angular.js:12075:28)
>>>>     at Scope.$digest (https://dhis.leprosy.org/dhis-web-commons/javascripts/angular/angular.js:11903:31)
>>>>     at Scope.$apply (https://dhis.leprosy.org/dhis-web-commons/javascripts/angular/angular.js:12179:24)
>>>>     at https://dhis.leprosy.org/dhis-web-tracker-capture/scripts/services.js:417:36 angular.js:9509(anonymous function) angular.js:9509(anonymous function) angular.js:6950wrappedCallback angular.js:11049(anonymous function) angular.js:11132Scope.$eval angular.js:12075Scope.$digest angular.js:11903Scope.$apply angular.js:12179(anonymous function) services.js:417forEach angular.js:322(anonymous function) services.js:411k jquery.min.js:2l.fireWith jquery.min.js:2request.onsuccess dhis2.storage.idb.js:264
>>>> 
>>>> The problem seems to be here:
>>>> 
>>>> angular.forEach(program.programTrackedEntityAttributes, function(pAttribute){
>>>>                     var att = attributes[pAttribute.attribute.id];
>>>>                     att.mandatory = pAttribute.mandatory;
>>>>                     if(pAttribute.displayInList){
>>>>                         att.displayInListNoProgram = true;
>>>> 
>>>> I am using Version:
>>>> 2.16
>>>> Build revision:
>>>> 16410
>>>> 
>>>> Many thanks.
>>>> 
>>>> Kind regards,
>>>> Busoye
>>>> 
>>>> ** Affects: dhis2
>>>>      Importance: Undecided
>>>>          Status: New
>>>> 
>>>> --
>>>> You received this bug notification because you are a member of DHIS 2
>>>> developers, which is subscribed to DHIS.
>>>> https://bugs.launchpad.net/bugs/1368191
>>>> 
>>>> Title:
>>>>   Attributes and Data Entry form not loading in Tracker Capture
>>>> 
>>>> Status in DHIS 2:
>>>>   New
>>>> 
>>>> Bug description:
>>>>   Hi Devs,
>>>> 
>>>>   I am having issues loading attributes for a defined program. The
>>>>   program assigned to the org unit shows but when I select Register only
>>>>   the Report Date comes up. There are no errors in the log but the
>>>>   Console output is below:
>>>> 
>>>>   TypeError: Cannot read property 'id' of undefined
>>>>       at https://dhis.leprosy.org/dhis-web-tracker-capture/scripts/services.js:437:62
>>>>       at Array.forEach (native)
>>>>       at Object.forEach (https://dhis.leprosy.org/dhis-web-commons/javascripts/angular/angular.js:322:11)
>>>>       at https://dhis.leprosy.org/dhis-web-tracker-capture/scripts/services.js:436:25
>>>>       at wrappedCallback (https://dhis.leprosy.org/dhis-web-commons/javascripts/angular/angular.js:11046:81)
>>>>       at https://dhis.leprosy.org/dhis-web-commons/javascripts/angular/angular.js:11132:26
>>>>       at Scope.$eval (https://dhis.leprosy.org/dhis-web-commons/javascripts/angular/angular.js:12075:28)
>>>>       at Scope.$digest (https://dhis.leprosy.org/dhis-web-commons/javascripts/angular/angular.js:11903:31)
>>>>       at Scope.$apply (https://dhis.leprosy.org/dhis-web-commons/javascripts/angular/angular.js:12179:24)
>>>>       at https://dhis.leprosy.org/dhis-web-tracker-capture/scripts/services.js:417:36 angular.js:9509(anonymous function) angular.js:9509(anonymous function) angular.js:6950wrappedCallback angular.js:11049(anonymous function) angular.js:11132Scope.$eval angular.js:12075Scope.$digest angular.js:11903Scope.$apply angular.js:12179(anonymous function) services.js:417forEach angular.js:322(anonymous function) services.js:411k jquery.min.js:2l.fireWith jquery.min.js:2request.onsuccess dhis2.storage.idb.js:264
>>>> 
>>>>   The problem seems to be here:
>>>> 
>>>>   angular.forEach(program.programTrackedEntityAttributes, function(pAttribute){
>>>>                       var att = attributes[pAttribute.attribute.id];
>>>>                       att.mandatory = pAttribute.mandatory;
>>>>                       if(pAttribute.displayInList){
>>>>                           att.displayInListNoProgram = true;
>>>> 
>>>>   I am using Version:
>>>>   2.16
>>>>   Build revision:
>>>>   16410
>>>> 
>>>>   Many thanks.
>>>> 
>>>>   Kind regards,
>>>>   Busoye
>>>> 
>>>> To manage notifications about this bug go to:
>>>> https://bugs.launchpad.net/dhis2/+bug/1368191/+subscriptions
>>>> 
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~dhis2-devs
>>>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>>>> Unsubscribe : https://launchpad.net/~dhis2-devs
>>>> More help   : https://help.launchpad.net/ListHelp
>>>> 
>>> 
>>> 
>> 
>> 
>> 
> 


References