Ignore:
Timestamp:
May 26, 2010, 12:10:54 PM (11 years ago)
Author:
duh
Message:
  • bugfix #59, #60 & #61 --> all related to eachother
  • refactored internal handling of storing, adding and deleting of subjects
File:
1 edited

Legend:

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

    r463 r469  
    180180                                                name: subjectTemplateName,
    181181                                                template: subjectTemplate,
    182                                                 subjects: []
     182                                                subjects: [:]
    183183                                        ]
    184184                                }
     
    186186                                // add x subjects of species y
    187187                                (params.addNumber as int).times {
    188                                         def increment = flow.subjects.size()
     188                                        def increment = (flow.subjects.size()) ? (flow.subjects.keySet().max() + 1) : 0
    189189                                        def subject = new Subject(
    190190                                                name: 'Subject ' + (increment + 1),
     
    197197
    198198                                        // and remember the subject id with the template
    199                                         def subjectsSize = flow.subjectTemplates[ subjectTemplateName ]['subjects'].size()
    200                                         flow.subjectTemplates[ subjectTemplateName ]['subjects'][ subjectsSize ] = increment
    201                                 }
     199                                        def subjectsSize = (flow.subjectTemplates[ subjectTemplateName ].subjects.size()) ? (flow.subjectTemplates[ subjectTemplateName ].subjects.keySet().max() + 1) : 0
     200                                        flow.subjectTemplates[ subjectTemplateName ].subjects[ subjectsSize ] = increment
     201                                }
     202println flow.subjects
     203println flow.subjectTemplates
    202204                        }.to "subjects"
    203205                        on("next") {
     
    222224                                flash.errors = [:]
    223225                                def delete = params.get('do') as int;
     226println "delete: "+delete
    224227
    225228                                // remove subject
    226229                                if (flow.subjects[ delete ] && flow.subjects[ delete ] instanceof Subject) {
     230                                        // remove subject from templates
    227231                                        flow.subjectTemplates.each() { templateName, templateData ->
    228                                                 templateData.subjects.remove(delete)
     232                                                templateData.subjects.remove( delete )
     233println flow.subjectTemplates
     234println "max: "+templateData.subjects.keySet().max()
    229235                                        }
    230236
     237                                        // remove subject altogether
    231238                                        flow.subjects.remove( delete )
     239println flow.subjects
    232240                                }
    233241                        }.to "subjects"
     
    590598                flow.subjectTemplates.each() { subjectTemplate ->
    591599                        // iterate through subjects
    592                         subjectTemplate.getValue().subjects.each() { subjectId ->
     600                        subjectTemplate.getValue().subjects.each() { subjectIncrement, subjectId ->
    593601                                // iterate through fields (= template fields and domain properties)
    594602                                flow.subjects[ subjectId ].giveFields().each() { subjectField ->
Note: See TracChangeset for help on using the changeset viewer.