Index: trunk/grails-app/domain/Department.groovy
===================================================================
--- trunk/grails-app/domain/Department.groovy	(revision 163)
+++ trunk/grails-app/domain/Department.groovy	(revision 164)
@@ -6,11 +6,14 @@
     boolean isActive = true
 
-    static hasMany = [systemSections: SystemSection]
+    static hasMany = [systemSections: SystemSection, persons: Person]
 
 //     static belongsTo = []
 
-//     static constraints = {
-// 
-//     }
+    static constraints = {
+        name()
+        description()
+        costCode()
+        isActive()
+    }
 
     String toString() {
Index: trunk/grails-app/domain/Person.groovy
===================================================================
--- trunk/grails-app/domain/Person.groovy	(revision 163)
+++ trunk/grails-app/domain/Person.groovy	(revision 164)
@@ -8,4 +8,6 @@
 
     static belongsTo = [Authority, PersonGroup]
+
+    Department department
 
     String loginName
@@ -38,4 +40,5 @@
         employeeID(blank: true, nullable:true)
         description()
+        department(nullable:true)
         email()
         emailShow()
Index: trunk/grails-app/services/CreateDataService.groovy
===================================================================
--- trunk/grails-app/services/CreateDataService.groovy	(revision 163)
+++ trunk/grails-app/services/CreateDataService.groovy	(revision 164)
@@ -113,5 +113,5 @@
         //TypeOfPersonGroup
         def personGroupTypeInstance
-            personGroupTypeInstance = new PersonGroupType(name:"Department")
+            personGroupTypeInstance = new PersonGroupType(name:"Team")
         saveAndTest(personGroupTypeInstance)
             personGroupTypeInstance = new PersonGroupType(name:"Contractor")
@@ -122,11 +122,11 @@
         //PersonGroup
         def personGroupInstance
-            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.findByName("Department"),
+            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
                             name:"Electrical")
         saveAndTest(personGroupInstance)
-            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.findByName("Department"),
+            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
                             name:"Mechanical")
         saveAndTest(personGroupInstance)
-            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.findByName("Department"),
+            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
                             name:"Production")
         saveAndTest(personGroupInstance)
@@ -174,5 +174,5 @@
         personInstance.addToAuthorities(Authority.get(2))
         personInstance.addToAuthorities(Authority.get(3))
-        personInstance.addToPersonGroups(PersonGroup.findByName("gnuMims"))
+        personInstance.addToPersonGroups(PersonGroup.get(5))
 
         //Person #3
@@ -185,5 +185,5 @@
         saveAndTest(personInstance)
         personInstance.addToAuthorities(Authority.get(3))
-        personInstance.addToPersonGroups(PersonGroup.findByName("Electrical"))
+        personInstance.addToPersonGroups(PersonGroup.get(1))
     }
 
@@ -203,5 +203,5 @@
         saveAndTest(personInstance)
         personInstance.addToAuthorities(Authority.get(3))
-        personInstance.addToPersonGroups(PersonGroup.findByName("Electrical"))
+        personInstance.addToPersonGroups(PersonGroup.get(1))
 
         //Person #5
@@ -214,5 +214,5 @@
         saveAndTest(personInstance)
         personInstance.addToAuthorities(Authority.get(3))
-        personInstance.addToPersonGroups(PersonGroup.findByName("Mechanical"))
+        personInstance.addToPersonGroups(PersonGroup.get(2))
 
         //Person #6
@@ -225,5 +225,5 @@
         saveAndTest(personInstance)
         personInstance.addToAuthorities(Authority.get(3))
-        personInstance.addToPersonGroups(PersonGroup.findByName("Production"))
+        personInstance.addToPersonGroups(PersonGroup.get(3))
     }
 
Index: trunk/grails-app/views/department/create.gsp
===================================================================
--- trunk/grails-app/views/department/create.gsp	(revision 163)
+++ trunk/grails-app/views/department/create.gsp	(revision 164)
@@ -29,8 +29,8 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="costCode">Cost Code:</label>
+                                    <label for="name">Name:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'costCode','errors')}">
-                                    <input type="text" id="costCode" name="costCode" value="${fieldValue(bean:departmentInstance,field:'costCode')}"/>
+                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'name','errors')}">
+                                    <input type="text" id="name" name="name" value="${fieldValue(bean:departmentInstance,field:'name')}"/>
                                 </td>
                             </tr> 
