Changeset 283 for trunk


Ignore:
Timestamp:
Mar 18, 2010, 10:17:02 AM (10 years ago)
Author:
tabma
Message:
  • final step in the wizard, implemented method in the ImporterService? to persist the entities into the database
Location:
trunk/grails-app
Files:
3 added
3 edited

Legend:

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

    r274 r283  
    146146                session.header[temp[0].toInteger()].property = TemplateField.get(temp[1].toInteger())
    147147        }
    148        
    149         /*for (e in session.header) {
    150             println e
    151         }*/
    152148
    153149        //import workbook
    154         ImporterService.importdata(session.importtemplate_id, session.workbook, 0, 1, session.header)
    155         //println session.header.dump()
     150        session.importeddata = ImporterService.importdata(session.importtemplate_id, session.workbook, 0, 1, session.header)   
    156151
    157         render ("properties saved")
     152        render(view:"step3", model:[datamatrix:session.importeddata])
     153    }
     154
     155    def savepostview = {
     156        ImporterService.savedata(session.importeddata)
     157        render(view:"step4")
    158158    }
    159159}
  • trunk/grails-app/services/dbnp/importer/ImporterService.groovy

    r274 r283  
    151151    * @param sheetindex sheet to use when using multiple sheets
    152152    * @param rowindex first row to start with reading the actual data (NOT the header)
     153    * @return two dimensional array containing records (with entities)
    153154    *
    154155    * @see dbnp.importer.MappingColumn
     
    163164        }
    164165
    165         table.each {
     166        /*table.each {
    166167            it.each { entity ->
    167168                entity.giveFields().each { field ->
     
    170171                println
    171172            }
    172         }
    173     }
     173        }*/
     174
     175        return table   
     176    }
     177   
     178    /**
     179     * @param datamatrix two dimensional array containing entities with values read from Excel file
     180     */   
     181    def savedata(datamatrix) {
     182        datamatrix.each { record ->
     183            record.each { entity ->
     184                switch (entity.getClass()) {
     185                    case Study   :  print "Persisting Study `" + entity.title + "`: "
     186                                    entity.save()
     187                                    println "OK"
     188                                    break
     189                    case Subject :  print "Persisting Subject `" + entity.name + "`: "
     190                                    entity.save()
     191                                    println "OK"
     192                                    break
     193                    case Event   :  print "Persisting Event `" + entity.eventdescription + "`: "
     194                                    entity.save()
     195                                    println "OK"
     196                                    break
     197                    case Protocol:  print "Persisting Protocol `" + entity.name + "`: "
     198                                    entity.save()
     199                                    println "OK"
     200                                    break
     201                    case Sample  :  print "Persisting Sample `" + entity.name +"`: "
     202                                    entity.save()
     203                                    println "OK"
     204                                    break
     205                    default      :  println "Skipping persistance of `" + entity.getclass() +"`"
     206                                    break
     207                }
     208            }
     209        }
     210    }
     211
    174212    /**
    175213     * This method created a record (array) containing entities with values
     214     *
     215     * @param template_id template identifier
     216     * @param excelrow POI based Excel row containing the cells
     217     * @param mcmap map containing MappingColumn objects
    176218     */
    177219    def createRecord(template_id, HSSFRow excelrow, mcmap) {
     
    181223
    182224        def study = new Study(title:"New study", template:template)
    183         def subject = new Subject(title:"New subject", template:template)
    184         def event = new Event(title:"New event", template:template)
    185         def protocol = new Protocol(title:"New protocol", template:template)
    186         def sample = new Sample(title:"New sample", template:template)
    187 
    188         /*record.add(study)
    189         record.add(subject)
    190         record.add(event)
    191         record.add(protocol)
    192         record.add(sample)*/
     225        def subject = new Subject(name:"New subject", template:template)
     226        def event = new Event(eventdescription:"New event", template:template)
     227        def protocol = new Protocol(name:"New protocol", template:template)
     228        def sample = new Sample(name:"New sample", template:template)
    193229
    194230        for (HSSFCell cell: excelrow) {
  • trunk/grails-app/taglib/dbnp/importer/ImporterTagLib.groovy

    r259 r283  
    3434
    3535        out << render (template:"common/preview", model:[header:header, datamatrix:datamatrix])
     36    }
     37
     38    /**
     39     * @param datamatrix two dimensional array containing entities with read values
     40     * @return postview of the imported data
     41     */
     42    def postview = { attrs ->
     43        def datamatrix = attrs['datamatrix']
     44
     45        out << render (template:"common/postview", model:[datamatrix:datamatrix])
    3646    }
    3747
Note: See TracChangeset for help on using the changeset viewer.