=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageSectionService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageSectionService.java 2013-02-04 03:09:04 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageSectionService.java 2013-04-08 09:24:43 +0000 @@ -28,6 +28,7 @@ package org.hisp.dhis.program; import java.util.Collection; +import java.util.List; /** * @author Chau Thu Tran @@ -50,7 +51,9 @@ ProgramStageSection getProgramStageSection( int id ); - ProgramStageSection getProgramStageSectionByName( String name ); + List getProgramStageSectionByName( String name ); + + ProgramStageSection getProgramStageSectionByName( String name, ProgramStage programStage ); Collection getAllProgramStageSections(); === added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageSectionStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageSectionStore.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageSectionStore.java 2013-04-08 09:24:43 +0000 @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2004-2012, University of Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the HISP project nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package org.hisp.dhis.program; + +import org.hisp.dhis.common.GenericNameableObjectStore; + +/** + * @author Chau Thu Tran + * @version $ ProgramStageSectionStore.java Apr 8, 2013 3:48:37 PM $ + */ +public interface ProgramStageSectionStore + extends GenericNameableObjectStore +{ + ProgramStageSection getByNameAndProgramStage( String name, ProgramStage programStage ); +} === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageSectionService.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageSectionService.java 2013-02-04 03:09:04 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageSectionService.java 2013-04-08 09:24:43 +0000 @@ -30,8 +30,8 @@ import static org.hisp.dhis.i18n.I18nUtils.i18n; import java.util.Collection; +import java.util.List; -import org.hisp.dhis.common.GenericIdentifiableObjectStore; import org.hisp.dhis.i18n.I18nService; import org.springframework.transaction.annotation.Transactional; @@ -48,10 +48,9 @@ // Dependencies // ------------------------------------------------------------------------- - private GenericIdentifiableObjectStore programStageSectionStore; + private ProgramStageSectionStore programStageSectionStore; - public void setProgramStageSectionStore( - GenericIdentifiableObjectStore programStageSectionStore ) + public void setProgramStageSectionStore( ProgramStageSectionStore programStageSectionStore ) { this.programStageSectionStore = programStageSectionStore; } @@ -92,9 +91,9 @@ } @Override - public ProgramStageSection getProgramStageSectionByName( String name ) + public List getProgramStageSectionByName( String name ) { - return i18n( i18nService, programStageSectionStore.getByName( name ) ); + return programStageSectionStore.getAllEqName( name ); } @Override @@ -102,11 +101,16 @@ { return i18n( i18nService, programStageSectionStore.getAll() ); } - + @Override public Collection getProgramStages( ProgramStage programStage ) { return i18n( i18nService, programStage.getProgramStageSections() ); } - + + @Override + public ProgramStageSection getProgramStageSectionByName( String name, ProgramStage programStage ) + { + return i18n( i18nService, programStageSectionStore.getByNameAndProgramStage( name, programStage ) ); + } } === added file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageSectionStore.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageSectionStore.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageSectionStore.java 2013-04-08 09:24:43 +0000 @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2004-2012, University of Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the HISP project nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package org.hisp.dhis.program.hibernate; + +import org.hibernate.Criteria; +import org.hibernate.criterion.Restrictions; +import org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore; +import org.hisp.dhis.program.ProgramStage; +import org.hisp.dhis.program.ProgramStageSection; +import org.hisp.dhis.program.ProgramStageSectionStore; + +/** + * @author Chau Thu Tran + * @version $ HibernateProgramStageStore.java Apr 8, 2013 1:30:00 PM $ + */ +public class HibernateProgramStageSectionStore + extends HibernateIdentifiableObjectStore + implements ProgramStageSectionStore +{ + // ------------------------------------------------------------------------- + // Dependency + // ------------------------------------------------------------------------- + + @Override + public ProgramStageSection getByNameAndProgramStage( String name, ProgramStage programStage ) + { + Criteria criteria = getCriteria( Restrictions.eq( "name", name ) ); + criteria.createAlias( "programStageDataElements", "programStageDataElement" ); + criteria.add( Restrictions.eq( "programStageDataElement.programStage", programStage ) ); + + return (ProgramStageSection) criteria.uniqueResult(); + } + +} === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-patient/src/main/resources/META-INF/dhis/beans.xml 2013-04-08 08:33:27 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/resources/META-INF/dhis/beans.xml 2013-04-08 09:24:43 +0000 @@ -58,7 +58,7 @@ + class="org.hisp.dhis.program.hibernate.HibernateProgramStageSectionStore"> === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/programstage/ValidateProgramStageSectionAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/programstage/ValidateProgramStageSectionAction.java 2012-08-24 10:09:45 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/programstage/ValidateProgramStageSectionAction.java 2013-04-08 09:24:43 +0000 @@ -28,8 +28,10 @@ */ import org.hisp.dhis.i18n.I18n; +import org.hisp.dhis.program.ProgramStage; import org.hisp.dhis.program.ProgramStageSection; import org.hisp.dhis.program.ProgramStageSectionService; +import org.hisp.dhis.program.ProgramStageService; import com.opensymphony.xwork2.Action; @@ -53,10 +55,24 @@ this.programStageSectionService = programStageSectionService; } + private ProgramStageService programStageService; + + public void setProgramStageService( ProgramStageService programStageService ) + { + this.programStageService = programStageService; + } + // ------------------------------------------------------------------------- // Input/Output // ------------------------------------------------------------------------- + private Integer programStageId; + + public void setProgramStageId( Integer programStageId ) + { + this.programStageId = programStageId; + } + private Integer id; public void setId( Integer id ) @@ -92,11 +108,13 @@ public String execute() throws Exception { - ProgramStageSection match = programStageSectionService.getProgramStageSectionByName( name ); + ProgramStage progamStage = programStageService.getProgramStage( programStageId ); + + ProgramStageSection match = programStageSectionService.getProgramStageSectionByName( name, progamStage ); if ( match != null && (id == null || match.getId() != id.intValue()) ) { - message = i18n.getString( "duplicate_names" ); + message = i18n.getString( "name_exists" ); return ERROR; } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml 2013-04-08 08:33:27 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml 2013-04-08 09:24:43 +0000 @@ -370,6 +370,8 @@ scope="prototype"> + === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateProgramStageSectionForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateProgramStageSectionForm.vm 2013-02-28 07:59:56 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateProgramStageSectionForm.vm 2013-04-08 09:24:43 +0000 @@ -10,7 +10,7 @@ } }); - checkValueIsExist( "name", "validateProgramStageSection.action", {id:getFieldValue('id')}); + checkValueIsExist( "name", "validateProgramStageSection.action", {id:getFieldValue('id'),programStageId:getFieldValue('programStageId')}); byId('name').focus(); });