=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/utils/CsvObjectUtils.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/utils/CsvObjectUtils.java 2014-04-06 12:03:35 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/utils/CsvObjectUtils.java 2014-05-13 18:18:04 +0000 @@ -28,6 +28,8 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import static org.hisp.dhis.system.util.DateUtils.getMediumDate; + import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; @@ -37,18 +39,18 @@ import org.apache.commons.lang.StringUtils; import org.hisp.dhis.common.BaseIdentifiableObject; import org.hisp.dhis.common.CodeGenerator; +import org.hisp.dhis.common.ListMap; import org.hisp.dhis.dataelement.CategoryOptionGroup; import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataelement.DataElementCategoryOption; import org.hisp.dhis.dataelement.DataElementGroup; import org.hisp.dhis.dxf2.metadata.MetaData; +import org.hisp.dhis.option.OptionSet; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitGroup; import com.csvreader.CsvReader; -import static org.hisp.dhis.system.util.DateUtils.getMediumDate; - /** * @author Lars Helge Overland */ @@ -86,6 +88,10 @@ { metaData.setOrganisationUnitGroups( organisationUnitGroupsFromCsv( reader, input ) ); } + else if ( OptionSet.class.equals( clazz ) ) + { + metaData.setOptionSets( getOptionSetsFromCsv( reader, input ) ); + } return metaData; } @@ -236,6 +242,37 @@ return list; } + + private static List getOptionSetsFromCsv( CsvReader reader, InputStream input ) + throws IOException + { + ListMap listMap = new ListMap(); + + while ( reader.readRecord() ) + { + String[] values = reader.getValues(); + + if ( values != null && values.length > 0 ) + { + OptionSet object = new OptionSet(); + setIdentifiableObject( object, values ); + String option = getSafe( values, 3, null, 2000000 ); + + listMap.putValue( object, option ); + } + } + + List optionSets = new ArrayList(); + + for ( OptionSet optionSet : listMap.keySet() ) + { + List options = new ArrayList( listMap.get( optionSet ) ); + optionSet.setOptions( options ); + optionSets.add( optionSet ); + } + + return optionSets; + } // ------------------------------------------------------------------------- // Supportive methods === modified file 'dhis-2/dhis-web/dhis-web-importexport/src/main/java/org/hisp/dhis/importexport/action/dxf2/MetaDataImportAction.java' --- dhis-2/dhis-web/dhis-web-importexport/src/main/java/org/hisp/dhis/importexport/action/dxf2/MetaDataImportAction.java 2014-04-12 17:06:39 +0000 +++ dhis-2/dhis-web/dhis-web-importexport/src/main/java/org/hisp/dhis/importexport/action/dxf2/MetaDataImportAction.java 2014-05-13 18:18:04 +0000 @@ -28,7 +28,11 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import com.opensymphony.xwork2.Action; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; import org.hisp.dhis.dataelement.CategoryOptionGroup; import org.hisp.dhis.dataelement.DataElement; @@ -39,6 +43,7 @@ import org.hisp.dhis.importexport.ImportStrategy; import org.hisp.dhis.importexport.action.util.ImportMetaDataCsvTask; import org.hisp.dhis.importexport.action.util.ImportMetaDataTask; +import org.hisp.dhis.option.OptionSet; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitGroup; import org.hisp.dhis.scheduling.TaskCategory; @@ -50,11 +55,7 @@ import org.hisp.dhis.user.User; import org.springframework.beans.factory.annotation.Autowired; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; +import com.opensymphony.xwork2.Action; /** * @author Morten Olav Hansen @@ -69,6 +70,7 @@ put( "categoryoptiongroup", CategoryOptionGroup.class ); put( "organisationunit", OrganisationUnit.class ); put( "organisationunitgroup", OrganisationUnitGroup.class ); + put( "optionset", OptionSet.class ); }}; // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-web/dhis-web-importexport/src/main/resources/org/hisp/dhis/importexport/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-importexport/src/main/resources/org/hisp/dhis/importexport/i18n_module.properties 2014-03-31 06:54:16 +0000 +++ dhis-2/dhis-web/dhis-web-importexport/src/main/resources/org/hisp/dhis/importexport/i18n_module.properties 2014-05-13 18:18:04 +0000 @@ -76,6 +76,7 @@ organisation_unit_group_set=Organisation unit group set category_option=Category option category_option_group=Category option group +option_set=Option set element=Element objects=Objects discard_selected=Discard selected === modified file 'dhis-2/dhis-web/dhis-web-importexport/src/main/webapp/dhis-web-importexport/dxf2MetaDataImport.vm' --- dhis-2/dhis-web/dhis-web-importexport/src/main/webapp/dhis-web-importexport/dxf2MetaDataImport.vm 2014-04-12 17:06:39 +0000 +++ dhis-2/dhis-web/dhis-web-importexport/src/main/webapp/dhis-web-importexport/dxf2MetaDataImport.vm 2014-05-13 18:18:04 +0000 @@ -19,7 +19,8 @@ - + + #end