Changeset 897


Ignore:
Timestamp:
Sep 21, 2010, 10:58:35 AM (6 years ago)
Author:
keesvb
Message:

fixed multiple bugs in importer, really implemented the header and start row functionality, updated Ontology setter with proper error message

Location:
trunk/grails-app
Files:
3 edited

Legend:

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

    r738 r897  
    258258
    259259        //import workbook
    260         session.importer_importeddata = ImporterService.importdata(session.importer_template_id, session.importer_workbook, 0, 1, session.importer_header)
     260        session.importer_importeddata = ImporterService.importdata(session.importer_template_id, session.importer_workbook, session.importer_sheetindex, session.importer_datamatrix_start, session.importer_header)
    261261
    262262        if (params.layout=="horizontal")
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateEntity.groovy

    r881 r897  
    625625                                        value = term
    626626                                }
     627                                // TODO: search ontology for the term online (it may still exist) and insert it into the Term cache
     628                                // if not found, throw exception
     629                                else {
     630                                        throw new IllegalArgumentException("Ontology term not recognized (not in the GSCF ontology cache): ${value} when setting field ${fieldName}")
     631                                }
    627632                        }
    628633                }
  • trunk/grails-app/services/dbnp/importer/ImporterService.groovy

    r735 r897  
    6666            def datamatrix_celldata = df.formatCellValue(sheet.getRow(datamatrix_start).getCell(columnindex))
    6767            def datamatrix_cell     = sheet.getRow(datamatrix_start).getCell(columnindex)
    68             def headercell = sheet.getRow(sheet.getFirstRowNum()).getCell(columnindex)
     68            println "frn is "+sheet.getFirstRowNum()
     69                def headercell = sheet.getRow(headerrow-1+sheet.getFirstRowNum()).getCell(columnindex)
    6970            def tft = TemplateFieldType.STRING //default templatefield type
    7071
     
    247248        datamatrix.each { record ->
    248249            record.each { entity ->
    249                 if(entity.validate()) {
    250                     switch (entity.getClass()) {
     250                        switch (entity.getClass()) {
    251251                        case Study       :  print "Persisting Study `" + entity + "`: "
    252                                             persistEntity(entity)
    253                                             break
     252                                                if (persistEntity(entity)) validatedSuccesfully++
     253                                                break
    254254                        case Subject     :  print "Persisting Subject `" + entity + "`: "
    255                                             persistEntity(entity)
    256                                             study.addToSubjects(entity)
    257                                             break
     255                                                study.addToSubjects(entity)
     256                                                if (persistEntity(entity)) validatedSuccesfully++
     257                                                break
    258258                        case Event       :  print "Persisting Event `" + entity + "`: "
    259                                             persistEntity(entity)
    260                                             study.addToEvents(entity)
    261                                             break
     259                                                study.addToEvents(entity)
     260                                                if (persistEntity(entity)) validatedSuccesfully++
     261                                                break
    262262                        case Sample      :  print "Persisting Sample `" + entity +"`: "
    263                                             persistEntity(entity)
    264                                             study.addToSamples(entity)
    265                                             break
     263                                                study.addToSamples(entity)
     264                                                if (persistEntity(entity)) validatedSuccesfully++
     265                                                break
    266266                        case SamplingEvent: print "Persisting SamplingEvent `" + entity + "`: "
    267                                             persistEntity(entity)
    268                                             study.addToSamplingEvents(entity)
    269                                             break;
     267                                                study.addToSamplingEvents(entity)
     268                                                if (persistEntity(entity)) validatedSuccesfully++
     269                                                break;
    270270                        default          :  println "Skipping persisting of `" + entity.getclass() +"`"
    271                                             break
    272                     } // end switch
    273                     validatedSuccesfully++
    274                 } // end if
     271                                                break
     272                        } // end switch
    275273            } // end record
    276274        } // end datamatrix
     
    285283     *
    286284     */
    287     def persistEntity(entity) {
    288          if (!entity.save()) //.merge?
    289             entity.errors.allErrors.each {
    290             println it
     285    boolean persistEntity(entity) {
     286            println "persisting ${entity}"
     287            // if not validated
     288                if (entity.validate()) {
     289                        if (entity.save()) { //.merge?
     290                                return true
     291                        }
     292                        else { // if save was unsuccesful
     293                                entity.errors.allErrors.each {
     294                                        println it
     295                                }
     296                                return false
     297                        }
     298                }
     299            else { // if not validated
     300                    entity.errors.each {
     301                            println it
     302                    }
     303                        return false
     304            }
    291305         }
    292     }
    293306
    294307        /**
Note: See TracChangeset for help on using the changeset viewer.