Changeset 1525 for trunk


Ignore:
Timestamp:
Feb 15, 2011, 5:12:25 PM (10 years ago)
Author:
t.w.abma@…
Message:
  • Importer tests on hold due to missing parse() method in Template domain
  • ImportMappings? and MappingColumns? are now persisted and can be loaded, todo: null-entities? and lazy loading issue
Location:
trunk
Files:
1 deleted
6 edited

Legend:

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

    r1515 r1525  
    160160                    flash.importer_columnproperty = params.columnproperty
    161161                    propertiesSaveImportMappingPage(flow, flash, params)                   
     162                } else // trying to load an existing import mapping
     163                if (params.importmapping_id) {
     164                    propertiesLoadImportMappingPage(flow, flash, params)
    162165                }
     166
     167
    163168               
    164169                if (params.fuzzymatching == "true")
     
    373378
    374379    /**
     380     * Load an existing import mapping
     381     *
     382     * @param Map LocalAttributeMap (the flow scope)
     383         * @param Map GrailsParameterMap (the flow parameters = form data)
     384         * @returns boolean true if correctly validated, otherwise false
     385         */
     386    boolean propertiesLoadImportMappingPage(flow, flash, params) {
     387        def im = ImportMapping.get(params.importmapping_id.toInteger())
     388
     389        flow.importer_header.each {
     390            println "original=" + it.dump()
     391        }
     392
     393        im.mappingcolumns.each { mappingcolumn ->
     394            flow.importer_header[mappingcolumn.index.toInteger()] = mappingcolumn
     395            println "adjusted=" + mappingcolumn.dump()
     396        }
     397    }
     398
     399    /**
    375400     * Save the properties as an import mapping.
    376401     *
     
    404429
    405430            // Create new MappingColumn instance
    406             /*def mc = new MappingColumn (name: flow.importer_header[columnindex.toInteger()].name,
     431            def mc = new MappingColumn (name: flow.importer_header[columnindex.toInteger()].name,
    407432                                        property:property,
    408433                                        index:columnindex,
    409                                         entity:entityClass,
     434                                        entity:flow.importer_header[columnindex.toInteger()].entity,
    410435                                        templatefieldtype:entityObj.giveFieldType(property),
    411436                                        dontimport: dontimport,
    412437                                        identifier:isPreferredIdentifier)
    413438
    414             println "storing mapping: " + mc.validate()
    415             im.addToMappingColumns(mc)*/
     439            // Save mappingcolumn
     440            if (mc.validate()) {
     441                im.addToMappingcolumns(mc)
     442            }
     443            else {
     444                mc.errors.allErrors.each {
     445                    println it
     446                }
     447            }
     448
     449            // Save importmapping
     450            if (im.validate()) {
     451                im.save(flush:true)
     452            }
     453            else {
     454                im.errors.allErrors.each {
     455                    println it
     456                }
     457            }
     458           
    416459                }
    417460    }
     461
     462    /*def importmappings = {
     463       
     464        ImportMapping.list().each { importmapping ->
     465            importmapping.mappingcolumns.each { mappingcolumn ->
     466                println "das"+mappingcolumn.dump()
     467
     468            }
     469        }
     470
     471        render("leeg")
     472    }*/
    418473
    419474        /**
  • trunk/grails-app/domain/dbnp/importer/ImportMapping.groovy

    r1515 r1525  
    99        String name
    1010
    11 
    1211        static constraints = {
    1312        }
  • trunk/grails-app/domain/dbnp/importer/MappingColumn.groovy

    r1515 r1525  
    2323        Boolean dontimport
    2424
    25     static transients = [ "templatefieldtype", "entity" ]
    26     static belongsTo = [importmapping:ImportMapping]
     25    static transients = [ "templatefieldtype", "entity" ]   
    2726
    2827    static constraints = {
    29             name(unique: true)
     28            //name(unique: true)
    3029            dontimport(default:false)
     30        value(nullable:true)
    3131    }
    3232
  • trunk/grails-app/views/importer/common/_on_page.gsp

    r1515 r1525  
    5252          // open load box
    5353          $('#loadpropertiesbutton').click(function() {
    54             $("#loadmapping").toggle("scale")
     54            $("#loadmapping").toggle("scale")           
     55            if ($("#importmapping_id").val()) refreshFlow()
    5556          });
    5657
  • trunk/grails-app/views/importer/common/_properties_horizontal.gsp

    r1515 r1525  
    3434              <div id="loadmapping" style="display:none">
    3535                Select an existing mapping and press Load:
    36                 <g:select name="importmapping" from="${importer_importmappings}" optionValue="name"/>
     36                <g:select name="importmapping_id" from="${importer_importmappings}" noSelection="['':'-Select mapping-']" optionValue="name" optionKey="id"/>
    3737              </div>
    3838            </td>           
    3939            <g:each var="mappingcolumn" in="${importer_header}">
     40              <!-- set selected values based on submitted columnproperties, actually refresh -->
    4041              <g:if test="${importer_columnproperty}">
    4142                <g:set var="selected" value="${importer_columnproperty.index['' + mappingcolumn.index + '']}"/>
    4243              </g:if>
     44              <g:else>
     45                <g:set var="selected" value="${mappingcolumn.property}"/>
     46              </g:else>
    4347
    4448                          <td class="header" width="200px">
  • trunk/test/integration/gscf/ImporterTests.groovy

    r1522 r1525  
    44import org.springframework.core.io.*
    55import grails.converters.*
     6import dbnp.authentication.*
     7import org.dbnp.gdt.*
    68
    79/**
     
    4042    */
    4143    void testImportExcelAndXMLTemplateStudy() {
    42         def xml
     44        def xmltemplate
     45        def user = SecUser.findByUsername( "user" );
    4346       
    4447        // Load the files from a subfolder in the integration test folder and setup input streams
     
    5962        // Parse XML
    6063                try {
    61                         xml = XML.parse(fisXML, "UTF-8")
     64                        xmltemplate = XML.parse(fisXML, "UTF-8")
    6265                } catch( Exception e ) {
    6366                        println "Parsing failed" + e
    6467                }
    6568
    66         assert xml
    67        
     69        assert xmltemplate
     70
     71        xmltemplate.template.each {
     72            println it
     73        }
     74
     75        // Parse the XML template
     76        def t = Template.parse(xmltemplate.template, user);
     77
     78        assert t
    6879    }
    6980}
Note: See TracChangeset for help on using the changeset viewer.