Changeset 469


Ignore:
Timestamp:
May 26, 2010, 12:10:54 PM (9 years ago)
Author:
duh
Message:
  • bugfix #59, #60 & #61 --> all related to eachother
  • refactored internal handling of storing, adding and deleting of subjects
Location:
trunk/grails-app
Files:
3 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 ->
  • trunk/grails-app/views/wizard/pages/_groups.gsp

    r460 r469  
    2525                </g:each></g:if>
    2626        </div>
    27 <g:each var="subjectTemplate" in="${subjectTemplates}">
     27<g:each var="sTemplate" in="${subjectTemplates}">
     28  <g:set var="subjectTemplate" value="${sTemplate.getValue()}" />
    2829  <g:set var="showHeader" value="${true}" />
    29   <g:each var="subjectId" in="${subjectTemplate.getValue().subjects}">
     30  <g:each var="sId" in="${subjectTemplate.subjects}">
     31        <g:set var="subjectId" value="${sId.getValue()}" />
    3032        <div class="row">
    3133                <div class="column">
    3234                        <g:if test="${showHeader}">
    3335                                <g:set var="showHeader" value="${false}" />
    34                                 ${subjectTemplate.getValue().name} template
     36                                ${subjectTemplate.name} template
    3537                        </g:if>
    3638                </div>
  • trunk/grails-app/views/wizard/pages/_subjects.gsp

    r455 r469  
    3939
    4040<g:if test="${subjects}">
    41         <g:each var="subjectTemplate" in="${subjectTemplates}">
     41        <g:each var="sTemplate" in="${subjectTemplates}">
    4242                <g:set var="showHeader" value="${true}" />
    43                 <h1>${subjectTemplate.getValue().name} template</h1>
     43                <g:set var="subjectTemplate" value="${sTemplate.getValue()}" />
     44                <h1>${subjectTemplate.name} template</h1>
    4445                <div class="table">
    45                 <g:each var="subjectId" in="${subjectTemplate.getValue().subjects}">
     46                <g:each status="i" var="sId" in="${subjectTemplate.subjects}">
     47                  <g:set var="subjectId" value="${sId.getValue()}" />
     48                  <g:if test="${subjects[ subjectId ]}">
    4649                        <g:if test="${showHeader}">
    4750                        <g:set var="showHeader" value="${false}" />
     
    5962                                <wizard:templateColumns id="${subjectId}" entity="${subjects[ subjectId ]}" template="${subjects[ subjectId ].template}" name="subject_${subjectId}" class="column" subject="${subjects[ subjectId ]}" />
    6063                        </div>
     64                  </g:if>
    6165                </g:each>
    6266                </div>
Note: See TracChangeset for help on using the changeset viewer.