Changeset 164

Show
Ignore:
Timestamp:
10/23/09 09:49:35 (4 years ago)
Author:
gav
Message:

Add Department-Person relationship, update demo data and views to suite.
Add department and personGroups to Person views.

Location:
trunk/grails-app
Files:
10 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/domain/Department.groovy

    r162 r164  
    66    boolean isActive = true 
    77 
    8     static hasMany = [systemSections: SystemSection] 
     8    static hasMany = [systemSections: SystemSection, persons: Person] 
    99 
    1010//     static belongsTo = [] 
    1111 
    12 //     static constraints = { 
    13 //  
    14 //     } 
     12    static constraints = { 
     13        name() 
     14        description() 
     15        costCode() 
     16        isActive() 
     17    } 
    1518 
    1619    String toString() { 
  • trunk/grails-app/domain/Person.groovy

    r154 r164  
    88 
    99    static belongsTo = [Authority, PersonGroup] 
     10 
     11    Department department 
    1012 
    1113    String loginName 
     
    3840        employeeID(blank: true, nullable:true) 
    3941        description() 
     42        department(nullable:true) 
    4043        email() 
    4144        emailShow() 
  • trunk/grails-app/services/CreateDataService.groovy

    r162 r164  
    113113        //TypeOfPersonGroup 
    114114        def personGroupTypeInstance 
    115             personGroupTypeInstance = new PersonGroupType(name:"Department") 
     115            personGroupTypeInstance = new PersonGroupType(name:"Team") 
    116116        saveAndTest(personGroupTypeInstance) 
    117117            personGroupTypeInstance = new PersonGroupType(name:"Contractor") 
     
    122122        //PersonGroup 
    123123        def personGroupInstance 
    124             personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.findByName("Department"), 
     124            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1), 
    125125                            name:"Electrical") 
    126126        saveAndTest(personGroupInstance) 
    127             personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.findByName("Department"), 
     127            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1), 
    128128                            name:"Mechanical") 
    129129        saveAndTest(personGroupInstance) 
    130             personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.findByName("Department"), 
     130            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1), 
    131131                            name:"Production") 
    132132        saveAndTest(personGroupInstance) 
     
    174174        personInstance.addToAuthorities(Authority.get(2)) 
    175175        personInstance.addToAuthorities(Authority.get(3)) 
    176         personInstance.addToPersonGroups(PersonGroup.findByName("gnuMims")) 
     176        personInstance.addToPersonGroups(PersonGroup.get(5)) 
    177177 
    178178        //Person #3 
     
    185185        saveAndTest(personInstance) 
    186186        personInstance.addToAuthorities(Authority.get(3)) 
    187         personInstance.addToPersonGroups(PersonGroup.findByName("Electrical")) 
     187        personInstance.addToPersonGroups(PersonGroup.get(1)) 
    188188    } 
    189189 
     
    203203        saveAndTest(personInstance) 
    204204        personInstance.addToAuthorities(Authority.get(3)) 
    205         personInstance.addToPersonGroups(PersonGroup.findByName("Electrical")) 
     205        personInstance.addToPersonGroups(PersonGroup.get(1)) 
    206206 
    207207        //Person #5 
     
    214214        saveAndTest(personInstance) 
    215215        personInstance.addToAuthorities(Authority.get(3)) 
    216         personInstance.addToPersonGroups(PersonGroup.findByName("Mechanical")) 
     216        personInstance.addToPersonGroups(PersonGroup.get(2)) 
    217217 
    218218        //Person #6 
     
    225225        saveAndTest(personInstance) 
    226226        personInstance.addToAuthorities(Authority.get(3)) 
    227         personInstance.addToPersonGroups(PersonGroup.findByName("Production")) 
     227        personInstance.addToPersonGroups(PersonGroup.get(3)) 
    228228    } 
    229229 
  • trunk/grails-app/views/department/create.gsp

    r162 r164  
    2929                            <tr class="prop"> 
    3030                                <td valign="top" class="name"> 
    31                                     <label for="costCode">Cost Code:</label> 
     31                                    <label for="name">Name:</label> 
    3232                                </td> 
    33                                 <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'costCode','errors')}"> 
    34                                     <input type="text" id="costCode" name="costCode" value="${fieldValue(bean:departmentInstance,field:'costCode')}"/> 
     33                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'name','errors')}"> 
     34                                    <input type="text" id="name" name="name" value="${fieldValue(bean:departmentInstance,field:'name')}"/> 
    3535                                </td> 
    3636                            </tr>  
     
    4747                            <tr class="prop"> 
    4848                                <td valign="top" class="name"> 
    49                                     <label for="isActive">Is Active:</label> 
     49                                    <label for="costCode">Cost Code:</label> 
    5050                                </td> 
    51                                 <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'isActive','errors')}"> 
    52                                     <g:checkBox name="isActive" value="${departmentInstance?.isActive}" ></g:checkBox> 
     51                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'costCode','errors')}"> 
     52                                    <input type="text" id="costCode" name="costCode" value="${fieldValue(bean:departmentInstance,field:'costCode')}"/> 
    5353                                </td> 
    5454                            </tr>  
     
    5656                            <tr class="prop"> 
    5757                                <td valign="top" class="name"> 
    58                                     <label for="name">Name:</label> 
     58                                    <label for="isActive">Is Active:</label> 
    5959                                </td> 
    60                                 <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'name','errors')}"> 
    61                                     <input type="text" id="name" name="name" value="${fieldValue(bean:departmentInstance,field:'name')}"/> 
     60                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'isActive','errors')}"> 
     61                                    <g:checkBox name="isActive" value="${departmentInstance?.isActive}" ></g:checkBox> 
    6262                                </td> 
    6363                            </tr>  
  • trunk/grails-app/views/department/edit.gsp

    r162 r164  
    3232                            <tr class="prop"> 
    3333                                <td valign="top" class="name"> 
    34                                     <label for="costCode">Cost Code:</label> 
     34                                    <label for="name">Name:</label> 
    3535                                </td> 
    36                                 <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'costCode','errors')}"> 
    37                                     <input type="text" id="costCode" name="costCode" value="${fieldValue(bean:departmentInstance,field:'costCode')}"/> 
     36                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'name','errors')}"> 
     37                                    <input type="text" id="name" name="name" value="${fieldValue(bean:departmentInstance,field:'name')}"/> 
    3838                                </td> 
    3939                            </tr>  
     
    5050                            <tr class="prop"> 
    5151                                <td valign="top" class="name"> 
     52                                    <label for="costCode">Cost Code:</label> 
     53                                </td> 
     54                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'costCode','errors')}"> 
     55                                    <input type="text" id="costCode" name="costCode" value="${fieldValue(bean:departmentInstance,field:'costCode')}"/> 
     56                                </td> 
     57                            </tr>  
     58                         
     59                            <tr class="prop"> 
     60                                <td valign="top" class="name"> 
    5261                                    <label for="isActive">Is Active:</label> 
    5362                                </td> 
     
    5968                            <tr class="prop"> 
    6069                                <td valign="top" class="name"> 
    61                                     <label for="name">Name:</label> 
     70                                    <label for="persons">Persons:</label> 
    6271                                </td> 
    63                                 <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'name','errors')}"> 
    64                                     <input type="text" id="name" name="name" value="${fieldValue(bean:departmentInstance,field:'name')}"/> 
     72                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'persons','errors')}"> 
     73                                     
     74<ul> 
     75<g:each var="p" in="${departmentInstance?.persons?}"> 
     76    <li><g:link controller="person" action="show" id="${p.id}">${p?.encodeAsHTML()}</g:link></li> 
     77</g:each> 
     78</ul> 
     79<g:link controller="person" params="['department.id':departmentInstance?.id]" action="create">Add Person</g:link> 
     80 
    6581                                </td> 
    6682                            </tr>  
  • trunk/grails-app/views/department/list.gsp

    r162 r164  
    2424                                <g:sortableColumn property="id" title="Id" /> 
    2525                         
    26                                 <g:sortableColumn property="costCode" title="Cost Code" /> 
     26                                <g:sortableColumn property="name" title="Name" /> 
    2727                         
    2828                                <g:sortableColumn property="description" title="Description" /> 
    2929                         
     30                                <g:sortableColumn property="costCode" title="Cost Code" /> 
     31                         
    3032                                <g:sortableColumn property="isActive" title="Is Active" /> 
    31                          
    32                                 <g:sortableColumn property="name" title="Name" /> 
    3333                         
    3434                        </tr> 
     
    4040                            <td><g:link action="show" id="${departmentInstance.id}">${fieldValue(bean:departmentInstance, field:'id')}</g:link></td> 
    4141                         
    42                             <td>${fieldValue(bean:departmentInstance, field:'costCode')}</td> 
     42                            <td>${fieldValue(bean:departmentInstance, field:'name')}</td> 
    4343                         
    4444                            <td>${fieldValue(bean:departmentInstance, field:'description')}</td> 
    4545                         
     46                            <td>${fieldValue(bean:departmentInstance, field:'costCode')}</td> 
     47                         
    4648                            <td>${fieldValue(bean:departmentInstance, field:'isActive')}</td> 
    47                          
    48                             <td>${fieldValue(bean:departmentInstance, field:'name')}</td> 
    4949                         
    5050                        </tr> 
  • trunk/grails-app/views/department/show.gsp

    r162 r164  
    3131                     
    3232                        <tr class="prop"> 
    33                             <td valign="top" class="name">Cost Code:</td> 
     33                            <td valign="top" class="name">Name:</td> 
    3434                             
    35                             <td valign="top" class="value">${fieldValue(bean:departmentInstance, field:'costCode')}</td> 
     35                            <td valign="top" class="value">${fieldValue(bean:departmentInstance, field:'name')}</td> 
    3636                             
    3737                        </tr> 
     
    4545                     
    4646                        <tr class="prop"> 
     47                            <td valign="top" class="name">Cost Code:</td> 
     48                             
     49                            <td valign="top" class="value">${fieldValue(bean:departmentInstance, field:'costCode')}</td> 
     50                             
     51                        </tr> 
     52                     
     53                        <tr class="prop"> 
    4754                            <td valign="top" class="name">Is Active:</td> 
    4855                             
     
    5259                     
    5360                        <tr class="prop"> 
    54                             <td valign="top" class="name">Name:</td> 
     61                            <td valign="top" class="name">Persons:</td> 
    5562                             
    56                             <td valign="top" class="value">${fieldValue(bean:departmentInstance, field:'name')}</td> 
     63                            <td  valign="top" style="text-align:left;" class="value"> 
     64                                <ul> 
     65                                <g:each var="p" in="${departmentInstance.persons}"> 
     66                                    <li><g:link controller="person" action="show" id="${p.id}">${p?.encodeAsHTML()}</g:link></li> 
     67                                </g:each> 
     68                                </ul> 
     69                            </td> 
    5770                             
    5871                        </tr> 
  • trunk/grails-app/views/person/create.gsp

    r150 r164  
    9393 
    9494                    <tr class="prop"> 
     95                        <td valign="top" class="name"> 
     96                            <label for="department">Department:</label> 
     97                        </td> 
     98                        <td valign="top" class="value ${hasErrors(bean:person,field:'department','errors')}"> 
     99                            <g:select optionKey="id" from="${Department.list()}" name="department.id" value="${person?.department?.id}" noSelection="['null':'']"></g:select> 
     100                        </td> 
     101                    </tr> 
     102 
     103                    <tr class="prop"> 
     104                        <td valign="top" class="name"> 
     105                            <label for="personGroups">Groups:</label> 
     106                        </td> 
     107                        <td valign="top" class="value ${hasErrors(bean:person,field:'personGroups','errors')}"> 
     108                            <g:select name="personGroups" 
     109                                            from="${PersonGroup.list()}" 
     110                                            size="5" multiple="yes" optionKey="id" 
     111                                            value="${person?.personGroups}" /> 
     112 
     113                        </td> 
     114                    </tr> 
     115 
     116                    <tr class="prop"> 
    95117                        <td valign="top" class="name" align="left">Authorities:</td> 
    96118                    </tr> 
  • trunk/grails-app/views/person/edit.gsp

    r150 r164  
    100100 
    101101                    <tr class="prop"> 
     102                        <td valign="top" class="name"> 
     103                            <label for="department">Department:</label> 
     104                        </td> 
     105                        <td valign="top" class="value ${hasErrors(bean:person,field:'department','errors')}"> 
     106                            <g:select optionKey="id" from="${Department.list()}" name="department.id" value="${person?.department?.id}" noSelection="['null':'']"></g:select> 
     107                        </td> 
     108                    </tr> 
     109 
     110                    <tr class="prop"> 
     111                        <td valign="top" class="name"> 
     112                            <label for="personGroups">Groups:</label> 
     113                        </td> 
     114                        <td valign="top" class="value ${hasErrors(bean:person,field:'personGroups','errors')}"> 
     115                            <g:select name="personGroups" 
     116                                            from="${PersonGroup.list()}" 
     117                                            size="5" multiple="yes" optionKey="id" 
     118                                            value="${person?.personGroups}" /> 
     119 
     120                        </td> 
     121                    </tr> 
     122 
     123                    <tr class="prop"> 
    102124                        <td valign="top" class="name" align="left">Authorities:</td> 
    103125                    </tr> 
  • trunk/grails-app/views/person/show.gsp

    r150 r164  
    6565 
    6666                <tr class="prop"> 
     67                    <td valign="top" class="name">Department:</td> 
     68                    <td valign="top" class="value">${person.department}</td> 
     69                </tr> 
     70 
     71                <tr class="prop"> 
     72                    <td valign="top" class="name">Groups:</td> 
     73                    <td valign="top" class="value"> 
     74                        <ul> 
     75                        <g:each in="${person.personGroups}" var='group'> 
     76                            <li>${group}</li> 
     77                        </g:each> 
     78                        </ul> 
     79                    </td> 
     80                </tr> 
     81 
     82                <tr class="prop"> 
    6783                    <td valign="top" class="name">Authorities:</td> 
    6884                    <td valign="top" class="value">