Changeset 1469


Ignore:
Timestamp:
Feb 1, 2011, 5:33:41 PM (6 years ago)
Author:
t.w.abma@…
Message:
  • importer doesn't crash on empty (null) rows in an Excel sheet anymore
  • template editor can be opened and the selected form fields will be remembered after a refresh
  • fixed Template lookup
Location:
trunk/grails-app
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/conf/Config.groovy

    r1459 r1469  
    7171                'org.hibernate'
    7272
     73    error stdout:"StackTrace"
     74
    7375        warn 'org.mortbay.log'
    7476
  • trunk/grails-app/controllers/dbnp/importer/ImporterController.groovy

    r1461 r1469  
    66import org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib
    77import grails.plugins.springsecurity.Secured
     8
     9import org.dbnp.gdt.*
    810
    911/**
     
    109111                                success()
    110112                        }
     113
     114            on("refresh") {
     115                flash.importer_params = params
     116                                success()
     117                        }.to "pageOne"
     118
    111119                        on("next") {
    112120                                flash.wizardErrors = [:]
     
    341349                        flow.importer_templates = Template.get(flow.importer_template_id)
    342350                        flow.importer_allfieldtypes = "true"
    343                         /*else {
    344                                                         render (template:"common/error",
    345                                                                 model:[error:"Wrong permissions: you are not allowed to write to the study you selected (${flow.importer_study})."])
    346                                                 }*/
    347351
    348352                        return true
     
    391395                flow.importer_importeddata = table
    392396                flow.importer_failedcells = failedcells
     397       
    393398                return true
    394399        }
  • trunk/grails-app/services/dbnp/importer/ImporterService.groovy

    r1457 r1469  
    151151
    152152                        (0..header.size() - 1).each { columnindex ->
    153                                 def c = sheet.getRow(rowindex).getCell(columnindex, Row.CREATE_NULL_AS_BLANK)
    154                                 row.add(c)
     153                if (sheet.getRow(rowindex))
     154                    row.add( sheet.getRow(rowindex).getCell(columnindex, Row.CREATE_NULL_AS_BLANK) )
    155155                        }
    156156
     
    277277                        record.each { entity ->
    278278                                switch (entity.getClass()) {
    279                                         case Study: log.info "Persisting Study `" + entity + "`: "
     279                                        case Study: log.info ".importer wizard, persisting Study `" + entity + "`: "
    280280                                                entity.owner = authenticationService.getLoggedInUser()
    281                                                 persistEntity(entity)
    282                                                 break
    283                                         case Subject: log.info "Persisting Subject `" + entity + "`: "
     281                       
     282                        if (study.validate()) {
     283                            if (!entity.save(flush:true)) {
     284                                log.error ".importer wizard, study could not be saved: " + entity
     285                                throw new Exception('.importer wizard, study could not be saved: ' + entity)
     286                            }
     287                        } else {
     288                            log.error ".importer wizard, study could not be validated: " + entity
     289                            throw new Exception('.importer wizard, study could not be validated: ' + entity)
     290                        }
     291
     292                        break
     293                                        case Subject: log.info ".importer wizard, persisting Subject `" + entity + "`: "
    284294
    285295                                                // is the current entity not already in the database?
     
    292302
    293303                                                break
    294                                         case Event: log.info "Persisting Event `" + entity + "`: "
     304                                        case Event: log.info ".importer wizard, persisting Event `" + entity + "`: "
    295305                                                study.addToEvents(entity)
    296306                                                break
    297                                         case Sample: log.info "Persisting Sample `" + entity + "`: "
     307                                        case Sample: log.info ".importer wizard, persisting Sample `" + entity + "`: "
    298308
    299309                                                // is this sample validatable (sample name unique for example?)
     
    301311
    302312                                                break
    303                                         case SamplingEvent: log.info "Persisting SamplingEvent `" + entity + "`: "
     313                                        case SamplingEvent: log.info ".importer wizard, persisting SamplingEvent `" + entity + "`: "
    304314                                                study.addToSamplingEvents(entity)
    305315                                                break
    306                                         default: log.info "Skipping persisting of `" + entity.getclass() + "`"
     316                                        default: log.info ".importer wizard, skipping persisting of `" + entity.getclass() + "`"
    307317                                                break
    308318                                } // end switch
     
    381391         */
    382392        boolean persistEntity(entity) {
    383                 log.info ".import wizard persisting ${entity}"
    384 
    385                 try {
     393                /*log.info ".import wizard persisting ${entity}"
     394
     395                try {           
    386396                        entity.save(flush: true)
    387397                        return true
     
    393403                }
    394404
    395                 return true
     405                return true*/
     406        //println "persistEntity"
    396407        }
    397408
  • trunk/grails-app/taglib/dbnp/importer/ImporterTagLib.groovy

    r1461 r1469  
    1616package dbnp.importer
    1717import org.dbnp.gdt.*
     18import org.dbnp.gdt.*
     19
    1820import org.apache.poi.ss.usermodel.Cell
    1921import org.apache.poi.ss.usermodel.DataFormatter
  • trunk/grails-app/views/importer/pages/_final_page.gsp

    r1430 r1469  
    2020<h1>Final Page</h1>
    2121<p>
    22 This concludes the example wizard. You can click <g:link action="index">here</g:link> to restart the wizard.
     22This concludes the importer wizard. You can click <g:link action="index">here</g:link> to restart the wizard.
    2323</p>
    2424
  • trunk/grails-app/views/importer/pages/_page_one.gsp

    r1461 r1469  
    2323            </td>
    2424            <td width="100px">
    25                 <af:fileFieldElement name="importfile" value=""/>
     25                <wizard:fileFieldElement name="importfile" value="${importer_params?.importfile}"/>
    2626            </td>
    2727        </tr>
     
    3131            </td>
    3232            <td width="100px">
    33                 <g:select name="sheetindex" from="${1..25}"/>
     33                <g:select name="sheetindex" from="${1..25}" value="${importer_params?.sheetindex}"/>
    3434            </td>
    3535        </tr>
     
    3939            </td>
    4040            <td width="100px">
    41                 <g:select name="headerrow" from="${1..10}"/>
     41                <g:select name="headerrow" from="${1..10}" value="${importer_params?.headerrow}"/>
    4242            </td>
    4343        </tr>
     
    4747            </td>
    4848            <td width="100px">
    49                 <g:select name="datamatrix_start" from="${2..10}"/>
     49                <g:select name="datamatrix_start" from="${2..10}" value="${importer_params?.datamatrix_start}"/>
    5050            </td>
    5151        </tr>
     
    5555            </td>
    5656            <td>
    57                 <g:select name="study.id" from="${studies}" optionKey="id"/>
     57                <g:select name="study.id" from="${studies}" optionKey="id" value="${importer_params?.study?.id}"/>
    5858            </td>
    5959        </tr>
     
    6767                id="entity"
    6868                from="${GdtService.cachedEntities}"
     69        value="${importer_params?.entity}"
    6970                optionValue="${{it.name}}"
    7071                optionKey="${{it.encoded}}"
     
    8182            </td>
    8283            <td>
    83                 <g:select rel="typetemplate" entity="none" name="template_id" optionKey="id" optionValue="name" from="[]" />
     84                <g:select rel="typetemplate" entity="none" name="template_id" optionKey="id" optionValue="name" from="[]" value="${importer_params?.template_id}"/>
    8485            </td>
    8586        </tr>
Note: See TracChangeset for help on using the changeset viewer.