Changeset 1155


Ignore:
Timestamp:
Nov 17, 2010, 2:12:48 PM (6 years ago)
Author:
work@…
Message:
  • resolving issue #195, sample generation madness. This was partly caused by the intoduction of ParentEvent? and only happened in strange situations which normally should not happen in a serious study. But of course, it should never happen.
  • also extended the sample name with eventGroupName
Location:
trunk/grails-app
Files:
4 edited

Legend:

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

    r1133 r1155  
    120120        warn 'org.mortbay.log'
    121121
     122        //info 'org.codehaus.groovy.grails.web.servlet',
     123        //       'org.codehaus.groovy.grails.plugins'
     124
    122125        //debug 'org.codehaus.groovy.grails.plugins'
    123126}
  • trunk/grails-app/controllers/dbnp/studycapturing/WizardController.groovy

    r1150 r1155  
    8080                // start the flow
    8181                onStart {
     82                        log.info ".entering onStart"
     83
    8284                        // define flow variables
    8385                        flow.page = 0
     
    105107                        render(view: "/wizard/index")
    106108                        onRender {
     109                                log.info ".entering mainPage"
     110
    107111                                flow.page = 1
    108112                                success()
     
    120124                handleJump {
    121125                        action {
     126                                log.info ".entering handleJump"
     127
    122128                                if (flow.jump && flow.jump.action == 'edit') {
    123129                                        if (flow.jump.id) {
     
    146152                        render(view: "_start")
    147153                        onRender {
     154                                log.info ".entering start"
     155
    148156                                flow.page = 1
    149157                                success()
     
    164172                        render(view: "_redirect")
    165173                        onRender {
     174                                log.info ".entering redirectToImport"
    166175                                flash.uri = "/importer/index"
    167176                        }
     
    173182                        render(view: "_modify")
    174183                        onRender {
     184                                log.info ".entering modify"
     185
    175186                                flow.page = 1
    176187                                flash.cancel = true
     
    196207                        render(view: "_study")
    197208                        onRender {
     209                                log.info ".entering study"
     210
    198211                                flow.page = 1
    199212                                success()
     
    240253                        render(view: "_subjects")
    241254                        onRender {
     255                                log.info ".entering subjects"
     256
    242257                                flow.page = 2
    243258
     
    298313                        render(view: "_events")
    299314                        onRender {
     315                                log.info ".entering events"
     316
    300317                                flow.page = 3
    301318
     
    470487                eventsNext {
    471488                        action {
     489                                log.info ".entering eventsNext"
     490
    472491                                def assigned = false
    473492
     
    496515                        render(view: "_unassigned_samplingEvent_warning")
    497516                        onRender {
     517                                log.info ".entering unassignedSamplingEventsWarning"
     518
    498519                                flow.page = 3
    499520                                success()
     
    507528                        render(view: "_groups")
    508529                        onRender {
     530                                log.info ".entering groups"
     531
    509532                                flow.page = 3
    510533                                success()
     
    528551                        render(view: "_samples_previous_warning")
    529552                        onRender {
     553                                log.info ".entering samplePrevious"
     554
    530555                                flow.page = 4
    531 
    532                                 // TEMPORARY FIX TO REMOVE ALL SAMPLES AND REGENERATE THEM
    533                                 // THEN USER BROWSED BACK
    534                                 println ".removing samples from study"
    535 
    536                                 // remove samples from study
    537                                 flow.samples.each() {
    538                                         flow.study.removeFromSamples(it.sample)
    539                                 }
    540 
    541                                 // remove samples from flow
    542                                 flow.remove('samples')
    543                                 // END FIX
    544556                        }
    545557                        on("next").to "samples"
     
    551563                        render(view: "_samples")
    552564                        onRender {
     565                                log.info ".entering samples"
     566
    553567                                flow.page = 4
    554568                                success()
     
    614628                        render(view: "_assays")
    615629                        onRender {
     630                                log.info ".entering assays"
     631
    616632                                flow.page = 5
    617633                        }
     
    710726                assayNext {
    711727                        action {
     728                                log.info ".entering assayNext"
     729
    712730                                // have we got samples and assays?
    713731                                if (flow.study.assays && flow.study.samples) {
     
    728746                        render(view: "_assay_groups")
    729747                        onRender {
     748                                log.info ".entering assayGroups"
     749
    730750                                flow.page = 5
    731751                        }
     
    752772                confirmPrevious {
    753773                        action {
     774                                log.info ".entering confirmPrevious"
     775
    754776                                // have we got samples and assays?
    755777                                if (flow.study.assays && flow.study.samples) {
     
    770792                        render(view: "_confirmation")
    771793                        onRender {
     794                                log.info ".entering confirm"
     795
    772796                                flow.page = 6
    773797                        }
     
    787811                        render(view: "_wait")
    788812                        onRender {
     813                                log.info ".entering waitForSave"
     814
    789815                                flow.page = 7
    790816                        }
     
    795821                save {
    796822                        action {
    797                                 println "saving..."
     823                                log.info ".entering save"
     824
    798825                                flash.wizardErrors = [:]
    799826
     
    801828                                try {
    802829                                        // save study
    803                                         println ".saving study"
     830                                        log.info ".saving study"
    804831
    805832                                        // Make sure the owner of the study is set right
     
    810837                                                throw new Exception('error saving study')
    811838                                        }
    812                                         println ".saved study "+flow.study+" (id: "+flow.study.id+")"
     839                                        log.info ".saved study "+flow.study+" (id: "+flow.study.id+")"
    813840
    814841                                        success()
     
    832859                        render(view: "_error")
    833860                        onRender {
     861                                log.info ".entering error"
     862
    834863                                flow.page = 6
    835864                        }
     
    842871                        render(view: "_done")
    843872                        onRender {
     873                                log.info ".entering done"
     874
    844875                                flow.page = 7
    845876                        }
     
    9841015                                                flow.study.addToPublications(publication)
    9851016                                        } else {
    986                                                 println('.publication with ID ' + id + ' not found in database.')
     1017                                                log.info('.publication with ID ' + id + ' not found in database.')
    9871018                                        }
    9881019                                }
     
    9901021
    9911022                } else {
    992                         println('.no publications selected.')
     1023                        log.info('.no publications selected.')
    9931024                        flow.study.publications.clear()
    9941025                }
     
    10451076                                                flow.study.addToPersons(studyPerson)
    10461077                                        } else {
    1047                                                 println('.person ' + ids.person + ' or Role ' + ids.role + ' not found in database.')
     1078                                                log.info('.person ' + ids.person + ' or Role ' + ids.role + ' not found in database.')
    10481079                                        }
    10491080                                }
    10501081                        }
    10511082                } else {
    1052                         println('.no persons selected.')
     1083                        log.info('.no persons selected.')
    10531084                        flow.study.persons.clear()
    10541085                }
     
    10941125                                            users.add(user)
    10951126                                        } else {
    1096                                                 println('.user with ID ' + id + ' not found in database.')
     1127                                                log.info('.user with ID ' + id + ' not found in database.')
    10971128                                        }
    10981129                                }
     
    11001131
    11011132                } else {
    1102                         println('.no users selected.')
     1133                        log.info('.no users selected.')
    11031134                        users.clear()
    11041135                }
     
    12111242                                // validate subject
    12121243                                if (subject.validate()) {
    1213                                         println ".added subject "+subject
     1244                                        log.info ".added subject "+subject
    12141245                                } else {
    12151246                                        // whoops?
     
    12931324                                                                // instantiate a sample for this subject / event
    12941325                                                                def samplingEventName = this.ucwords(event.template.name)
    1295                                                                 def sampleName = (this.ucwords(subject.name) + '_' + samplingEventName + '_' + new RelTime(event.startTime).toString()).replaceAll("([ ]{1,})", "")
     1326                                                                def eventGroupName = eventGroup.name.replaceAll(/\w+/, { it[0].toUpperCase() + ((it.size() > 1) ? it[1..-1] : '') }).replaceAll("([ ]{1,})", "")
     1327                                                                def sampleName = (this.ucwords(subject.name) + '_' + samplingEventName + '_' + eventGroupName + '_' + new RelTime(event.startTime).toString()).replaceAll("([ ]{1,})", "")
    12961328                                                                def tempSampleIterator = 0
    12971329                                                                def tempSampleName = sampleName
     
    13891421                                                eventGroup.samplingEvents.each() { samplingEvent ->
    13901422                                                        def samplingEventName = this.ucwords(samplingEvent.template.name)
    1391                                                         def sampleName = (this.ucwords(subject.name) + '_' + samplingEventName + '_' + new RelTime(samplingEvent.startTime).toString()).replaceAll("([ ]{1,})", "")
     1423                                                        def eventGroupName = eventGroup.name.replaceAll(/\w+/, { it[0].toUpperCase() + ((it.size() > 1) ? it[1..-1] : '') }).replaceAll("([ ]{1,})", "")
     1424                                                        def sampleName = (this.ucwords(subject.name) + '_' + samplingEventName + '_' + eventGroupName + '_' + new RelTime(samplingEvent.startTime).toString()).replaceAll("([ ]{1,})", "")
    13921425                                                        def tempSampleIterator = 0
    13931426                                                        def tempSampleName = sampleName
     
    14131446                                                        )
    14141447                                                }
     1448                                        } else {
    14151449                                        }
    14161450                                } else {
    1417                                         // remove from eventGroup
    1418                                         eventGroup.removeFromSubjects(subject)
    1419 
    1420                                         // iterate through samplingEvents
    1421                                         eventGroup.samplingEvents.each() { samplingEvent ->
    1422                                                 flow.study.samples.findAll { ( it.parentEvent.equals(samplingEvent) && it.parentSubject.equals(subject) ) }.each() {
    1423                                                         // delete this sample
    1424                                                         flow.study.removeFromSamples( it )
    1425                                                         it.delete()
     1451                                        // check if this subject is a member of this eventGroup
     1452                                        if (eventGroup.subjects.find { it.equals(subject) }) {
     1453                                                // remove from eventGroup
     1454                                                eventGroup.removeFromSubjects(subject)
     1455
     1456                                                // iterate through samplingEvents
     1457                                                eventGroup.samplingEvents.each() { samplingEvent ->
     1458                                                        flow.study.samples.findAll { (it.parentEvent.equals(samplingEvent) && it.parentSubject.equals(subject) && it.parentEventGroup.equals(eventGroup)) }.each() {
     1459                                                                // delete this sample
     1460                                                                flow.study.removeFromSamples(it)
     1461                                                                it.delete()
     1462                                                        }
    14261463                                                }
    14271464                                        }
  • trunk/grails-app/taglib/dbnp/studycapturing/WizardTagLib.groovy

    r1040 r1155  
    226226         */
    227227        def baseElement = { inputElement, attrs, help ->
    228 println ".rendering [" + inputElement + "] with name [" + attrs.get('name') + "] and value [" + ((attrs.value) ? attrs.get('value').toString() : "-") + "]"
     228                log.info ".rendering [" + inputElement + "] with name [" + attrs.get('name') + "] and value [" + ((attrs.value) ? attrs.get('value').toString() : "-") + "]"
     229
    229230                // work variables
    230231                def description = attrs.remove('description')
  • trunk/grails-app/views/wizard/pages/_samples.gsp

    r1146 r1155  
    1717<wizard:pageContent>
    1818
    19         <g:if env="development">
     19        <% /* g:if env="development">
    2020                <wizard:ajaxButtonElement description="Development feature (regenerate samples)" name="regenerate" value="regenerate new samples" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()">
    2121                        This functionality is only available in development mode for debugging purposes and will not show in test and production environments
    2222                </wizard:ajaxButtonElement>
    23         </g:if>
     23        </g:if */ %>
    2424       
    2525        <span class="info">
     
    103103                                                <div class="column">Subject</div>
    104104                                                <div class="column">Template</div>
    105                                                 <wizard:templateColumnHeaders entity="${sample}" class="column" columnWidths="[Name:200]"/>
     105                                                <wizard:templateColumnHeaders entity="${sample}" class="column" columnWidths="[Name:250]"/>
    106106                                        </div>
    107107                                </g:if>
Note: See TracChangeset for help on using the changeset viewer.