=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java 2014-06-11 15:01:05 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java 2014-07-04 21:04:49 +0000 @@ -125,15 +125,17 @@ { org.hisp.dhis.dxf2.events.trackedentity.Relationship relationship = new org.hisp.dhis.dxf2.events.trackedentity.Relationship(); relationship.setDisplayName( entityRelationship.getRelationshipType().getDisplayName() ); + relationship.setTrackedEntityInstanceA( entityRelationship.getEntityInstanceA().getUid() ); + relationship.setTrackedEntityInstanceB( entityRelationship.getEntityInstanceB().getUid() ); - if ( entityInstance.getUid().equals( entityRelationship.getEntityInstanceA().getUid() ) ) + /*if ( entityInstance.getUid().equals( entityRelationship.getEntityInstanceA().getUid() ) ) { relationship.setTrackedEntityInstance( entityRelationship.getEntityInstanceB().getUid() ); } else { relationship.setTrackedEntityInstance( entityRelationship.getEntityInstanceA().getUid() ); - } + }*/ relationship.setRelationship( entityRelationship.getRelationshipType().getUid() ); @@ -387,12 +389,20 @@ + relationship.getRelationship() ) ); } - org.hisp.dhis.trackedentity.TrackedEntityInstance entityInstance = manager.get( org.hisp.dhis.trackedentity.TrackedEntityInstance.class, relationship.getTrackedEntityInstance() ); - - if ( entityInstance == null ) - { - importConflicts.add( new ImportConflict( "Relationship.trackedEntityInstance", "Invalid trackedEntityInstance " - + relationship.getTrackedEntityInstance() ) ); + org.hisp.dhis.trackedentity.TrackedEntityInstance entityInstanceA = manager.get( org.hisp.dhis.trackedentity.TrackedEntityInstance.class, relationship.getTrackedEntityInstanceA() ); + + if ( entityInstanceA == null ) + { + importConflicts.add( new ImportConflict( "Relationship.trackedEntityInstance", "Invalid trackedEntityInstance " + + relationship.getTrackedEntityInstanceA() ) ); + } + + org.hisp.dhis.trackedentity.TrackedEntityInstance entityInstanceB = manager.get( org.hisp.dhis.trackedentity.TrackedEntityInstance.class, relationship.getTrackedEntityInstanceB() ); + + if ( entityInstanceB == null ) + { + importConflicts.add( new ImportConflict( "Relationship.trackedEntityInstance", "Invalid trackedEntityInstance " + + relationship.getTrackedEntityInstanceB() ) ); } } @@ -422,11 +432,13 @@ { for ( org.hisp.dhis.dxf2.events.trackedentity.Relationship relationship : trackedEntityInstance.getRelationships() ) { - org.hisp.dhis.trackedentity.TrackedEntityInstance entityInstanceB = manager.get( org.hisp.dhis.trackedentity.TrackedEntityInstance.class, relationship.getTrackedEntityInstance() ); + org.hisp.dhis.trackedentity.TrackedEntityInstance entityInstanceA = manager.get( org.hisp.dhis.trackedentity.TrackedEntityInstance.class, relationship.getTrackedEntityInstanceA() ); + org.hisp.dhis.trackedentity.TrackedEntityInstance entityInstanceB = manager.get( org.hisp.dhis.trackedentity.TrackedEntityInstance.class, relationship.getTrackedEntityInstanceB() ); + RelationshipType relationshipType = manager.get( RelationshipType.class, relationship.getRelationship() ); Relationship entityRelationship = new Relationship(); - entityRelationship.setEntityInstanceA( entityInstance ); + entityRelationship.setEntityInstanceA( entityInstanceA ); entityRelationship.setEntityInstanceB( entityInstanceB ); entityRelationship.setRelationshipType( relationshipType ); === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/Relationship.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/Relationship.java 2014-06-11 12:43:52 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/Relationship.java 2014-07-04 21:04:49 +0000 @@ -41,7 +41,9 @@ { private String displayName; - private String trackedEntityInstance; + private String trackedEntityInstanceA; + + private String trackedEntityInstanceB; private String relationship; @@ -63,14 +65,26 @@ @JsonProperty @JacksonXmlProperty( isAttribute = true ) - public String getTrackedEntityInstance() - { - return trackedEntityInstance; - } - - public void setTrackedEntityInstance( String trackedEntityInstance ) - { - this.trackedEntityInstance = trackedEntityInstance; + public String getTrackedEntityInstanceA() + { + return trackedEntityInstanceA; + } + + public void setTrackedEntityInstanceA( String trackedEntityInstanceA ) + { + this.trackedEntityInstanceA = trackedEntityInstanceA; + } + + @JsonProperty + @JacksonXmlProperty( isAttribute = true ) + public String getTrackedEntityInstanceB() + { + return trackedEntityInstanceB; + } + + public void setTrackedEntityInstanceB( String trackedEntityInstanceB ) + { + this.trackedEntityInstanceB = trackedEntityInstanceB; } @JsonProperty @@ -94,7 +108,9 @@ Relationship that = (Relationship) o; if ( displayName != null ? !displayName.equals( that.displayName ) : that.displayName != null ) return false; - if ( trackedEntityInstance != null ? !trackedEntityInstance.equals( that.trackedEntityInstance ) : that.trackedEntityInstance != null ) + if ( trackedEntityInstanceA != null ? !trackedEntityInstanceA.equals( that.trackedEntityInstanceA ) : that.trackedEntityInstanceA != null ) + return false; + if ( trackedEntityInstanceB != null ? !trackedEntityInstanceB.equals( that.trackedEntityInstanceB ) : that.trackedEntityInstanceB != null ) return false; if ( relationship != null ? !relationship.equals( that.relationship ) : that.relationship != null ) return false; @@ -105,7 +121,8 @@ public int hashCode() { int result = displayName != null ? displayName.hashCode() : 0; - result = 31 * result + (trackedEntityInstance != null ? trackedEntityInstance.hashCode() : 0); + result = 31 * result + (trackedEntityInstanceA != null ? trackedEntityInstanceA.hashCode() : 0); + result = 31 * result + (trackedEntityInstanceB != null ? trackedEntityInstanceB.hashCode() : 0); result = 31 * result + (relationship != null ? relationship.hashCode() : 0); return result; } @@ -115,7 +132,8 @@ { return "Relationship{" + "displayName='" + displayName + '\'' + - ", trackedEntityInstance='" + trackedEntityInstance + '\'' + + ", trackedEntityInstanceA='" + trackedEntityInstanceA + '\'' + + ", trackedEntityInstanceB='" + trackedEntityInstanceB + '\'' + ", relationship='" + relationship + '\'' + '}'; } === modified file 'dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/components/dashboard/dashboard-controller.js' --- dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/components/dashboard/dashboard-controller.js 2014-07-03 11:30:22 +0000 +++ dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/components/dashboard/dashboard-controller.js 2014-07-04 21:04:49 +0000 @@ -14,7 +14,7 @@ //do translation of the dashboard page TranslationService.translate(); - + //dashboard items $rootScope.biggerDashboardWidgets = []; $rootScope.smallerDashboardWidgets = [];//{bigger: [], smaller: []}; @@ -32,19 +32,50 @@ $rootScope.smallerDashboardWidgets.push($rootScope.relationshipWidget); $rootScope.smallerDashboardWidgets.push($rootScope.notesWidget); - //selections - $scope.selectedTeiId = null; - $scope.selectedProgramId = null; - + //selections $scope.selectedTeiId = ($location.search()).tei; $scope.selectedProgramId = ($location.search()).program; $scope.selectedOrgUnit = storage.get('SELECTED_OU'); - $scope.selectedProgram; - $scope.programs = []; - $scope.selectedTei; - - if( $scope.selectedTeiId ){ - + $scope.selectedProgram; + $scope.selectedTei; + + $scope.$on('fromRelationship', function(event, args) { + $scope.selectedTeiId = args.teiId; + + if( $scope.selectedTeiId ){ + + //Fetch the selected entity + TEIService.get($scope.selectedTeiId).then(function(data){ + $scope.selectedTei = data; + + //get the entity type + TEService.get($scope.selectedTei.trackedEntity).then(function(te){ + $scope.trackedEntity = te; + + ProgramFactory.getAll().then(function(programs){ + $scope.programs = []; + //get programs valid for the selected ou and tei + angular.forEach(programs, function(program){ + if(program.organisationUnits.hasOwnProperty($scope.selectedOrgUnit.id) && + program.trackedEntity.id === $scope.selectedTei.trackedEntity){ + $scope.programs.push(program); + } + + if($scope.selectedProgramId && program.id === $scope.selectedProgramId){ + $scope.selectedProgram = program; + } + }); + + //broadcast selected items for dashboard controllers + CurrentSelection.set({tei: $scope.selectedTei, te: $scope.trackedEntity, pr: $scope.selectedProgram, enrollment: null}); + $scope.broadCastSelections(); + }); + }); + }); + } + }); + + if($scope.selectedTeiId){ //Fetch the selected entity TEIService.get($scope.selectedTeiId).then(function(data){ $scope.selectedTei = data; @@ -54,7 +85,8 @@ $scope.trackedEntity = te; ProgramFactory.getAll().then(function(programs){ - + + $scope.programs = []; //get programs valid for the selected ou and tei angular.forEach(programs, function(program){ if(program.organisationUnits.hasOwnProperty($scope.selectedOrgUnit.id) && @@ -72,7 +104,7 @@ $scope.broadCastSelections(); }); }); - }); + }); } $scope.broadCastSelections = function(){ @@ -85,8 +117,7 @@ $timeout(function() { $rootScope.$broadcast('selectedItems', {programExists: $scope.programs.length > 0}); }, 100); - }; - + }; $scope.back = function(){ $location.path('/'); @@ -114,4 +145,8 @@ modalInstance.result.then(function () { }); }; + + $scope.test = function(){ + console.log('test'); + }; }); === modified file 'dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/components/relationship/add-relationship.html' --- dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/components/relationship/add-relationship.html 2014-07-04 14:36:11 +0000 +++ dhis-2/dhis-web/dhis-web-tracker-capture/src/main/webapp/dhis-web-tracker-capture/components/relationship/add-relationship.html 2014-07-04 21:04:49 +0000 @@ -4,19 +4,19 @@