@@ -47,8 +47,8 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="isActive">Is Active:</label>
+                                    <label for="costCode">Cost Code:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'isActive','errors')}">
-                                    <g:checkBox name="isActive" value="${departmentInstance?.isActive}" ></g:checkBox>
+                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'costCode','errors')}">
+                                    <input type="text" id="costCode" name="costCode" value="${fieldValue(bean:departmentInstance,field:'costCode')}"/>
                                 </td>
                             </tr> 
@@ -56,8 +56,8 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="name">Name:</label>
+                                    <label for="isActive">Is Active:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'name','errors')}">
-                                    <input type="text" id="name" name="name" value="${fieldValue(bean:departmentInstance,field:'name')}"/>
+                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'isActive','errors')}">
+                                    <g:checkBox name="isActive" value="${departmentInstance?.isActive}" ></g:checkBox>
                                 </td>
                             </tr> 
Index: trunk/grails-app/views/department/edit.gsp
===================================================================
--- trunk/grails-app/views/department/edit.gsp	(revision 163)
+++ trunk/grails-app/views/department/edit.gsp	(revision 164)
@@ -32,8 +32,8 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="costCode">Cost Code:</label>
+                                    <label for="name">Name:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'costCode','errors')}">
-                                    <input type="text" id="costCode" name="costCode" value="${fieldValue(bean:departmentInstance,field:'costCode')}"/>
+                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'name','errors')}">
+                                    <input type="text" id="name" name="name" value="${fieldValue(bean:departmentInstance,field:'name')}"/>
                                 </td>
                             </tr> 
@@ -50,4 +50,13 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
+                                    <label for="costCode">Cost Code:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'costCode','errors')}">
+                                    <input type="text" id="costCode" name="costCode" value="${fieldValue(bean:departmentInstance,field:'costCode')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
                                     <label for="isActive">Is Active:</label>
                                 </td>
@@ -59,8 +68,15 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="name">Name:</label>
+                                    <label for="persons">Persons:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'name','errors')}">
-                                    <input type="text" id="name" name="name" value="${fieldValue(bean:departmentInstance,field:'name')}"/>
+                                <td valign="top" class="value ${hasErrors(bean:departmentInstance,field:'persons','errors')}">
+                                    
+<ul>
+<g:each var="p" in="${departmentInstance?.persons?}">
+    <li><g:link controller="person" action="show" id="${p.id}">${p?.encodeAsHTML()}</g:link></li>
+</g:each>
+</ul>
+<g:link controller="person" params="['department.id':departmentInstance?.id]" action="create">Add Person</g:link>
+
                                 </td>
                             </tr> 
Index: trunk/grails-app/views/department/list.gsp
===================================================================
--- trunk/grails-app/views/department/list.gsp	(revision 163)
+++ trunk/grails-app/views/department/list.gsp	(revision 164)
@@ -24,11 +24,11 @@
                    	        <g:sortableColumn property="id" title="Id" />
                         
-                   	        <g:sortableColumn property="costCode" title="Cost Code" />
+                   	        <g:sortableColumn property="name" title="Name" />
                         
                    	        <g:sortableColumn property="description" title="Description" />
                         
+                   	        <g:sortableColumn property="costCode" title="Cost Code" />
+                        
                    	        <g:sortableColumn property="isActive" title="Is Active" />
-                        
-                   	        <g:sortableColumn property="name" title="Name" />
                         
                         </tr>
@@ -40,11 +40,11 @@
                             <td><g:link action="show" id="${departmentInstance.id}">${fieldValue(bean:departmentInstance, field:'id')}</g:link></td>
                         
-                            <td>${fieldValue(bean:departmentInstance, field:'costCode')}</td>
+                            <td>${fieldValue(bean:departmentInstance, field:'name')}</td>
                         
                             <td>${fieldValue(bean:departmentInstance, field:'description')}</td>
                         
+                            <td>${fieldValue(bean:departmentInstance, field:'costCode')}</td>
+                        
                             <td>${fieldValue(bean:departmentInstance, field:'isActive')}</td>
-                        
-                            <td>${fieldValue(bean:departmentInstance, field:'name')}</td>
                         
                         </tr>
Index: trunk/grails-app/views/department/show.gsp
===================================================================
--- trunk/grails-app/views/department/show.gsp	(revision 163)
+++ trunk/grails-app/views/department/show.gsp	(revision 164)
@@ -31,7 +31,7 @@
                     
                         <tr class="prop">
-                            <td valign="top" class="name">Cost Code:</td>
+                            <td valign="top" class="name">Name:</td>
                             
