Changeset 321

Show
Ignore:
Timestamp:
31-03-10 14:02:35 (4 years ago)
Author:
tabma
Message:

- identifying columns get stored using 'name' attribute of entities as identifier

Location:
trunk/grails-app
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/importer/ImporterController.groovy

    r284 r321  
    7777        def entities  = request.getParameterValues("entity") 
    7878        def templatefieldtypes = request.getParameterValues("templatefieldtype") 
     79        def identifiercolumnindex = params.identifier.toInteger() 
    7980 
    80         templatefieldtypes.each { t -> 
    81             def temp = t.split(":") 
    82             def templatefieldtype = temp[1]          
     81        templatefieldtypes.each { t ->       
     82            def columnindex = t.split(":")[0].toInteger() 
     83            def templatefieldtype = t.split(":")[1] 
    8384             
    8485            switch (templatefieldtype) { 
     
    101102                default: break 
    102103            } 
    103             session.header[temp[0].toInteger()].templatefieldtype = tft 
     104            session.header[columnindex].templatefieldtype = tft 
    104105        } 
    105106 
    106         entities.each { e -> 
    107             def temp = e.split(":") 
     107        entities.each { e ->                 
     108            def columnindex = e.split(":")[0].toInteger() 
     109            def entitytype = e.split(":")[1].toInteger() 
    108110            Class clazz      
    109111 
    110             switch (temp[1].toInteger()) { 
     112            switch (entitytype) { 
    111113                case 0: clazz = Study 
    112114                        break 
     
    123125            } 
    124126 
    125             session.header[temp[0].toInteger()].index = temp[0].toInteger() 
    126             session.header[temp[0].toInteger()].entity = clazz 
     127            session.header[columnindex].identifier = (columnindex == identifiercolumnindex) ? true : false 
     128            session.header[columnindex].index = columnindex 
     129            session.header[columnindex].entity = clazz 
    127130        } 
    128131 
     
    142145        def columnproperties  = request.getParameterValues("columnproperty") 
    143146 
    144         columnproperties.each { cp -> 
    145                 def temp = cp.split(":") 
    146                 session.header[temp[0].toInteger()].property = TemplateField.get(temp[1].toInteger()) 
     147        columnproperties.each { cp ->            
     148                def columnindex = cp.split(":")[0].toInteger() 
     149                def property_id = cp.split(":")[1].toInteger() 
     150                session.header[columnindex].property = TemplateField.get(property_id)            
    147151        } 
    148152 
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateEntity.groovy

    r313 r321  
    9191                // First, search if there is an entity property with the given name, and if so, set that 
    9292                if (this.properties.containsKey(fieldName)) { 
    93                         this[fieldName] = value 
     93                        this[fieldName] = value                  
    9494                } 
    9595                // If not the found, then it is a template field, so check if there is a template 
  • trunk/grails-app/services/dbnp/importer/ImporterService.groovy

    r312 r321  
    267267            switch(mc.entity) { 
    268268                case Study      :   (record.any {it.getClass()==mc.entity}) ? 0 : record.add(study) 
     269                                    if (mc.identifier) { study.title = value; break } 
    269270                                    study.setFieldValue(mc.property.name, value) 
    270271                                    break 
    271272                case Subject    :   (record.any {it.getClass()==mc.entity}) ? 0 : record.add(subject) 
     273                                    if (mc.identifier) { subject.name = value; break } 
    272274                                    subject.setFieldValue(mc.property.name, value) 
    273275                                    break 
    274276                case Event      :   (record.any {it.getClass()==mc.entity}) ? 0 : record.add(event) 
     277                                    if (mc.identifier) { event.eventdescription = value; break } 
    275278                                    event.setFieldValue(mc.property.name, value) 
    276279                                    break 
    277280                case Protocol   :   (record.any {it.getClass()==mc.entity}) ? 0 : record.add(protocol) 
     281                                    if (mc.identifier) { protocol.name = value; break } 
    278282                                    protocol.setFieldValue(mc.property.name, value) 
    279283                                    break 
    280284                case Sample     :   (record.any {it.getClass()==mc.entity}) ? record.add(sample) : 0 
     285                                    if (mc.identifier) { sample.name = value; break } 
    281286                                    sample.setFieldValue(mc.property.name, value) 
    282287                                    break 
  • trunk/grails-app/taglib/dbnp/importer/ImporterTagLib.groovy

    r305 r321  
    8686        def t = Template.get(session.importtemplate_id)  
    8787        def mc = attrs['mappingcolumn'] 
    88          
    89         out << createPropertySelect(attrs['name'], t.fields.findAll { it.type == mc.templatefieldtype }, mc.index) 
     88 
     89        (mc.identifier) ? out << "<select style=\"font-size:10px\" name=\"\" disabled><option>Identifier</option></select>": 
     90            out << createPropertySelect(attrs['name'], t.fields.findAll { it.type == mc.templatefieldtype }, mc.index) 
    9091    } 
    9192 
  • trunk/grails-app/views/importer/common/_preview.gsp

    r312 r321  
    3434 
    3535        <tr> 
    36             <td>Celltype:</td> 
     36            <td>Fieldtype:</td> 
    3737            <g:each var="column" in="${header}"> 
    3838                <td class="header">