=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/Enrollment.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/Enrollment.java 2014-09-08 13:35:02 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/Enrollment.java 2014-09-09 12:54:28 +0000 @@ -65,7 +65,7 @@ private List notes = new ArrayList<>(); - protected Boolean followup; + private Boolean followup; public Enrollment() { === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java 2014-08-21 16:30:01 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java 2014-09-09 12:54:28 +0000 @@ -556,6 +556,7 @@ event.setTrackedEntityInstance( programStageInstance.getProgramInstance().getEntityInstance().getUid() ); } + event.setFollowup( programStageInstance.getProgramInstance().getFollowup() ); event.setEnrollmentStatus( EventStatus.fromInt( programStageInstance.getProgramInstance().getStatus() ) ); event.setStatus( programStageInstance.getStatus() ); event.setEventDate( DateUtils.getLongDateString( programStageInstance.getExecutionDate() ) ); === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/Event.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/Event.java 2014-08-15 12:54:04 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/Event.java 2014-09-09 12:54:28 +0000 @@ -32,6 +32,7 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; + import org.hisp.dhis.common.BaseLinkableObject; import org.hisp.dhis.common.DxfNamespaces; import org.hisp.dhis.event.EventStatus; @@ -72,6 +73,8 @@ private List dataValues = new ArrayList<>(); private List notes = new ArrayList<>(); + + private Boolean followup; public Event() { @@ -246,6 +249,18 @@ { this.notes = notes; } + + @JsonProperty + @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0) + public Boolean getFollowup() + { + return followup; + } + + public void setFollowup( Boolean followup ) + { + this.followup = followup; + } @Override public boolean equals( Object o ) === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/JdbcEventStore.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/JdbcEventStore.java 2014-08-22 04:48:43 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/JdbcEventStore.java 2014-09-09 12:54:28 +0000 @@ -125,6 +125,7 @@ { event.setEnrollment( rowSet.getString( "pi_uid" ) ); event.setEnrollmentStatus( EventStatus.fromInt( rowSet.getInt( "pi_status" ) ) ); + event.setFollowup( rowSet.getBoolean( "pi_followup" ) ); } event.setTrackedEntityInstance( rowSet.getString( "tei_uid" ) ); @@ -203,7 +204,7 @@ SqlHelper hlp = new SqlHelper(); String sql = - "select pa.uid as tei_uid, pi.uid as pi_uid, pi.status as pi_status, p.uid as p_uid, p.type as p_type, ps.uid as ps_uid, ps.capturecoordinates as ps_capturecoordinates, pa.uid as pa_uid, psi.uid as psi_uid, psi.status as psi_status, ou.uid as ou_uid, " + + "select pa.uid as tei_uid, pi.uid as pi_uid, pi.status as pi_status, pi.followup as pi_followup, p.uid as p_uid, p.type as p_type, ps.uid as ps_uid, ps.capturecoordinates as ps_capturecoordinates, pa.uid as pa_uid, psi.uid as psi_uid, psi.status as psi_status, ou.uid as ou_uid, " + "psi.executiondate as psi_executiondate, psi.duedate as psi_duedate, psi.completeduser as psi_completeduser, psi.longitude as psi_longitude, psi.latitude as psi_latitude, " + "psinote.trackedentitycommentid as psinote_id, psinote.commenttext as psinote_value, psinote.createddate as psinote_soreddate, psinote.creator as psinote_storedby, " + "pdv.value as pdv_value, pdv.storedby as pdv_storedby, pdv.providedelsewhere as pdv_providedelsewhere, de.uid as de_uid " + === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/upcoming-events-controller.js' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/upcoming-events-controller.js 2014-09-09 12:06:50 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/upcoming-events-controller.js 2014-09-09 12:54:28 +0000 @@ -21,6 +21,7 @@ $scope.ouModes = [{name: 'SELECTED'}, {name: 'CHILDREN'}, {name: 'DESCENDANTS'}, {name: 'ACCESSIBLE'}]; $scope.selectedOuMode = $scope.ouModes[0]; $scope.report = {}; + $scope.displayMode = {}; //watch for selection of org unit from tree $scope.$watch('selectedOrgUnit', function() { @@ -134,13 +135,14 @@ //incase a TEI happens to have more than one overdue, sort using duedate for(var tei in $scope.dhis2Events){ $scope.dhis2Events[tei] = orderByFilter($scope.dhis2Events[tei], '-dueDate'); - $scope.dhis2Events[tei].reverse(); + $scope.dhis2Events[tei].reverse(); } //make upcoming event name and its due date part of the grid column for(var i=0; i<$scope.teiList.length; i++){ $scope.teiList[i].event_name = $scope.dhis2Events[$scope.teiList[i].id][0].name; $scope.teiList[i].due_date = $scope.dhis2Events[$scope.teiList[i].id][0].dueDate; + $scope.teiList[i].followup = $scope.dhis2Events[$scope.teiList[i].id][0].followup; } $scope.reportFinished = true; === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/upcoming-events.html' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/upcoming-events.html 2014-09-09 12:06:50 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/components/report/upcoming-events.html 2014-09-09 12:54:28 +0000 @@ -37,18 +37,94 @@ - +
-
+
+
+ + + + + + + + + + + + + + +
+ {{'program'| translate}} + + +
{{'org_unit'| translate}} +
+
+
+ +
+ {{'filter'| translate}} + + +
+
+
+
+
+ + + + + +
+ + {{'required'| translate}} (yyyy-mm-dd) + + + {{'required'| translate}} (yyyy-mm-dd) +
+
+
+ +
+
+ +
+
+
{{'no_program_exists_report'| translate}}
+
+
+
+
+
{{'please_select_program_report'| translate}}
+
+
- + - +
- +
@@ -67,39 +143,39 @@ - + - {{gridColumn.name | translate}} + {{gridColumn.name| translate}} - + - - + + - - + + - - + + - - + + - + - + @@ -110,16 +186,16 @@ - + - + ng-repeat="gridColumn in gridColumns" ng-if='displayMode.onlyMarkedFollowup ? tei.followup:true'> {{tei[gridColumn.id]}} === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/en.json' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/en.json 2014-09-08 13:35:02 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/en.json 2014-09-09 12:54:28 +0000 @@ -30,6 +30,7 @@ "required": "Required", "number_required": "Number required", "date_required": "Date required (yyyy-mm-dd)", + "filter": "Filter", "search": "Search", "_search": "search", "advanced_search": "Advanced search", @@ -132,6 +133,7 @@ "_report": "report", "visit_schedule": "Visit Schedule", "mark_for_followup": "Mark for followup", + "only_marked_for_followup": "Only marked for followup", "registered_data": "Registered data", "no_data_found": "No data found", "no_data": "No data",