-                            <td valign="top" class="value">${fieldValue(bean:departmentInstance, field:'costCode')}</td>
+                            <td valign="top" class="value">${fieldValue(bean:departmentInstance, field:'name')}</td>
                             
                         </tr>
@@ -45,4 +45,11 @@
                     
                         <tr class="prop">
+                            <td valign="top" class="name">Cost Code:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:departmentInstance, field:'costCode')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
                             <td valign="top" class="name">Is Active:</td>
                             
@@ -52,7 +59,13 @@
                     
                         <tr class="prop">
-                            <td valign="top" class="name">Name:</td>
+                            <td valign="top" class="name">Persons:</td>
                             
-                            <td valign="top" class="value">${fieldValue(bean:departmentInstance, field:'name')}</td>
+                            <td  valign="top" style="text-align:left;" class="value">
+                                <ul>
+                                <g:each var="p" in="${departmentInstance.persons}">
+                                    <li><g:link controller="person" action="show" id="${p.id}">${p?.encodeAsHTML()}</g:link></li>
+                                </g:each>
+                                </ul>
+                            </td>
                             
                         </tr>
Index: trunk/grails-app/views/person/create.gsp
===================================================================
--- trunk/grails-app/views/person/create.gsp	(revision 163)
+++ trunk/grails-app/views/person/create.gsp	(revision 164)
@@ -93,4 +93,26 @@
 
                     <tr class="prop">
+                        <td valign="top" class="name">
+                            <label for="department">Department:</label>
+                        </td>
+                        <td valign="top" class="value ${hasErrors(bean:person,field:'department','errors')}">
+                            <g:select optionKey="id" from="${Department.list()}" name="department.id" value="${person?.department?.id}" noSelection="['null':'']"></g:select>
+                        </td>
+                    </tr>
+
+                    <tr class="prop">
+                        <td valign="top" class="name">
+                            <label for="personGroups">Groups:</label>
+                        </td>
+                        <td valign="top" class="value ${hasErrors(bean:person,field:'personGroups','errors')}">
+                            <g:select name="personGroups"
+                                            from="${PersonGroup.list()}"
+                                            size="5" multiple="yes" optionKey="id"
+                                            value="${person?.personGroups}" />
+
+                        </td>
+                    </tr>
+
+                    <tr class="prop">
                         <td valign="top" class="name" align="left">Authorities:</td>
                     </tr>
Index: trunk/grails-app/views/person/edit.gsp
===================================================================
--- trunk/grails-app/views/person/edit.gsp	(revision 163)
+++ trunk/grails-app/views/person/edit.gsp	(revision 164)
@@ -100,4 +100,26 @@
 
                     <tr class="prop">
+                        <td valign="top" class="name">
+                            <label for="department">Department:</label>
+                        </td>
+                        <td valign="top" class="value ${hasErrors(bean:person,field:'department','errors')}">
+                            <g:select optionKey="id" from="${Department.list()}" name="department.id" value="${person?.department?.id}" noSelection="['null':'']"></g:select>
+                        </td>
+                    </tr>
+
+                    <tr class="prop">
+                        <td valign="top" class="name">
+                            <label for="personGroups">Groups:</label>
+                        </td>
+                        <td valign="top" class="value ${hasErrors(bean:person,field:'personGroups','errors')}">
+                            <g:select name="personGroups"
+                                            from="${PersonGroup.list()}"
+                                            size="5" multiple="yes" optionKey="id"
+                                            value="${person?.personGroups}" />
+
+                        </td>
+                    </tr>
+
+                    <tr class="prop">
                         <td valign="top" class="name" align="left">Authorities:</td>
                     </tr>
Index: trunk/grails-app/views/person/show.gsp
===================================================================
--- trunk/grails-app/views/person/show.gsp	(revision 163)
+++ trunk/grails-app/views/person/show.gsp	(revision 164)
@@ -65,4 +65,20 @@
 
                 <tr class="prop">
+                    <td valign="top" class="name">Department:</td>
+                    <td valign="top" class="value">${person.department}</td>
+                </tr>
+
+                <tr class="prop">
+                    <td valign="top" class="name">Groups:</td>
+                    <td valign="top" class="value">
+                        <ul>
+                        <g:each in="${person.personGroups}" var='group'>
+                            <li>${group}</li>
+                        </g:each>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr class="prop">
                     <td valign="top" class="name">Authorities:</td>
                     <td valign="top" class="value">
