Changeset 1207

Show
Ignore:
Timestamp:
26-11-10 13:02:51 (3 years ago)
Author:
t.w.abma@…
Message:

- added an initial simple overview in last step of import wizard showing entities which failed to be persisted

Location:
trunk/grails-app
Files:
3 modified

Legend:

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

    r1202 r1207  
    344344                    model:[error:"Data is already imported or you are calling the url directly without following the previous import steps."]) 
    345345        } else { 
    346             session.validatedSuccesfully = ImporterService.saveDatamatrix(session.importer_study, session.importer_importeddata) 
    347             render(view:"step4", model:[validatedSuccesfully:session.validatedSuccesfully, totalrows:session.importer_importeddata.size, referer: session.import_referer]) 
     346            def (validatedSuccesfully, updatedEntities, failedtopersist) = ImporterService.saveDatamatrix(session.importer_study, session.importer_importeddata) 
     347            session.validatedSuccesfully = validatedSuccesfully 
     348            render(view:"step4", model:[validatedSuccesfully:session.validatedSuccesfully, failedtopersist:failedtopersist, updatedentities:updatedEntities, totalrows:session.importer_importeddata.size, referer: session.import_referer]) 
    348349            session.import_wizard_init = false 
     350 
     351            println "failed:" 
     352            failedtopersist.each { 
     353                println it 
     354            } 
    349355        } 
    350356    } 
  • trunk/grails-app/services/dbnp/importer/ImporterService.groovy

    r1202 r1207  
    281281    def saveDatamatrix(Study study, datamatrix) { 
    282282        def validatedSuccesfully = 0 
    283         def entitystored = null         
    284         study.refresh()         
    285          
     283        def entitystored = null 
     284        def failedtopersist = [] 
     285        def updatedentities = [] 
     286        study.refresh() 
     287         
    286288        // go through the data matrix, read every record and validate the entity and try to persist it 
    287289        datamatrix.each { record -> 
     
    290292                        case Study       :  print "Persisting Study `" + entity + "`: " 
    291293                                                entity.owner = AuthenticationService.getLoggedInUser() 
    292                                                 if (persistEntity(entity)) validatedSuccesfully++ 
     294                                                if (persistEntity(entity)) validatedSuccesfully++; 
     295                                                    else failedtopersist.add(entity) 
    293296                                                break 
    294297                        case Subject     :  print "Persisting Subject `" + entity + "`: " 
     
    300303                                                // this entity is new, so add it to the study 
    301304                                                if (entitystored==null) study.addToSubjects(entity) 
    302                                                 else // existing entity, so update it 
     305                                                else { // existing entity, so update it 
    303306                                                    updateEntity(entitystored, entity) 
    304  
    305                                                 if (persistEntity(study)) validatedSuccesfully++ 
     307                                                    updatedentities.add(entity) 
     308                                                } 
     309 
     310                                                if (persistEntity(study)) validatedSuccesfully++; 
     311                                                    else failedtopersist.add(entity) 
    306312                                                break 
    307313                        case Event       :  print "Persisting Event `" + entity + "`: " 
    308314                                                entity.parent = study 
    309315                                                study.addToEvents(entity) 
    310                                                 if (persistEntity(entity)) validatedSuccesfully++ 
     316                                                if (persistEntity(entity)) validatedSuccesfully++; 
     317                                                    else failedtopersist.add(entity) 
    311318                                                break 
    312319                        case Sample      :  print "Persisting Sample `" + entity +"`: "                                                 
     
    316323                                                if (entity.validate()) { 
    317324                                                    study.addToSamples(entity) 
    318                                                     if (persistEntity(study)) validatedSuccesfully++ 
    319                                                 } 
     325                                                    if (persistEntity(study)) validatedSuccesfully++;                                                        
     326                                                } else failedtopersist.add(entity) 
    320327                                                 
    321328                                                break 
     
    323330                                                entity.parent = study 
    324331                                                study.addToSamplingEvents(entity) 
    325                                                 if (persistEntity(entity)) validatedSuccesfully++ 
     332                                                if (persistEntity(entity)) validatedSuccesfully++; 
     333                                                    else failedtopersist.add(entity) 
    326334                                                break 
    327335                        default          :  println "Skipping persisting of `" + entity.getclass() +"`" 
     336                                                failedtopersist.add(entity) 
    328337                                                break 
    329338                        } // end switch 
    330339            } // end record 
    331340        } // end datamatrix 
    332         return validatedSuccesfully 
     341        return [validatedSuccesfully, updatedentities, failedtopersist] 
    333342    } 
    334343 
  • trunk/grails-app/views/importer/step4.gsp

    r1142 r1207  
    2525    <h1>Step 5: import wizard finished</h1> 
    2626    <p>${validatedSuccesfully} of ${totalrows} rows were imported succesfully.</p> 
     27 
     28 
     29 
     30    <g:if test="${failedtopersist}"> 
     31      <p>The following entities could not be persisted:</p> 
     32      <table>      
     33      <g:each var="entity" in="${failedtopersist}"> 
     34        <tr> 
     35        <g:each var="field" in="${entity.giveFields()}"> 
     36          <td> 
     37            <g:if test="${entity.getFieldValue(field.name)!=null}"> 
     38              <b>${field.name}</b> ${entity.getFieldValue(field.name)} 
     39            </g:if> 
     40           <g:else><b>${field.name}</b> &#215; 
     41            </g:else> 
     42          </td> 
     43        </g:each> 
     44      </tr> 
     45      </g:each> 
     46      </table> 
     47    </g:if> 
     48 
     49 
    2750    <g:if test="${referer}"> 
    2851      <p>Click <a href="${referer}">here</a> to return to the page you came from.</p>