Ignore:
Timestamp:
Jun 24, 2010, 4:29:54 PM (11 years ago)
Author:
duh
Message:
  • developmental commit of samples page
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/studycapturing/WizardController.groovy

    r603 r606  
    144144                                flow.remove('eventGroups')
    145145                                flow.remove('eventTemplates')
     146                                flow.remove('samples')
     147                                flow.remove('sampleTemplates')
    146148
    147149                                // set 'quicksave' variable to false
     
    608610                                flow.page = 6
    609611
    610                                 flow.samples = []
    611 
    612612                                // iterate through eventGroups
    613                                 flow.eventGroups.each() { eventGroup ->
    614                                         // iterate through events
    615                                         eventGroup.events.each() { event ->
    616                                                 if (event.isSamplingEvent()) {
    617                                                         def eventName = this.ucwords(event.template.name)
    618 
    619                                                         // iterate through subjects
    620                                                         eventGroup.subjects.each() { subject ->
    621                                                                 def sampleName = (this.ucwords(subject.name) + '_' + eventName + '_' + new RelTime( event.startTime ).toString()).replaceAll("([ ]{1,})", "")
    622 
    623                                                                 flow.samples[ flow.samples.size() ] = [
    624                                                                         sample          : new Sample(
    625                                                                                 parentSubject: subject,
    626                                                                                 parentEvent: event,
    627                                                                                 name: sampleName
    628                                                                         ),
    629                                                                     name                : sampleName,
    630                                                                         eventGroup      : eventGroup,
    631                                                                         event           : event,
    632                                                                         subject         : subject
    633                                                                 ]
     613                                if (!flow.samples) {
     614                                        flow.samples = []
     615                                        flow.sampleTemplates = [:]
     616                                        flow.eventGroups.each() { eventGroup ->
     617                                                // iterate through events
     618                                                eventGroup.events.each() { event ->
     619                                                        if (event.isSamplingEvent()) {
     620                                                                def eventName = this.ucwords(event.template.name)
     621
     622                                                                // iterate through subjects
     623                                                                eventGroup.subjects.each() { subject ->
     624                                                                        def sampleName = (this.ucwords(subject.name) + '_' + eventName + '_' + new RelTime(event.startTime).toString()).replaceAll("([ ]{1,})", "")
     625
     626                                                                        flow.samples[flow.samples.size()] = [
     627                                                                                sample: new Sample(
     628                                                                                        parentSubject: subject,
     629                                                                                        parentEvent: event,
     630                                                                                        name: sampleName
     631                                                                                ),
     632                                                                                name: sampleName,
     633                                                                                eventGroup: eventGroup,
     634                                                                                event: event,
     635                                                                                subject: subject
     636                                                                        ]
     637                                                                }
    634638                                                        }
    635639                                                }
     
    637641                                }
    638642
    639                                 println flow.samples
    640 
    641643                                success()
    642644                        }
    643645                        on("switchTemplate") {
    644                                 println "switch that template!"
    645646                                handleSamples(flow, flash, params)
    646647                                succes()
    647648                        }.to "samples"
    648649                        on("refresh") {
     650                                println ".refresh sample templates"
     651
     652                                // refresh templates
     653                                flow.sampleTemplates.each() {
     654                                        println ".refresh template ["+it.value.name+"]"
     655                                        it.value.template.refresh()
     656                                        println "  --> fields: "+it.value.template.fields
     657                                }
     658
     659                                // handle samples
     660                                handleSamples(flow, flash, params)
     661
     662                                success()
     663                        }.to "samples"
     664                        on("regenerate") {
     665                                println ".removing 'samples' and 'sampleTemplates' from the flowscope, triggering regeneration of the samples..."
     666                                flow.remove('samples')
     667                                flow.remove('sampleTemplates')
    649668                                success()
    650669                        }.to "samples"
    651670                        on("previous") {
     671                                // handle samples
     672                                handleSamples(flow, flash, params)
     673
    652674                                success()
    653675                        }.to "groups"
    654676                        on("next") {
    655                                 success()
     677                                // handle samples
     678                                if (handleSamples(flow, flash, params)) {
     679                                        success()
     680                                } else {
     681                                        error()
     682                                }
    656683                        }.to "confirm"
    657684                        on("quickSave") {
    658                                 success()
     685                                // handle samples
     686                                if (handleSamples(flow, flash, params)) {
     687                                        success()
     688                                } else {
     689                                        error()
     690                                }
    659691                        }.to "waitForSave"
    660692                }
     
    11821214         */
    11831215        def handleSamples(flow, flash, params) {
    1184                 println "handling samples"
    1185                 println "params:"
    1186                 println params
    1187                 println "samples:"
    11881216                def id = 0
    1189                 flow.samples.each() { sample ->
    1190                         println id + " : " + sample
    1191                         sample.template = Template.findByName( params.get('template_'+id) )
    1192 
    1193 println sample
     1217                flow.sampleTemplates = [:]
     1218                flow.samples.each() { sampleData ->
     1219                        def sample = sampleData.sample
     1220                        def sampleTemplateName = params.get('template_'+id)
     1221
     1222                        // set template for this sample?
     1223                        if (sampleTemplateName && sampleTemplateName.size() > 0) {
     1224                                // remember templatename
     1225                                if (!flow.sampleTemplates[ sampleTemplateName ]) {
     1226                                        flow.sampleTemplates[ sampleTemplateName ] = [
     1227                                                name            : sampleTemplateName,
     1228                                                template        : Template.findByName( sampleTemplateName )
     1229                                        ]
     1230                                }
     1231
     1232                                if (sample.template.toString() != sampleTemplateName ) {
     1233                                        sampleData.sample.template = flow.sampleTemplates[ sampleTemplateName ].template
     1234                                }
     1235                        }
    11941236                        id++
    11951237                }
Note: See TracChangeset for help on using the changeset viewer.