Changeset 1207


Ignore:
Timestamp:
Nov 26, 2010, 1:02:51 PM (6 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 edited

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>
Note: See TracChangeset for help on using the changeset viewer.