Ignore:
Timestamp:
Feb 16, 2011, 2:22:09 PM (6 years ago)
Author:
t.w.abma@…
Message:
  • Importermappings can now be fully retrieved and stored in step 2 of the Importer Wizard
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/importer/ImporterController.groovy

    r1525 r1527  
    351351                        flow.importer_datamatrix_start = params.datamatrix_start.toInteger() - 1 // 0 == first row
    352352                        flow.importer_headerrow = params.headerrow.toInteger()
    353             flow.importer_entityclass = entityClass.getClass()
     353            flow.importer_entityclass = entityClass
    354354
    355355                        // Get the header from the Excel file using the arguments given in the first step of the wizard
     
    372372                }
    373373
     374
    374375        log.error ".importer wizard not all fields are filled in"
    375376        this.appendErrorMap(['error': "Not all fields are filled in, please fill in or select all fields"], flash.wizardErrors)
     
    386387    boolean propertiesLoadImportMappingPage(flow, flash, params) {
    387388        def im = ImportMapping.get(params.importmapping_id.toInteger())
    388 
    389         flow.importer_header.each {
    390             println "original=" + it.dump()
    391         }
     389        im.refresh()
    392390
    393391        im.mappingcolumns.each { mappingcolumn ->
    394             flow.importer_header[mappingcolumn.index.toInteger()] = mappingcolumn
    395             println "adjusted=" + mappingcolumn.dump()
     392            def mc = new MappingColumn()
     393            mc.properties = mappingcolumn.properties
     394
     395            flow.importer_header[mappingcolumn.index.toInteger()] = mc         
    396396        }
    397397    }
     
    418418                        // Create an actual class instance of the selected entity with the selected template
    419419                        // This should be inside the closure because in some cases in the advanced importer, the fields can have different target entities                     
    420                         def entityClass = GdtService.getInstanceByEntityName(flow.importer_header[columnindex.toInteger()].entity.getName())
    421             def entityObj = entityClass.newInstance(template:template)
     420                        //def entityClass = GdtService.getInstanceByEntityName(flow.importer_header[columnindex.toInteger()].entity.getName())           
     421            def entityObj = flow.importer_entityclass.newInstance(template:template)
    422422
    423423            def dontimport = (property == "dontimport") ? true : false
     
    432432                                        property:property,
    433433                                        index:columnindex,
    434                                         entity:flow.importer_header[columnindex.toInteger()].entity,
     434                                        entityclass:flow.importer_entityclass,
    435435                                        templatefieldtype:entityObj.giveFieldType(property),
    436436                                        dontimport: dontimport,
     
    439439            // Save mappingcolumn
    440440            if (mc.validate()) {
    441                 im.addToMappingcolumns(mc)
     441                im.addToMappingcolumns(mc)               
    442442            }
    443443            else {
     
    449449            // Save importmapping
    450450            if (im.validate()) {
    451                 im.save(flush:true)
     451                im.save(flush:true)               
    452452            }
    453453            else {
     
    488488                        // Create an actual class instance of the selected entity with the selected template
    489489                        // This should be inside the closure because in some cases in the advanced importer, the fields can have different target entities
    490                         def entityClass = Class.forName(flow.importer_header[columnindex.toInteger()].entity.getName(), true, this.getClass().getClassLoader())
     490                        def entityClass = Class.forName(flow.importer_header[columnindex.toInteger()].entityclass.getName(), true, this.getClass().getClassLoader())
    491491                        def entityObj = entityClass.newInstance(template: template)
    492492
     
    707707                return errors
    708708        }
     709
    709710}
Note: See TracChangeset for help on using the changeset viewer.