Ignore:
Timestamp:
Jun 10, 2010, 1:33:37 AM (10 years ago)
Author:
keesvb
Message:

added entity property to TemplateField?; added validator to Template to ensure fields are of the correct entity, updated BootStrap? accordingly, updated tests accordingly

Location:
trunk/grails-app/domain/dbnp/studycapturing
Files:
4 edited

Legend:

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

    r540 r550  
    2121        static constraints = {
    2222                description(nullable: true, blank: true)
     23
     24                fields(validator: { fields, obj, errors ->
     25                        // 'obj' refers to the actual Template object
     26
     27                        // define a boolean
     28                        def error = false
     29
     30                        // iterate through fields
     31                        fields.each { field ->
     32                                // check if the field entity is the same as the template entity
     33                                if (!field.entity.equals(obj.entity)) {
     34                                        error = true
     35                                        errors.rejectValue(
     36                                                'fields',
     37                                                'templateEntity.entityMismatch',
     38                                                [field.name, obj.entity, field.entity] as Object[],
     39                                                'Template field {0} must be of entity {1} and is currently of entity {2}'
     40                                                )
     41                                }
     42                        }
     43
     44                        // got an error, or not?
     45                        return (!error)
     46                })
     47
    2348                // outcommented for now due to bug in Grails / Hibernate
    2449                // see http://jira.codehaus.org/browse/GRAILS-6020
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateEntity.groovy

    r540 r550  
    518518                        // got a value?
    519519                        if (value) {
    520                                 println ".setting [" + ((super) ? super.class : '??') + "] domain field: [" + fieldName + "] ([" + value.toString() + "] of type [" + value.class + "])"
     520                                //debug message: println ".setting [" + ((super) ? super.class : '??') + "] domain field: [" + fieldName + "] ([" + value.toString() + "] of type [" + value.class + "])"
    521521
    522522                                // set value
    523523                                this[field.name] = value
    524524                        } else {
    525                                 println ".unsetting [" + ((super) ? super.class : '??') + "] domain field: [" + fieldName + "]"
     525                                //debug message: println ".unsetting [" + ((super) ? super.class : '??') + "] domain field: [" + fieldName + "]"
    526526
    527527                                // remove value. For numbers, this is done by setting
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateField.groovy

    r540 r550  
    1414        String name
    1515        TemplateFieldType type
     16    Class entity
    1617        String unit
    1718        String comment // help string for the user interface
     
    2728        static constraints = {
    2829                // TODO: verify that TemplateField names are unique within templates of each super entity
     30                name(nullable: false, blank: false)
     31                type(nullable: false, blank: false)
     32                entity(nullable: false, blank: false)
    2933                unit(nullable: true, blank: true)
    3034                comment(nullable: true, blank: true)
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateFieldType.groovy

    r540 r550  
    1919        RELTIME('Relative time'), // relative date, e.g. days since start of study
    2020        FILE('File')
     21    // TODO: add a timezone-aware date type to use for study start date
     22    // TODO: add a BOOLEAN type (checkbox)
    2123
    22         String name
     24    String name
    2325
    2426        TemplateFieldType(String name) {
Note: See TracChangeset for help on using the changeset viewer.