=== modified file 'dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/anonymous/action/SaveAnonymousProgramAction.java' --- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/anonymous/action/SaveAnonymousProgramAction.java 2012-06-19 03:45:39 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/anonymous/action/SaveAnonymousProgramAction.java 2012-07-13 09:18:09 +0000 @@ -32,11 +32,8 @@ import java.util.Comparator; import java.util.Date; import java.util.HashMap; -import java.util.List; import java.util.Map; - import javax.servlet.http.HttpServletRequest; - import org.apache.struts2.ServletActionContext; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementService; @@ -49,6 +46,7 @@ import org.hisp.dhis.program.ProgramService; import org.hisp.dhis.program.ProgramStage; import org.hisp.dhis.program.ProgramStageDataElement; +import org.hisp.dhis.program.ProgramStageDataElementService; import org.hisp.dhis.program.ProgramStageInstance; import org.hisp.dhis.program.ProgramStageInstanceService; import org.hisp.dhis.util.ContextUtils; @@ -115,6 +113,18 @@ this.util = util; } + private ProgramStageDataElementService programStageDataElementService; + + public ProgramStageDataElementService getProgramStageDataElementService() + { + return programStageDataElementService; + } + + public void setProgramStageDataElementService( ProgramStageDataElementService programStageDataElementService ) + { + this.programStageDataElementService = programStageDataElementService; + } + // ------------------------------------------------------------------------- // Input Output // ------------------------------------------------------------------------- @@ -161,24 +171,17 @@ return program; } - List dataElements = new ArrayList(); - - public List getDataElements() - { - return dataElements; - } - - public void setDataElements( List dataElements ) - { - this.dataElements = dataElements; - } - private ArrayList programStageDataElements = new ArrayList(); public ArrayList getProgramStageDataElements() { return this.programStageDataElements; } + + public void setProgramStageDataElements( ArrayList programStageDataElements ) + { + this.programStageDataElements = programStageDataElements; + } static final Comparator OrderBySortOrder = new Comparator() { @@ -206,12 +209,6 @@ programStage = program.getProgramStages().iterator().next(); programStageDataElements = new ArrayList( programStage.getProgramStageDataElements() ); - - for ( ProgramStageDataElement each : programStageDataElements ) - { - dataElements.add( each.getDataElement() ); - } - Collections.sort( programStageDataElements, OrderBySortOrder ); HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get( @@ -237,6 +234,9 @@ DataElement dataElement = dataElementService.getDataElement( dataElementId ); + ProgramStageDataElement programStageDataElement = programStageDataElementService.get( programStage, + dataElement ); + value = value.trim(); Boolean valueIsEmpty = (value == null || value.length() == 0); @@ -251,6 +251,11 @@ } prevDataValues.put( key, value ); } + else if ( valueIsEmpty && programStageDataElement.isCompulsory() ) + { + typeViolations.put( key, "is_empty" ); + prevDataValues.put( key, value ); + } } } === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/anonymous/action/ShowAnonymousFormAction.java' --- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/anonymous/action/ShowAnonymousFormAction.java 2012-07-11 09:13:18 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/anonymous/action/ShowAnonymousFormAction.java 2012-07-13 09:18:09 +0000 @@ -28,15 +28,12 @@ package org.hisp.dhis.light.anonymous.action; import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import org.hisp.dhis.dataelement.DataElement; +import java.util.Collections; +import java.util.Comparator; import org.hisp.dhis.program.Program; import org.hisp.dhis.program.ProgramService; import org.hisp.dhis.program.ProgramStage; import org.hisp.dhis.program.ProgramStageDataElement; - import com.opensymphony.xwork2.Action; /** @@ -89,12 +86,25 @@ return program; } - List dataElements = new ArrayList(); - - public List getDataElements() - { - return dataElements; - } + private ArrayList programStageDataElements = new ArrayList(); + + public ArrayList getProgramStageDataElements() + { + return this.programStageDataElements; + } + + public void setProgramStageDataElements( ArrayList programStageDataElements ) + { + this.programStageDataElements = programStageDataElements; + } + + static final Comparator OrderBySortOrder = new Comparator() + { + public int compare( ProgramStageDataElement i1, ProgramStageDataElement i2 ) + { + return i1.getSortOrder().compareTo( i2.getSortOrder() ); + } + }; // ------------------------------------------------------------------------- // Implementation Action @@ -109,17 +119,10 @@ programStage = program.getProgramStages().iterator().next(); - Set programStageDataElement = null; - - programStageDataElement = programStage.getProgramStageDataElements(); + programStageDataElements = new ArrayList( programStage.getProgramStageDataElements() ); + + Collections.sort( programStageDataElements, OrderBySortOrder ); - if( programStageDataElement != null ) - { - for( ProgramStageDataElement each: programStageDataElement ) - { - dataElements.add( each.getDataElement() ); - } - } return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/beneficiaryregistration/action/SaveBeneficiaryAction.java' --- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/beneficiaryregistration/action/SaveBeneficiaryAction.java 2012-07-12 10:33:43 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/beneficiaryregistration/action/SaveBeneficiaryAction.java 2012-07-13 09:18:09 +0000 @@ -356,7 +356,6 @@ else if ( patientIdentifierType.getType().equals( "number" ) && !FormUtils.isNumber( value ) ) { this.validationMap.put( key, "is_invalid_number" ); - this.previousValues.put( key, value ); } else { @@ -366,6 +365,7 @@ patientIdentifierSet.add( patientIdentifier ); patientIdentifier.setIdentifier( value.trim() ); } + this.previousValues.put( key, value ); } } } @@ -387,13 +387,11 @@ && !FormUtils.isInteger( value ) ) { this.validationMap.put( key, "is_invalid_number" ); - this.previousValues.put( key, value ); } else if ( patientAttribute.getValueType().equals( PatientAttribute.TYPE_DATE ) && !FormUtils.isDate( value ) ) { this.validationMap.put( key, "is_invalid_date" ); - this.previousValues.put( key, value ); } else { @@ -412,6 +410,7 @@ patientAttributeValue.setValue( value.trim() ); patientAttributeValues.add( patientAttributeValue ); } + this.previousValues.put( key, value ); } } } === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/namebaseddataentry/action/GetProgramStageFormAction.java' --- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/namebaseddataentry/action/GetProgramStageFormAction.java 2012-06-05 07:38:12 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/namebaseddataentry/action/GetProgramStageFormAction.java 2012-07-13 09:18:09 +0000 @@ -277,7 +277,6 @@ { prevDataValues.put( "DE" + patientDataValue.getDataElement().getId(), patientDataValue.getValue() ); } - return SUCCESS; } } === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/namebaseddataentry/action/SaveProgramStageFormAction.java' --- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/namebaseddataentry/action/SaveProgramStageFormAction.java 2012-06-15 04:30:27 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/namebaseddataentry/action/SaveProgramStageFormAction.java 2012-07-13 09:18:09 +0000 @@ -47,6 +47,8 @@ import org.hisp.dhis.patient.Patient; import org.hisp.dhis.patient.PatientService; import org.hisp.dhis.program.Program; +import org.hisp.dhis.program.ProgramStageDataElement; +import org.hisp.dhis.program.ProgramStageDataElementService; import org.hisp.dhis.program.ProgramStageService; import org.hisp.dhis.util.ContextUtils; import com.opensymphony.xwork2.Action; @@ -132,6 +134,18 @@ this.programStageService = programStageService; } + private ProgramStageDataElementService programStageDataElementService; + + public ProgramStageDataElementService getProgramStageDataElementService() + { + return programStageDataElementService; + } + + public void setProgramStageDataElementService( ProgramStageDataElementService programStageDataElementService ) + { + this.programStageDataElementService = programStageDataElementService; + } + // ------------------------------------------------------------------------- // Input & Output // ------------------------------------------------------------------------- @@ -290,9 +304,11 @@ programStage = util.getProgramStage( programId, programStageId ); program = programStageService.getProgramStage( programStageId ).getProgram(); + org.hisp.dhis.program.ProgramStage dhisProgramStage = programStageService.getProgramStage( programStageId ); + patient = patientService.getPatient( patientId ); dataElements = programStage.getDataElements(); - + int defaultCategoryOptionId = dataElementCategoryService.getDefaultDataElementCategoryOptionCombo().getId(); HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get( ServletActionContext.HTTP_REQUEST ); @@ -313,6 +329,8 @@ // validate types org.hisp.dhis.dataelement.DataElement dataElement = dataElementService.getDataElement( dataElementId ); + ProgramStageDataElement programStageDataElement = programStageDataElementService.get( dhisProgramStage, + dataElement ); value = value.trim(); Boolean valueIsEmpty = (value == null || value.length() == 0); @@ -326,6 +344,11 @@ } prevDataValues.put( key, value ); } + else if ( valueIsEmpty && programStageDataElement.isCompulsory() ) + { + typeViolations.put( key, "is_empty" ); + prevDataValues.put( key, value ); + } // build dataValue for activity value DataValue dataValue = new DataValue(); @@ -357,7 +380,7 @@ return ERROR; } - if ( programStageService.getProgramStage( programStageId ).getIrregular() ) + if ( dhisProgramStage.getIrregular() ) { return REGISTER_NEXT_DUEDATE; } === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/GetSingleEventFormAction.java' --- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/GetSingleEventFormAction.java 2012-07-11 09:13:18 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/GetSingleEventFormAction.java 2012-07-13 09:18:09 +0000 @@ -31,9 +31,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -import java.util.List; - -import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.program.Program; import org.hisp.dhis.program.ProgramService; import org.hisp.dhis.program.ProgramStage; @@ -124,13 +121,6 @@ return this.update; } - List dataElements = new ArrayList(); - - public List getDataElements() - { - return dataElements; - } - private ArrayList programStageDataElements = new ArrayList(); public ArrayList getProgramStageDataElements() @@ -155,14 +145,6 @@ ProgramStage programStage = program.getProgramStages().iterator().next(); programStageDataElements = new ArrayList( programStage.getProgramStageDataElements() ); Collections.sort( programStageDataElements, OrderBySortOrder ); - - if ( programStageDataElements != null ) - { - for ( ProgramStageDataElement each : programStageDataElements ) - { - dataElements.add( each.getDataElement() ); - } - } return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/SaveSingleEventAction.java' --- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/SaveSingleEventAction.java 2012-07-11 09:13:18 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/singleevent/action/SaveSingleEventAction.java 2012-07-13 09:18:09 +0000 @@ -53,6 +53,7 @@ import org.hisp.dhis.program.ProgramService; import org.hisp.dhis.program.ProgramStage; import org.hisp.dhis.program.ProgramStageDataElement; +import org.hisp.dhis.program.ProgramStageDataElementService; import org.hisp.dhis.program.ProgramStageInstance; import org.hisp.dhis.program.ProgramStageInstanceService; import org.hisp.dhis.util.ContextUtils; @@ -120,7 +121,7 @@ { this.util = util; } - + private DataElementService dataElementService; public void setDataElementService( DataElementService dataElementService ) @@ -128,6 +129,18 @@ this.dataElementService = dataElementService; } + private ProgramStageDataElementService programStageDataElementService; + + public ProgramStageDataElementService getProgramStageDataElementService() + { + return programStageDataElementService; + } + + public void setProgramStageDataElementService( ProgramStageDataElementService programStageDataElementService ) + { + this.programStageDataElementService = programStageDataElementService; + } + // ------------------------------------------------------------------------- // Input Output // ------------------------------------------------------------------------- @@ -138,25 +151,13 @@ { return typeViolations; } - + private Map prevDataValues = new HashMap(); public Map getPrevDataValues() { return prevDataValues; } - - List dataElements = new ArrayList(); - - public List getDataElements() - { - return dataElements; - } - - public void setDataElements( List dataElements ) - { - this.dataElements = dataElements; - } private Integer programId; @@ -231,7 +232,7 @@ { return this.instId; } - + private List dynForm = new ArrayList(); public void setDynForm( List dynForm ) @@ -284,16 +285,11 @@ programStageDataElements = new ArrayList( programStage.getProgramStageDataElements() ); Collections.sort( programStageDataElements, OrderBySortOrder ); - - for ( ProgramStageDataElement each : programStageDataElements ) - { - dataElements.add( each.getDataElement() ); - } - + HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get( ServletActionContext.HTTP_REQUEST ); Map parameterMap = ContextUtils.getParameterMap( request ); - + typeViolations.clear(); prevDataValues.clear(); @@ -301,8 +297,7 @@ // ------------------------------------------------------------------------- // Validation // ------------------------------------------------------------------------- - - + for ( String key : parameterMap.keySet() ) { if ( key.startsWith( "DE" ) ) @@ -313,6 +308,9 @@ DataElement dataElement = dataElementService.getDataElement( dataElementId ); + ProgramStageDataElement programStageDataElement = programStageDataElementService.get( programStage, + dataElement ); + value = value.trim(); Boolean valueIsEmpty = (value == null || value.length() == 0); @@ -327,9 +325,14 @@ } prevDataValues.put( key, value ); } + else if ( valueIsEmpty && programStageDataElement.isCompulsory() ) + { + typeViolations.put( key, "is_empty" ); + prevDataValues.put( key, value ); + } } } - + if ( !typeViolations.isEmpty() ) { return ERROR; @@ -352,7 +355,6 @@ programStageInstance.setCompleted( false ); programStageInstanceService.addProgramStageInstance( programStageInstance ); - for ( ProgramStageDataElement programStageDataElement : programStageDataElements ) { DataElement dataElement = programStageDataElement.getDataElement(); === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-light/src/main/resources/META-INF/dhis/beans.xml 2012-07-12 10:33:43 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/resources/META-INF/dhis/beans.xml 2012-07-13 09:18:09 +0000 @@ -175,7 +175,8 @@ - + + - + + @@ -464,6 +466,6 @@ + - === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/resources/org/hisp/dhis/light/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-light/src/main/resources/org/hisp/dhis/light/i18n_module.properties 2012-07-11 09:13:18 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/resources/org/hisp/dhis/light/i18n_module.properties 2012-07-13 09:18:09 +0000 @@ -96,4 +96,5 @@ date_of_birth_type=Date of Birth Type approximated=Approximated declared=Declared -verified=Verified \ No newline at end of file +verified=Verified +anomynous_program_list=Anomynous Program List \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/anonymous/anonymousProgramForm.vm' --- dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/anonymous/anonymousProgramForm.vm 2012-07-11 09:13:18 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/webapp/dhis-web-light/anonymous/anonymousProgramForm.vm 2012-07-13 09:18:09 +0000 @@ -15,20 +15,28 @@

- #foreach( $dataElement in $dataElements) + + #foreach( $programStageDataElement in $programStageDataElements) + #set($dataElement = $programStageDataElement.getDataElement()) + #set( $key = "DE${dataElement.id}" ) + #if( $dataElement.shortName ) #set( $dataElementName = $dataElement.shortName ) #else #set( $dataElementName = $dataElement.name ) - #end - #if (! $dataElement.getOptionSet()) - #set( $key = "DE${dataElement.id}" ) - - #if( $typeViolations.get( $key ) ) + #end + + + + #if( $typeViolations.get( $key ) ) #set( $typeViolation = $typeViolations.get( $key ) )
$prevDataValues.get($key) $i18n.getString($typeViolation) - #end - + #end + + #if (! $dataElement.getOptionSet()) #if($dataElement.type=="bool") - #set( $selected=false ) - + #foreach ($option in $options) #end @@ -69,6 +70,7 @@