Changeset 769


Ignore:
Timestamp:
Aug 3, 2010, 2:00:32 PM (10 years ago)
Author:
duh
Message:
File:
1 edited

Legend:

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

    r739 r769  
    458458                                this.handleEvents(flow, flash, params)
    459459
     460                                // add event to study
     461                                if (flow.event instanceof SamplingEvent) {
     462                                        flow.study.addToSamplingEvents( flow.event )
     463                                } else {
     464                                        flow.study.addToEvents( flow.event )
     465                                }
     466
    460467                                // validate event object
    461468                                if (flow.event.validate()) {
     
    469476                                        }
    470477
    471                                         // it validated! Duplicate the event object...
    472                                         def newEvent    = flow.event
     478                                        // ...store it in the events map in the flow scope...
    473479                                        def increment   = flow.events.size()
    474 
    475                                         // ...store it in the events map in the flow scope...
    476                                         flow.events[ increment ] = newEvent
     480                                        flow.events[ increment ] = flow.event
    477481
    478482                                        // ...add it to the study...
     483                                        /*
    479484                                        if (newEvent instanceof SamplingEvent) {
    480485                                                flow.study.addToSamplingEvents( newEvent )
     
    482487                                                flow.study.addToEvents( newEvent )
    483488                                        }
     489                                        */
    484490
    485491                                        // ...and 'reset' the event object in the flow scope
    486                                         flow.event = new Event(template: newEvent.template)
     492                                        flow.event = new Event(template: flow.event.template)
    487493                                       
    488494                                        // remember the event id with the template
     
    492498                                        success()
    493499                                } else {
    494                                         // it does not validate, show error feedback
     500                                        // it does not validate, remove event from study
     501                                        if (flow.event instanceof SamplingEvent) {
     502                                                flow.study.removeFromSamplingEvents(flow.event)
     503                                        } else {
     504                                                flow.study.removeFromEvents(flow.event)
     505                                        }
     506                                       
     507                                        // show error feedback
    495508                                        flash.errors = [:]
    496509                                        this.appendErrors(flow.event, flash.errors)
     
    690703                                        flow.eventGroups.each() { eventGroup ->
    691704                                                // iterate through events
    692                                                 eventGroup.events.each() { event ->
    693                                                         if (event.isSamplingEvent()) {
    694                                                                 def eventName = this.ucwords(event.template.name)
    695 
    696                                                                 // iterate through subjects
    697                                                                 eventGroup.subjects.each() { subject ->
    698                                                                         def sampleName = (this.ucwords(subject.name) + '_' + eventName + '_' + new RelTime(event.startTime).toString()).replaceAll("([ ]{1,})", "")
    699                                                                         def incrementor = flow.samples.size()
    700 
    701                                                                         flow.samples[ incrementor ] = [
    702                                                                                 sample: new Sample(
    703                                                                                         parent: flow.study,
    704                                                                                         parentSubject: subject,
    705                                                                                         parentEvent: event,
    706                                                                                         name: sampleName
    707                                                                                 ),
    708                                                                                 name: sampleName,
    709                                                                                 eventGroup: eventGroup,
    710                                                                                 event: event,
    711                                                                                 subject: subject
    712                                                                         ]
    713 
    714                                                                         // and add this sample to the study
    715                                                                         flow.study.addToSamples( flow.samples[ incrementor ].sample )
    716                                                                 }
     705                                                eventGroup.samplingEvents.each() { samplingEvent ->
     706                                                        def samplingEventName = this.ucwords(samplingEvent.template.name)
     707
     708                                                        // iterate through subjects
     709                                                        eventGroup.subjects.each() { subject ->
     710                                                                def sampleName = (this.ucwords(subject.name) + '_' + samplingEventName + '_' + new RelTime(samplingEvent.startTime).toString()).replaceAll("([ ]{1,})", "")
     711                                                                def increment = flow.samples.size()
     712
     713                                                                flow.samples[increment] = [
     714                                                                        sample: new Sample(
     715                                                                                parent: flow.study,
     716                                                                                parentSubject: subject,
     717                                                                                parentEvent: samplingEvent,
     718                                                                                name: sampleName
     719                                                                        ),
     720                                                                        name: sampleName,
     721                                                                        eventGroup: eventGroup,
     722                                                                        event: samplingEvent,
     723                                                                        subject: subject
     724                                                                ]
     725
     726                                                                // and add this sample to the study
     727                                                                flow.study.addToSamples(flow.samples[increment].sample)
    717728                                                        }
    718729                                                }
     
    12541265                // walk through eventGroups
    12551266                def g = 0
    1256                 flow.eventGroups.each() { eventGroup ->
     1267                flow.eventGroups.each() { eventGroup ->
    12571268                        def e = 0
    12581269
     
    12631274                        flow.events.each() {
    12641275                                if (params.get('event_' + e + '_group_' + g) == 'on') {
    1265                                         eventGroup.addToEvents(it.value)
     1276                                        // add event to eventgroup
     1277                                        if (it.value instanceof SamplingEvent) {
     1278                                                eventGroup.addToSamplingEvents(it.value)
     1279                                        } else {
     1280                                                eventGroup.addToEvents(it.value)
     1281                                        }
    12661282                                }
    12671283                                e++
Note: See TracChangeset for help on using the changeset viewer.