Changeset 164


Ignore:
Timestamp:
Oct 23, 2009, 9:49:35 AM (10 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 edited

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">
Note: See TracChangeset for help on using the changeset viewer.