Changeset 1224

Show
Ignore:
Timestamp:
30-11-10 17:12:08 (3 years ago)
Author:
robert@…
Message:

Fixed issue in study overview with double columns. See ticket #155

Location:
trunk/grails-app
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateEntity.groovy

    r1182 r1224  
    719719        } 
    720720 
     721        def TemplateField getField( fieldName ) { 
     722                return getField(this.giveFields(), fieldName); 
     723        } 
     724 
    721725        /** 
    722726         * Look up the type of a certain template field 
  • trunk/grails-app/taglib/dbnp/studycapturing/WizardTagLib.groovy

    r1222 r1224  
    14481448                        // Show a link if the field is a FILE field 
    14491449                        if( fieldType == 'FILE' && value != "" ) { 
    1450                           out << '<a href="' + g.createLink( controller: "file", action: "get",  id: value ) + '">' + value + '</a>'; 
     1450                            out << '<a href="' + g.createLink( controller: "file", action: "get",  id: value ) + '">' + value + '</a>'; 
    14511451                        } else { 
    14521452                                out << value; 
     
    14541454 
    14551455                        // Show the unit (if a unit is present and a value was shown) 
    1456                         if( fieldUnit && value != "" ) 
     1456                        if( fieldUnit && value != null && value != "" ) 
    14571457                                out << " " + fieldUnit 
    14581458 
  • trunk/grails-app/views/study/show_samples.gsp

    r1213 r1224  
    2121                  // Determine a union of the fields for all different 
    2222                  // samples in all studies. In order to show a proper list. 
    23                   // We want every field to appear just once, 
    24                   // so the list is filtered for unique values 
     23                  // We want every field to appear just once, so the list is filtered 
     24                  // for unique names. This ensures that different template fields with 
     25                  // the same name, show up in the same column. This might happen when 
     26                  // both humans and mice are shown, where humans have a weight in kgs 
     27                  // and mice have a weight in grams. 
    2528                  sampleTemplates = studyList*.giveSampleTemplates().flatten().unique() 
    2629 
     
    3033                        showSampleFields = []; 
    3134                  } else { 
    32                         sampleFields = sampleTemplates*.fields.flatten().unique() 
     35                        sampleFields = sampleTemplates*.fields.flatten().name.unique() 
    3336                        if( !sampleFields ) { 
    3437                          sampleFields = []; 
     
    4548                                  // show the field and should not check any other 
    4649                                  // samples (hence the break) 
    47                                   if( sample.fieldExists( sampleField.name ) && sample.getFieldValue( sampleField.name ) ) { 
     50                                  if( sample.fieldExists( sampleField ) && sample.getFieldValue( sampleField ) ) { 
    4851                                        showSampleFields << sampleField; 
    4952                                        break; 
     
    8487                  </g:each> 
    8588 
    86                   <g:each in="${showSampleFields}" var="field"> 
     89                  <g:each in="${showSampleFields}" var="fieldname"> 
    8790                        <td> 
    88                           <g:if test="${sample.fieldExists(field.name)}"> 
     91                          <g:if test="${sample.fieldExists(fieldname)}"> 
     92                                <g:set var="field" value="${sample.getField(fieldname)}" /> 
    8993                                <wizard:showTemplateField field="${field}" entity="${sample}" /> 
    9094                          </g:if> 
  • trunk/grails-app/views/study/show_subjects.gsp

    r1213 r1224  
    1616                        // Determine a union of the fields for all different 
    1717                        // subjects in all studies. In order to show a proper list. 
    18                         // We want every field to appear just once, 
    19                         // so the list is filtered for unique values 
     18                        // We want every field to appear just once, so the list is filtered 
     19                        // for unique names. This ensures that different template fields with 
     20                        // the same name, show up in the same column. This might happen when 
     21                        // both humans and mice are shown, where humans have a weight in kgs 
     22                        // and mice have a weight in grams. 
    2023                        subjectTemplates = studyList*.giveSubjectTemplates()?.flatten().unique() 
    2124                        if( !subjectTemplates ) { 
     
    2326                          subjectFields = []; 
    2427                        } else { 
    25                           subjectFields = subjectTemplates*.fields?.flatten().unique() 
     28                          subjectFields = subjectTemplates*.fields?.flatten().name.unique() 
    2629                          if( !subjectFields ) { 
    2730                                subjectFields = []; 
     
    5154                                // show the field and should not check any other 
    5255                                // subjects (hence the break) 
    53                                 if( subject.fieldExists( subjectField.name ) && subject.getFieldValue( subjectField.name ) ) { 
     56                                if( subject.fieldExists( subjectField ) && subject.getFieldValue( subjectField ) ) { 
    5457                                  showSubjectFields << subjectField; 
    5558                                  break; 
     
    8083                        </g:each> 
    8184 
    82                         <g:each in="${showSubjectFields}" var="field"> 
     85                        <g:each in="${showSubjectFields}" var="fieldname"> 
    8386                          <td> 
    84                                 <g:if test="${subject.fieldExists(field.name)}"> 
     87                                <g:if test="${subject.fieldExists(fieldname)}"> 
     88                                        <g:set var="field" value="${subject.getField(fieldname)}" /> 
    8589                                        <wizard:showTemplateField field="${field}" entity="${subject}" /> 
    8690                                </g:if>