Index: trunk/doc/Definitions/PlannedMaintenance_PM.txt
===================================================================
--- trunk/doc/Definitions/PlannedMaintenance_PM.txt	(revision 130)
+++ 	(revision )
@@ -1,15 +1,0 @@
- Planned Maintenance or PM
-
- * A PM is simply a task where:
-  * Task type = "Planned Maintenance"
-  * As with any task a PM may have a recurring schedule, actions and entries etc.
-
-The following information can be automatically returned from the system.
-
- * PM frequency = Task.taskRecurringSchedule
- * PM KPI's:
-  * Total PM's = Task.findAllByTaskType("Planned Maintenance")
-  * Complete PM's = Total.findAllByTaskStatus("Complete")
-  * PM completetion rate = Complete/Total
-  * Missed PM's = Total - Complete
- * PM parent tasks = context{TaskRecShed.task.taskType("Planned Maintenance") and Date in range}
Index: trunk/doc/Definitions/PreventativeMaintenance_PM.txt
===================================================================
--- trunk/doc/Definitions/PreventativeMaintenance_PM.txt	(revision 131)
+++ trunk/doc/Definitions/PreventativeMaintenance_PM.txt	(revision 131)
@@ -0,0 +1,17 @@
+Preventative Maintenance or PM
+
+ * A PM is simply a task where:
+  * Task type = "Preventative Maintenance"
+  * As with any task a PM may have a recurring schedule, procedure and entries etc.
+
+The following information can be automatically returned from the system.
+
+ * PM frequency = Task.taskRecurringSchedule
+
+ * PM KPI's:
+  * Total PM's = Task.findAllByTaskType("Preventative Maintenance")
+  * Complete PM's = Total.findAllByTaskStatus("Complete")
+  * PM completetion rate = Complete/Total
+  * Missed PM's = Total - Complete
+
+ * Find all Recurring PM tasks = context{TaskRecShed.task.taskType("Preventative Maintenance") and Date in range}
Index: trunk/doc/Definitions/TaskActions.txt
===================================================================
--- trunk/doc/Definitions/TaskActions.txt	(revision 130)
+++ trunk/doc/Definitions/TaskActions.txt	(revision 131)
@@ -38,3 +38,8 @@
     Modification.person = userName                                      
     Modification.comment = comment  
-}                                                           
+}                     
+
+
+Required Services:
+TaskCopy
+TaskGenerateSubTask                                      
Index: trunk/grails-app/conf/BootStrap.groovy
===================================================================
--- trunk/grails-app/conf/BootStrap.groovy	(revision 130)
+++ trunk/grails-app/conf/BootStrap.groovy	(revision 131)
@@ -216,13 +216,13 @@
 
         taskGroupInstance = new TaskGroup(name:"Engineering Activites",
-                      description:"Engineering daily activities")
+                                                                            description:"Engineering daily activities")
         BootStrapSaveAndTest(taskGroupInstance)
 
         taskGroupInstance = new TaskGroup(name:"Production Activites",
-                      description:"Production daily activities")
+                                                                            description:"Production daily activities")
         BootStrapSaveAndTest(taskGroupInstance)
 
         taskGroupInstance = new TaskGroup(name:"New Projects",
-                      description:" ")
+                                                                            description:" ")
         BootStrapSaveAndTest(taskGroupInstance)
 
@@ -260,5 +260,5 @@
         BootStrapSaveAndTest(taskTypeInstance)
 
-        taskTypeInstance = new TaskType(name:"Planned Maintenance")
+        taskTypeInstance = new TaskType(name:"Preventative Maintenance")
         BootStrapSaveAndTest(taskTypeInstance)
 
@@ -409,20 +409,22 @@
         BootStrapSaveAndTest(assignedPersonInstance)
 
-//RecurringSchedule
-        def recurringScheduleInstance
-
-        //RecurringSchedule #1
-        recurringScheduleInstance = new RecurringSchedule(recurEvery: 1,
+//TaskRecurringSchedule
+        def taskRecurringScheduleInstance
+
+        //TaskRecurringSchedule #1
+        taskRecurringScheduleInstance = new TaskRecurringSchedule(task: Task.get(1),
+                                                                                                    recurEvery: 1,
                                                                                                     period: Period.get(1),
                                                                                                     task: Task.get(1),
                                                                                                     nextDueDate: new Date())
-        BootStrapSaveAndTest(recurringScheduleInstance)
-
-        //RecurringSchedule #2
-        recurringScheduleInstance = new RecurringSchedule(recurEvery: 1,
-                                                                                                    period: Period.get(2),
+        BootStrapSaveAndTest(taskRecurringScheduleInstance)
+
+        //TaskRecurringSchedule #2
+        taskRecurringScheduleInstance = new TaskRecurringSchedule(task: Task.get(2),
+                                                                                                    recurEvery: 1,
+                                                                                                    period: Period.get(1),
                                                                                                     task: Task.get(2),
                                                                                                     nextDueDate: new Date())
-        BootStrapSaveAndTest(recurringScheduleInstance)
+        BootStrapSaveAndTest(taskRecurringScheduleInstance)
 
 /*************************
@@ -591,16 +593,10 @@
         BootStrapSaveAndTest(maintenancePolicyInstance)
 
-//PlannedMaintenance
-        def plannedMaintenanceInstance
-
-        //PM #1
-        plannedMaintenanceInstance = new PlannedMaintenance(name: "PM1",
-                                                                                                            recurringSchedule: RecurringSchedule.get(1))
-        BootStrapSaveAndTest(plannedMaintenanceInstance)
-
-        //PM #2
-        plannedMaintenanceInstance = new PlannedMaintenance(name: "PM2",
-                                                                                                            recurringSchedule: RecurringSchedule.get(1))
-        BootStrapSaveAndTest(plannedMaintenanceInstance)
+//TaskProcedure
+        def taskProcedureInstance
+
+        taskProcedureInstance = new TaskProcedure(name: "Daily check")
+        BootStrapSaveAndTest(taskProcedureInstance)
+        taskProcedureInstance.addToTasks(Task.get(1))
 
 //MaintenanceAction
@@ -608,22 +604,22 @@
 
         //MaintenanceAction #1
-        maintenanceActionInstance = new MaintenanceAction(maintenanceAction: "Check all E-stops, active E-stop S1-S12 and ensure machine cannot run",
-                                                                                                        pmStepNumber: 1,
+        maintenanceActionInstance = new MaintenanceAction(description: "Check all E-stops, active E-stop S1-S12 and ensure machine cannot run",
+                                                                                                        procedureStepNumber: 1,
                                                                                                         maintenancePolicy: MaintenancePolicy.get(1),
-                                                                                                        plannedMaintenance: PlannedMaintenance.get(1))
+                                                                                                        taskProcedure: TaskProcedure.get(1))
         BootStrapSaveAndTest(maintenanceActionInstance)
 
         //MaintenanceAction #2
-        maintenanceActionInstance = new MaintenanceAction(maintenanceAction: "Do more pushups",
-                                                                                                        pmStepNumber: 2,
+        maintenanceActionInstance = new MaintenanceAction(description: "Do more pushups",
+                                                                                                        procedureStepNumber: 2,
                                                                                                         maintenancePolicy: MaintenancePolicy.get(1),
-                                                                                                        plannedMaintenance: PlannedMaintenance.get(1))
+                                                                                                        taskProcedure: TaskProcedure.get(1))
         BootStrapSaveAndTest(maintenanceActionInstance)
 
         //MaintenanceAction #3
-        maintenanceActionInstance = new MaintenanceAction(maintenanceAction: "Ok just one more pushup",
-                                                                                                        pmStepNumber: 3,
+        maintenanceActionInstance = new MaintenanceAction(description: "Ok just one more pushup",
+                                                                                                        procedureStepNumber: 3,
                                                                                                         maintenancePolicy: MaintenancePolicy.get(1),
-                                                                                                        plannedMaintenance: PlannedMaintenance.get(1))
+                                                                                                        taskProcedure: TaskProcedure.get(1))
         BootStrapSaveAndTest(maintenanceActionInstance)
                                                                                                     
@@ -661,5 +657,6 @@
 
         //Assembly #1
-        assemblyInstance = new Assembly(name: "Print Couple")
+        assemblyInstance = new Assembly(name: "Print Couple",
+                                                                        assetType: AssetType.get(1))
         BootStrapSaveAndTest(assemblyInstance)
 //        assemblyInstance.addToMaintenanceActions(MaintenanceAction.get(1))
@@ -667,5 +664,5 @@
         //Assembly #2
         assemblyInstance = new Assembly(name: "Agitator",
-                        lifeplan: LifePlan.get(1))
+                                                                        assetType: AssetType.get(2))
         BootStrapSaveAndTest(assemblyInstance)
 
@@ -674,9 +671,11 @@
 
         //SubAssembly #1
-        subAssemblyInstance = new SubAssembly(name: "Cylinder")
+        subAssemblyInstance = new SubAssembly(name: "Cylinder",
+                                                                                    assembly: Assembly.get(1))
         BootStrapSaveAndTest(subAssemblyInstance)
  
          //SubAssembly #2
-        subAssemblyInstance = new SubAssembly(name: "Gearmotor")
+        subAssemblyInstance = new SubAssembly(name: "Gearmotor",
+                                                                                    assembly: Assembly.get(2))
         BootStrapSaveAndTest(subAssemblyInstance)
 
@@ -685,9 +684,11 @@
     
         //ComponentItem #1
-        componentItemInstance = new ComponentItem(name: "Centre Pulley")
+        componentItemInstance = new ComponentItem(name: "Bearing",
+                                                                                            subAssembly: SubAssembly.get(1))
         BootStrapSaveAndTest(componentItemInstance)
 
          //ComponentItem #2
-        componentItemInstance = new ComponentItem(name: "Bearing")
+        componentItemInstance = new ComponentItem(name: "Drive shaft oil seal",
+                                                                                            subAssembly: SubAssembly.get(2))
         BootStrapSaveAndTest(componentItemInstance)
 
Index: trunk/grails-app/controllers/MaintenanceActionController.groovy
===================================================================
--- trunk/grails-app/controllers/MaintenanceActionController.groovy	(revision 131)
+++ trunk/grails-app/controllers/MaintenanceActionController.groovy	(revision 131)
@@ -0,0 +1,99 @@
+import org.codehaus.groovy.grails.plugins.springsecurity.Secured
+
+class MaintenanceActionController extends BaseAppAdminController {
+    
+    def index = { redirect(action:list,params:params) }
+
+    // the delete, save and update actions only accept POST requests
+    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
+
+    def list = {
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ maintenanceActionInstanceList: MaintenanceAction.list( params ), maintenanceActionInstanceTotal: MaintenanceAction.count() ]
+    }
+
+    def show = {
+        def maintenanceActionInstance = MaintenanceAction.get( params.id )
+
+        if(!maintenanceActionInstance) {
+            flash.message = "MaintenanceAction not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else { return [ maintenanceActionInstance : maintenanceActionInstance ] }
+    }
+
+    def delete = {
+        def maintenanceActionInstance = MaintenanceAction.get( params.id )
+        if(maintenanceActionInstance) {
+            try {
+                maintenanceActionInstance.delete()
+                flash.message = "MaintenanceAction ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "MaintenanceAction ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "MaintenanceAction not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def edit = {
+        def maintenanceActionInstance = MaintenanceAction.get( params.id )
+
+        if(!maintenanceActionInstance) {
+            flash.message = "MaintenanceAction not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else {
+            return [ maintenanceActionInstance : maintenanceActionInstance ]
+        }
+    }
+
+    def update = {
+        def maintenanceActionInstance = MaintenanceAction.get( params.id )
+        if(maintenanceActionInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(maintenanceActionInstance.version > version) {
+                    
+                    maintenanceActionInstance.errors.rejectValue("version", "maintenanceAction.optimistic.locking.failure", "Another user has updated this MaintenanceAction while you were editing.")
+                    render(view:'edit',model:[maintenanceActionInstance:maintenanceActionInstance])
+                    return
+                }
+            }
+            maintenanceActionInstance.properties = params
+            if(!maintenanceActionInstance.hasErrors() && maintenanceActionInstance.save()) {
+                flash.message = "MaintenanceAction ${params.id} updated"
+                redirect(action:show,id:maintenanceActionInstance.id)
+            }
+            else {
+                render(view:'edit',model:[maintenanceActionInstance:maintenanceActionInstance])
+            }
+        }
+        else {
+            flash.message = "MaintenanceAction not found with id ${params.id}"
+            redirect(action:edit,id:params.id)
+        }
+    }
+
+    def create = {
+        def maintenanceActionInstance = new MaintenanceAction()
+        maintenanceActionInstance.properties = params
+        return ['maintenanceActionInstance':maintenanceActionInstance]
+    }
+
+    def save = {
+        def maintenanceActionInstance = new MaintenanceAction(params)
+        if(!maintenanceActionInstance.hasErrors() && maintenanceActionInstance.save()) {
+            flash.message = "MaintenanceAction ${maintenanceActionInstance.id} created"
+            redirect(action:show,id:maintenanceActionInstance.id)
+        }
+        else {
+            render(view:'create',model:[maintenanceActionInstance:maintenanceActionInstance])
+        }
+    }
+}
Index: trunk/grails-app/controllers/TaskActionController.groovy
===================================================================
--- trunk/grails-app/controllers/TaskActionController.groovy	(revision 130)
+++ 	(revision )
@@ -1,99 +1,0 @@
-import org.codehaus.groovy.grails.plugins.springsecurity.Secured
-
-class MaintenanceActionController extends BaseAppAdminController {
-    
-    def index = { redirect(action:list,params:params) }
-
-    // the delete, save and update actions only accept POST requests
-    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
-
-    def list = {
-        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
-        [ maintenanceActionInstanceList: MaintenanceAction.list( params ), maintenanceActionInstanceTotal: MaintenanceAction.count() ]
-    }
-
-    def show = {
-        def maintenanceActionInstance = MaintenanceAction.get( params.id )
-
-        if(!maintenanceActionInstance) {
-            flash.message = "MaintenanceAction not found with id ${params.id}"
-            redirect(action:list)
-        }
-        else { return [ maintenanceActionInstance : maintenanceActionInstance ] }
-    }
-
-    def delete = {
-        def maintenanceActionInstance = MaintenanceAction.get( params.id )
-        if(maintenanceActionInstance) {
-            try {
-                maintenanceActionInstance.delete()
-                flash.message = "MaintenanceAction ${params.id} deleted"
-                redirect(action:list)
-            }
-            catch(org.springframework.dao.DataIntegrityViolationException e) {
-                flash.message = "MaintenanceAction ${params.id} could not be deleted"
-                redirect(action:show,id:params.id)
-            }
-        }
-        else {
-            flash.message = "MaintenanceAction not found with id ${params.id}"
-            redirect(action:list)
-        }
-    }
-
-    def edit = {
-        def maintenanceActionInstance = MaintenanceAction.get( params.id )
-
-        if(!maintenanceActionInstance) {
-            flash.message = "MaintenanceAction not found with id ${params.id}"
-            redirect(action:list)
-        }
-        else {
-            return [ maintenanceActionInstance : maintenanceActionInstance ]
-        }
-    }
-
-    def update = {
-        def maintenanceActionInstance = MaintenanceAction.get( params.id )
-        if(maintenanceActionInstance) {
-            if(params.version) {
-                def version = params.version.toLong()
-                if(maintenanceActionInstance.version > version) {
-                    
-                    maintenanceActionInstance.errors.rejectValue("version", "maintenanceAction.optimistic.locking.failure", "Another user has updated this MaintenanceAction while you were editing.")
-                    render(view:'edit',model:[maintenanceActionInstance:maintenanceActionInstance])
-                    return
-                }
-            }
-            maintenanceActionInstance.properties = params
-            if(!maintenanceActionInstance.hasErrors() && maintenanceActionInstance.save()) {
-                flash.message = "MaintenanceAction ${params.id} updated"
-                redirect(action:show,id:maintenanceActionInstance.id)
-            }
-            else {
-                render(view:'edit',model:[maintenanceActionInstance:maintenanceActionInstance])
-            }
-        }
-        else {
-            flash.message = "MaintenanceAction not found with id ${params.id}"
-            redirect(action:edit,id:params.id)
-        }
-    }
-
-    def create = {
-        def maintenanceActionInstance = new MaintenanceAction()
-        maintenanceActionInstance.properties = params
-        return ['maintenanceActionInstance':maintenanceActionInstance]
-    }
-
-    def save = {
-        def maintenanceActionInstance = new MaintenanceAction(params)
-        if(!maintenanceActionInstance.hasErrors() && maintenanceActionInstance.save()) {
-            flash.message = "MaintenanceAction ${maintenanceActionInstance.id} created"
-            redirect(action:show,id:maintenanceActionInstance.id)
-        }
-        else {
-            render(view:'create',model:[maintenanceActionInstance:maintenanceActionInstance])
-        }
-    }
-}
Index: trunk/grails-app/controllers/TaskActionDetailedController.groovy
===================================================================
--- trunk/grails-app/controllers/TaskActionDetailedController.groovy	(revision 131)
+++ trunk/grails-app/controllers/TaskActionDetailedController.groovy	(revision 131)
@@ -0,0 +1,99 @@
+import org.codehaus.groovy.grails.plugins.springsecurity.Secured
+
+class MaintenanceActionController extends BaseAppAdminController {
+    
+    def index = { redirect(action:list,params:params) }
+
+    // the delete, save and update actions only accept POST requests
+    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
+
+    def list = {
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ maintenanceActionInstanceList: MaintenanceAction.list( params ), maintenanceActionInstanceTotal: MaintenanceAction.count() ]
+    }
+
+    def show = {
+        def maintenanceActionInstance = MaintenanceAction.get( params.id )
+
+        if(!maintenanceActionInstance) {
+            flash.message = "MaintenanceAction not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else { return [ maintenanceActionInstance : maintenanceActionInstance ] }
+    }
+
+    def delete = {
+        def maintenanceActionInstance = MaintenanceAction.get( params.id )
+        if(maintenanceActionInstance) {
+            try {
+                maintenanceActionInstance.delete()
+                flash.message = "MaintenanceAction ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "MaintenanceAction ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "MaintenanceAction not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def edit = {
+        def maintenanceActionInstance = MaintenanceAction.get( params.id )
+
+        if(!maintenanceActionInstance) {
+            flash.message = "MaintenanceAction not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else {
+            return [ maintenanceActionInstance : maintenanceActionInstance ]
+        }
+    }
+
+    def update = {
+        def maintenanceActionInstance = MaintenanceAction.get( params.id )
+        if(maintenanceActionInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(maintenanceActionInstance.version > version) {
+                    
+                    maintenanceActionInstance.errors.rejectValue("version", "maintenanceAction.optimistic.locking.failure", "Another user has updated this MaintenanceAction while you were editing.")
+                    render(view:'edit',model:[maintenanceActionInstance:maintenanceActionInstance])
+                    return
+                }
+            }
+            maintenanceActionInstance.properties = params
+            if(!maintenanceActionInstance.hasErrors() && maintenanceActionInstance.save()) {
+                flash.message = "MaintenanceAction ${params.id} updated"
+                redirect(action:show,id:maintenanceActionInstance.id)
+            }
+            else {
+                render(view:'edit',model:[maintenanceActionInstance:maintenanceActionInstance])
+            }
+        }
+        else {
+            flash.message = "MaintenanceAction not found with id ${params.id}"
+            redirect(action:edit,id:params.id)
+        }
+    }
+
+    def create = {
+        def maintenanceActionInstance = new MaintenanceAction()
+        maintenanceActionInstance.properties = params
+        return ['maintenanceActionInstance':maintenanceActionInstance]
+    }
+
+    def save = {
+        def maintenanceActionInstance = new MaintenanceAction(params)
+        if(!maintenanceActionInstance.hasErrors() && maintenanceActionInstance.save()) {
+            flash.message = "MaintenanceAction ${maintenanceActionInstance.id} created"
+            redirect(action:show,id:maintenanceActionInstance.id)
+        }
+        else {
+            render(view:'create',model:[maintenanceActionInstance:maintenanceActionInstance])
+        }
+    }
+}
Index: trunk/grails-app/controllers/TaskDetailedController.groovy
===================================================================
--- trunk/grails-app/controllers/TaskDetailedController.groovy	(revision 130)
+++ trunk/grails-app/controllers/TaskDetailedController.groovy	(revision 131)
@@ -27,5 +27,9 @@
             redirect(action:list)
         }
-        else { return [ taskInstance : taskInstance ] }
+        else { 
+            def taskProcedureInstance = TaskProcedure.get(taskInstance?.taskProcedure?.id)
+            return [ taskInstance : taskInstance,  taskProcedureInstance: taskProcedureInstance] 
+
+        }
     }
 
Index: trunk/grails-app/controllers/TaskProcedureController.groovy
===================================================================
--- trunk/grails-app/controllers/TaskProcedureController.groovy	(revision 131)
+++ trunk/grails-app/controllers/TaskProcedureController.groovy	(revision 131)
@@ -0,0 +1,99 @@
+import org.codehaus.groovy.grails.plugins.springsecurity.Secured
+
+class TaskProcedureController extends BaseAppAdminController {
+    
+    def index = { redirect(action:list,params:params) }
+
+    // the delete, save and update actions only accept POST requests
+    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
+
+    def list = {
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ taskProcedureInstanceList: TaskProcedure.list( params ), taskProcedureInstanceTotal: TaskProcedure.count() ]
+    }
+
+    def show = {
+        def taskProcedureInstance = TaskProcedure.get( params.id )
+
+        if(!taskProcedureInstance) {
+            flash.message = "TaskProcedure not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else { return [ taskProcedureInstance : taskProcedureInstance ] }
+    }
+
+    def delete = {
+        def taskProcedureInstance = TaskProcedure.get( params.id )
+        if(taskProcedureInstance) {
+            try {
+                taskProcedureInstance.delete()
+                flash.message = "TaskProcedure ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "TaskProcedure ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "TaskProcedure not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def edit = {
+        def taskProcedureInstance = TaskProcedure.get( params.id )
+
+        if(!taskProcedureInstance) {
+            flash.message = "TaskProcedure not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else {
+            return [ taskProcedureInstance : taskProcedureInstance ]
+        }
+    }
+
+    def update = {
+        def taskProcedureInstance = TaskProcedure.get( params.id )
+        if(taskProcedureInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(taskProcedureInstance.version > version) {
+                    
+                    taskProcedureInstance.errors.rejectValue("version", "taskProcedure.optimistic.locking.failure", "Another user has updated this TaskProcedure while you were editing.")
+                    render(view:'edit',model:[taskProcedureInstance:taskProcedureInstance])
+                    return
+                }
+            }
+            taskProcedureInstance.properties = params
+            if(!taskProcedureInstance.hasErrors() && taskProcedureInstance.save()) {
+                flash.message = "TaskProcedure ${params.id} updated"
+                redirect(action:show,id:taskProcedureInstance.id)
+            }
+            else {
+                render(view:'edit',model:[taskProcedureInstance:taskProcedureInstance])
+            }
+        }
+        else {
+            flash.message = "TaskProcedure not found with id ${params.id}"
+            redirect(action:edit,id:params.id)
+        }
+    }
+
+    def create = {
+        def taskProcedureInstance = new TaskProcedure()
+        taskProcedureInstance.properties = params
+        return ['taskProcedureInstance':taskProcedureInstance]
+    }
+
+    def save = {
+        def taskProcedureInstance = new TaskProcedure(params)
+        if(!taskProcedureInstance.hasErrors() && taskProcedureInstance.save()) {
+            flash.message = "TaskProcedure ${taskProcedureInstance.id} created"
+            redirect(action:show,id:taskProcedureInstance.id)
+        }
+        else {
+            render(view:'create',model:[taskProcedureInstance:taskProcedureInstance])
+        }
+    }
+}
Index: trunk/grails-app/controllers/TaskRecurringScheduleController.groovy
===================================================================
--- trunk/grails-app/controllers/TaskRecurringScheduleController.groovy	(revision 131)
+++ trunk/grails-app/controllers/TaskRecurringScheduleController.groovy	(revision 131)
@@ -0,0 +1,99 @@
+import org.codehaus.groovy.grails.plugins.springsecurity.Secured
+
+class TaskRecurringScheduleController extends BaseAppAdminController {
+    
+    def index = { redirect(action:list,params:params) }
+
+    // the delete, save and update actions only accept POST requests
+    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
+
+    def list = {
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ taskRecurringScheduleInstanceList: TaskRecurringSchedule.list( params ), taskRecurringScheduleInstanceTotal: TaskRecurringSchedule.count() ]
+    }
+
+    def show = {
+        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
+
+        if(!taskRecurringScheduleInstance) {
+            flash.message = "TaskRecurringSchedule not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else { return [ taskRecurringScheduleInstance : taskRecurringScheduleInstance ] }
+    }
+
+    def delete = {
+        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
+        if(taskRecurringScheduleInstance) {
+            try {
+                taskRecurringScheduleInstance.delete()
+                flash.message = "TaskRecurringSchedule ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "TaskRecurringSchedule ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "TaskRecurringSchedule not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def edit = {
+        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
+
+        if(!taskRecurringScheduleInstance) {
+            flash.message = "TaskRecurringSchedule not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else {
+            return [ taskRecurringScheduleInstance : taskRecurringScheduleInstance ]
+        }
+    }
+
+    def update = {
+        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
+        if(taskRecurringScheduleInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(taskRecurringScheduleInstance.version > version) {
+                    
+                    taskRecurringScheduleInstance.errors.rejectValue("version", "taskRecurringSchedule.optimistic.locking.failure", "Another user has updated this TaskRecurringSchedule while you were editing.")
+                    render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
+                    return
+                }
+            }
+            taskRecurringScheduleInstance.properties = params
+            if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save()) {
+                flash.message = "TaskRecurringSchedule ${params.id} updated"
+                redirect(action:show,id:taskRecurringScheduleInstance.id)
+            }
+            else {
+                render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
+            }
+        }
+        else {
+            flash.message = "TaskRecurringSchedule not found with id ${params.id}"
+            redirect(action:edit,id:params.id)
+        }
+    }
+
+    def create = {
+        def taskRecurringScheduleInstance = new TaskRecurringSchedule()
+        taskRecurringScheduleInstance.properties = params
+        return ['taskRecurringScheduleInstance':taskRecurringScheduleInstance]
+    }
+
+    def save = {
+        def taskRecurringScheduleInstance = new TaskRecurringSchedule(params)
+        if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save()) {
+            flash.message = "TaskRecurringSchedule ${taskRecurringScheduleInstance.id} created"
+            redirect(action:show,id:taskRecurringScheduleInstance.id)
+        }
+        else {
+            render(view:'create',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
+        }
+    }
+}
Index: trunk/grails-app/controllers/TaskRecurringScheduleDetailed.groovy
===================================================================
--- trunk/grails-app/controllers/TaskRecurringScheduleDetailed.groovy	(revision 130)
+++ 	(revision )
@@ -1,99 +1,0 @@
-import org.codehaus.groovy.grails.plugins.springsecurity.Secured
-
-class RecurringScheduleController extends BaseAppAdminController {
-    
-    def index = { redirect(action:list,params:params) }
-
-    // the delete, save and update actions only accept POST requests
-    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
-
-    def list = {
-        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
-        [ recurringScheduleInstanceList: RecurringSchedule.list( params ), recurringScheduleInstanceTotal: RecurringSchedule.count() ]
-    }
-
-    def show = {
-        def recurringScheduleInstance = RecurringSchedule.get( params.id )
-
-        if(!recurringScheduleInstance) {
-            flash.message = "RecurringSchedule not found with id ${params.id}"
-            redirect(action:list)
-        }
-        else { return [ recurringScheduleInstance : recurringScheduleInstance ] }
-    }
-
-    def delete = {
-        def recurringScheduleInstance = RecurringSchedule.get( params.id )
-        if(recurringScheduleInstance) {
-            try {
-                recurringScheduleInstance.delete()
-                flash.message = "RecurringSchedule ${params.id} deleted"
-                redirect(action:list)
-            }
-            catch(org.springframework.dao.DataIntegrityViolationException e) {
-                flash.message = "RecurringSchedule ${params.id} could not be deleted"
-                redirect(action:show,id:params.id)
-            }
-        }
-        else {
-            flash.message = "RecurringSchedule not found with id ${params.id}"
-            redirect(action:list)
-        }
-    }
-
-    def edit = {
-        def recurringScheduleInstance = RecurringSchedule.get( params.id )
-
-        if(!recurringScheduleInstance) {
-            flash.message = "RecurringSchedule not found with id ${params.id}"
-            redirect(action:list)
-        }
-        else {
-            return [ recurringScheduleInstance : recurringScheduleInstance ]
-        }
-    }
-
-    def update = {
-        def recurringScheduleInstance = RecurringSchedule.get( params.id )
-        if(recurringScheduleInstance) {
-            if(params.version) {
-                def version = params.version.toLong()
-                if(recurringScheduleInstance.version > version) {
-                    
-                    recurringScheduleInstance.errors.rejectValue("version", "recurringSchedule.optimistic.locking.failure", "Another user has updated this RecurringSchedule while you were editing.")
-                    render(view:'edit',model:[recurringScheduleInstance:recurringScheduleInstance])
-                    return
-                }
-            }
-            recurringScheduleInstance.properties = params
-            if(!recurringScheduleInstance.hasErrors() && recurringScheduleInstance.save()) {
-                flash.message = "RecurringSchedule ${params.id} updated"
-                redirect(action:show,id:recurringScheduleInstance.id)
-            }
-            else {
-                render(view:'edit',model:[recurringScheduleInstance:recurringScheduleInstance])
-            }
-        }
-        else {
-            flash.message = "RecurringSchedule not found with id ${params.id}"
-            redirect(action:edit,id:params.id)
-        }
-    }
-
-    def create = {
-        def recurringScheduleInstance = new RecurringSchedule()
-        recurringScheduleInstance.properties = params
-        return ['recurringScheduleInstance':recurringScheduleInstance]
-    }
-
-    def save = {
-        def recurringScheduleInstance = new RecurringSchedule(params)
-        if(!recurringScheduleInstance.hasErrors() && recurringScheduleInstance.save()) {
-            flash.message = "RecurringSchedule ${recurringScheduleInstance.id} created"
-            redirect(action:show,id:recurringScheduleInstance.id)
-        }
-        else {
-            render(view:'create',model:[recurringScheduleInstance:recurringScheduleInstance])
-        }
-    }
-}
Index: trunk/grails-app/controllers/TaskRecurringScheduleDetailedController.groovy
===================================================================
--- trunk/grails-app/controllers/TaskRecurringScheduleDetailedController.groovy	(revision 131)
+++ trunk/grails-app/controllers/TaskRecurringScheduleDetailedController.groovy	(revision 131)
@@ -0,0 +1,99 @@
+import org.codehaus.groovy.grails.plugins.springsecurity.Secured
+
+class TaskRecurringScheduleDetailedController extends BaseController {
+    
+    def index = { redirect(action:list,params:params) }
+
+    // the delete, save and update actions only accept POST requests
+    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
+
+    def list = {
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ taskRecurringScheduleInstanceList: TaskRecurringSchedule.list( params ), taskRecurringScheduleInstanceTotal: TaskRecurringSchedule.count() ]
+    }
+
+    def show = {
+        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
+
+        if(!taskRecurringScheduleInstance) {
+            flash.message = "TaskRecurringSchedule not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else { return [ taskRecurringScheduleInstance : taskRecurringScheduleInstance ] }
+    }
+
+    def delete = {
+        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
+        if(taskRecurringScheduleInstance) {
+            try {
+                taskRecurringScheduleInstance.delete()
+                flash.message = "TaskRecurringSchedule ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "TaskRecurringSchedule ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "TaskRecurringSchedule not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def edit = {
+        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
+
+        if(!taskRecurringScheduleInstance) {
+            flash.message = "TaskRecurringSchedule not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else {
+            return [ taskRecurringScheduleInstance : taskRecurringScheduleInstance ]
+        }
+    }
+
+    def update = {
+        def taskRecurringScheduleInstance = TaskRecurringSchedule.get( params.id )
+        if(taskRecurringScheduleInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(taskRecurringScheduleInstance.version > version) {
+                    
+                    taskRecurringScheduleInstance.errors.rejectValue("version", "taskRecurringSchedule.optimistic.locking.failure", "Another user has updated this TaskRecurringSchedule while you were editing.")
+                    render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
+                    return
+                }
+            }
+            taskRecurringScheduleInstance.properties = params
+            if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save()) {
+                flash.message = "TaskRecurringSchedule ${params.id} updated"
+                redirect(action:show,id:taskRecurringScheduleInstance.id)
+            }
+            else {
+                render(view:'edit',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
+            }
+        }
+        else {
+            flash.message = "TaskRecurringSchedule not found with id ${params.id}"
+            redirect(action:edit,id:params.id)
+        }
+    }
+
+    def create = {
+        def taskRecurringScheduleInstance = new TaskRecurringSchedule()
+        taskRecurringScheduleInstance.properties = params
+        return ['taskRecurringScheduleInstance':taskRecurringScheduleInstance]
+    }
+
+    def save = {
+        def taskRecurringScheduleInstance = new TaskRecurringSchedule(params)
+        if(!taskRecurringScheduleInstance.hasErrors() && taskRecurringScheduleInstance.save()) {
+            flash.message = "TaskRecurringSchedule ${taskRecurringScheduleInstance.id} created"
+            redirect(action:show,id:taskRecurringScheduleInstance.id)
+        }
+        else {
+            render(view:'create',model:[taskRecurringScheduleInstance:taskRecurringScheduleInstance])
+        }
+    }
+}
Index: trunk/grails-app/domain/Assembly.groovy
===================================================================
--- trunk/grails-app/domain/Assembly.groovy	(revision 130)
+++ trunk/grails-app/domain/Assembly.groovy	(revision 131)
@@ -1,8 +1,11 @@
 class Assembly {
+
+    AssetType assetType
+
     String name
     String description = ""
     boolean isActive = true
 
-    static hasMany = [assetTypes: AssetType, subAssemblies: SubAssembly, maintenanceActions: MaintenanceAction]
+    static hasMany = [subAssemblies: SubAssembly, maintenanceActions: MaintenanceAction]
 
     static belongsTo = [AssetType]
Index: trunk/grails-app/domain/Asset.groovy
===================================================================
--- trunk/grails-app/domain/Asset.groovy	(revision 130)
+++ trunk/grails-app/domain/Asset.groovy	(revision 131)
@@ -8,5 +8,6 @@
     boolean isActive = true
 
-    static hasMany = [maintenanceActions: MaintenanceAction, assetExtendedAttributes: AssetExtendedAttribute]
+    static hasMany = [maintenanceActions: MaintenanceAction, 
+                                    assetExtendedAttributes: AssetExtendedAttribute]
 
     static belongsTo = [SystemSection, AssetType]
Index: trunk/grails-app/domain/ComponentItem.groovy
===================================================================
--- trunk/grails-app/domain/ComponentItem.groovy	(revision 130)
+++ trunk/grails-app/domain/ComponentItem.groovy	(revision 131)
@@ -1,3 +1,5 @@
 class ComponentItem {
+
+    SubAssembly subAssembly
 
     String name
@@ -5,5 +7,5 @@
     boolean isActive = true
 
-    static hasMany = [subAssemblies: SubAssembly, maintenanceActions: MaintenanceAction]
+    static hasMany = [maintenanceActions: MaintenanceAction]
 
     static belongsTo = [SubAssembly]
Index: trunk/grails-app/domain/MaintenanceAction.groovy
===================================================================
--- trunk/grails-app/domain/MaintenanceAction.groovy	(revision 131)
+++ trunk/grails-app/domain/MaintenanceAction.groovy	(revision 131)
@@ -0,0 +1,36 @@
+class MaintenanceAction {
+
+    TaskProcedure taskProcedure
+    MaintenancePolicy maintenancePolicy
+    SystemSection systemSection
+    Asset asset
+    AssetType assetType
+    Assembly assembly
+    SubAssembly subAssembly
+    ComponentItem componentItem
+
+    String description
+    String reasoning = ""
+    Integer procedureStepNumber
+    boolean isActive = true
+
+//     static hasMany = []
+
+//     static belongsTo = []
+
+    static constraints = {
+        maintenancePolicy(blank:true, nullable:true)
+        systemSection(blank:true, nullable:true)
+        asset(blank:true, nullable:true)
+        assetType(blank:true, nullable:true)
+        assembly(blank:true, nullable:true)
+        subAssembly(blank:true, nullable:true)
+        componentItem(blank:true, nullable:true)
+        procedureStepNumber(blank:true, nullable:true)
+    }
+
+    String toString() {
+        "${this.description}"
+    }
+}
+
Index: trunk/grails-app/domain/Period.groovy
===================================================================
--- trunk/grails-app/domain/Period.groovy	(revision 130)
+++ trunk/grails-app/domain/Period.groovy	(revision 131)
@@ -1,7 +1,8 @@
 class Period {
+
     String period
     boolean isActive = true
 
-    static hasMany = [recurringSchedules: RecurringSchedule]
+    static hasMany = [taskRecurringSchedules: TaskRecurringSchedule]
 // 
 //     static belongsTo = []
Index: trunk/grails-app/domain/SubAssembly.groovy
===================================================================
--- trunk/grails-app/domain/SubAssembly.groovy	(revision 130)
+++ trunk/grails-app/domain/SubAssembly.groovy	(revision 131)
@@ -1,3 +1,5 @@
 class SubAssembly {
+
+    Assembly assembly
 
     String name
@@ -5,5 +7,6 @@
     boolean isActive = true
 
-    static hasMany = [assemblies: Assembly, componentItems: ComponentItem, maintenanceActions: MaintenanceAction]
+    static hasMany = [componentItems: ComponentItem,
+                                    maintenanceActions: MaintenanceAction]
 
     static belongsTo = [Assembly]
Index: trunk/grails-app/domain/Task.groovy
===================================================================
--- trunk/grails-app/domain/Task.groovy	(revision 130)
+++ trunk/grails-app/domain/Task.groovy	(revision 131)
@@ -8,5 +8,6 @@
     Person leadPerson
     Asset primaryAsset
-    RecurringSchedule recurringSchedule
+    TaskRecurringSchedule taskRecurringSchedule
+    TaskProcedure taskProcedure
 
     String description
@@ -25,16 +26,20 @@
                         inventoryMovements: InventoryMovement]
 
+    static mappedBy = [taskRecurringSchedule:"task"]
+
     static belongsTo = [TaskGroup, TaskStatus, Task, Person]
 
     static constraints = {
+        description(blank:false,maxSize:75)
+        comment()
         targetStartDate()
-        description(blank:false,maxSize:75)
+        targetCompletionDate()
         leadPerson()
         taskPriority()
         taskStatus()
         parentTask(blank: true, nullable:true)
-        comment()
         primaryAsset(blank: true, nullable:true)
-        recurringSchedule(blank: true, nullable:true)
+        taskRecurringSchedule(blank: true, nullable:true)
+        taskProcedure(blank: true, nullable:true)
         
     }
Index: trunk/grails-app/domain/TaskAction.groovy
===================================================================
--- trunk/grails-app/domain/TaskAction.groovy	(revision 130)
+++ 	(revision )
@@ -1,33 +1,0 @@
-class TaskAction {
-    Task task
-    MaintenancePolicy maintenancePolicy
-    SystemSection systemSection
-    Asset asset
-    AssetType assetType
-    Assembly assembly
-    SubAssembly subAssembly
-    ComponentItem componentItem
-    String action
-    String reasoning = ""
-    Integer stepNumber
-    boolean isActive = true
-
-//     static hasMany = []
-
-//     static belongsTo = []
-
-    static constraints = {
-        systemSection(blank:true, nullable:true)
-        asset(blank:true, nullable:true)
-        assetType(blank:true, nullable:true)
-        assembly(blank:true, nullable:true)
-        subAssembly(blank:true, nullable:true)
-        componentItem(blank:true, nullable:true)
-        stepNumber(blank:true, nullable:true)
-    }
-
-    String toString() {
-        "${this.action}"
-    }
-}
-
Index: trunk/grails-app/domain/TaskProcedure.groovy
===================================================================
--- trunk/grails-app/domain/TaskProcedure.groovy	(revision 131)
+++ trunk/grails-app/domain/TaskProcedure.groovy	(revision 131)
@@ -0,0 +1,19 @@
+class TaskProcedure {
+
+    String name
+    String description = ""
+    Boolean isActive = true
+
+    static hasMany = [tasks: Task, maintenanceActions: MaintenanceAction]
+
+//     static belongsTo = []
+
+    static constraints = {
+        name(maxSize:75,unique:true,blank:false)
+        description(maxSize:100)
+    }
+
+    String toString() {
+        "${this.name}"
+    }
+}
Index: trunk/grails-app/domain/TaskReccuringSchedule.groovy
===================================================================
--- trunk/grails-app/domain/TaskReccuringSchedule.groovy	(revision 130)
+++ 	(revision )
@@ -1,25 +1,0 @@
-class TaskRecurringSchedule {
-
-    Task task
-//     Task lastGeneratedSubTask
-    Period period
-
-    Integer recurEvery
-    Date startDate = new Date()
-    Date lastGeneratedDate
-    Date nextDueDate
-    boolean isActive = true
-
-//     static hasMany = []
-
-    static belongsTo = [Task]
-
-    static constraints = {
-//         lastGeneratedDate(blank:true, nullable:true)
-    }
-
-    String toString() {
-        "Recur every ${recurEvery} ${period}"
-    }
-}
-
Index: trunk/grails-app/domain/TaskRecurringSchedule.groovy
===================================================================
--- trunk/grails-app/domain/TaskRecurringSchedule.groovy	(revision 131)
+++ trunk/grails-app/domain/TaskRecurringSchedule.groovy	(revision 131)
@@ -0,0 +1,26 @@
+class TaskRecurringSchedule {
+
+    Task task
+    Task lastGeneratedSubTask
+    Period period
+
+    Integer recurEvery
+    Date startDate = new Date()
+    Date lastGeneratedDate
+    Date nextDueDate
+    boolean isEnabled = true
+
+//     static hasMany = []
+
+    static belongsTo = [Task]
+
+    static constraints = {
+        lastGeneratedDate(blank:true, nullable:true)
+        lastGeneratedSubTask(blank:true, nullable:true)
+    }
+
+    String toString() {
+        "Recur every ${recurEvery} ${period}"
+    }
+}
+
Index: trunk/grails-app/views/assembly/create.gsp
===================================================================
--- trunk/grails-app/views/assembly/create.gsp	(revision 130)
+++ trunk/grails-app/views/assembly/create.gsp	(revision 131)
@@ -26,4 +26,13 @@
                     <table>
                         <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="assetType">Asset Type:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assemblyInstance,field:'assetType','errors')}">
+                                    <g:select optionKey="id" from="${AssetType.list()}" name="assetType.id" value="${assemblyInstance?.assetType?.id}" ></g:select>
+                                </td>
+                            </tr> 
                         
                             <tr class="prop">
Index: trunk/grails-app/views/assembly/edit.gsp
===================================================================
--- trunk/grails-app/views/assembly/edit.gsp	(revision 130)
+++ trunk/grails-app/views/assembly/edit.gsp	(revision 131)
@@ -32,8 +32,8 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="assetTypes">Asset Types:</label>
+                                    <label for="assetType">Asset Type:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:assemblyInstance,field:'assetTypes','errors')}">
-                                    
+                                <td valign="top" class="value ${hasErrors(bean:assemblyInstance,field:'assetType','errors')}">
+                                    <g:select optionKey="id" from="${AssetType.list()}" name="assetType.id" value="${assemblyInstance?.assetType?.id}" ></g:select>
                                 </td>
                             </tr> 
@@ -87,8 +87,11 @@
                                 </td>
                                 <td valign="top" class="value ${hasErrors(bean:assemblyInstance,field:'subAssemblies','errors')}">
-                                    <g:select name="subAssemblies"
-from="${SubAssembly.list()}"
-size="5" multiple="yes" optionKey="id"
-value="${assemblyInstance?.subAssemblies}" />
+                                    
+<ul>
+<g:each var="s" in="${assemblyInstance?.subAssemblies?}">
+    <li><g:link controller="subAssembly" action="show" id="${s.id}">${s?.encodeAsHTML()}</g:link></li>
+</g:each>
+</ul>
+<g:link controller="subAssembly" params="['assembly.id':assemblyInstance?.id]" action="create">Add SubAssembly</g:link>
 
                                 </td>
Index: trunk/grails-app/views/assembly/list.gsp
===================================================================
--- trunk/grails-app/views/assembly/list.gsp	(revision 130)
+++ trunk/grails-app/views/assembly/list.gsp	(revision 131)
@@ -24,4 +24,6 @@
                    	        <g:sortableColumn property="id" title="Id" />
                         
+                   	        <th>Asset Type</th>
+                   	    
                    	        <g:sortableColumn property="description" title="Description" />
                         
@@ -37,4 +39,6 @@
                         
                             <td><g:link action="show" id="${assemblyInstance.id}">${fieldValue(bean:assemblyInstance, field:'id')}</g:link></td>
+                        
+                            <td>${fieldValue(bean:assemblyInstance, field:'assetType')}</td>
                         
                             <td>${fieldValue(bean:assemblyInstance, field:'description')}</td>
Index: trunk/grails-app/views/assembly/show.gsp
===================================================================
--- trunk/grails-app/views/assembly/show.gsp	(revision 130)
+++ trunk/grails-app/views/assembly/show.gsp	(revision 131)
@@ -31,13 +31,7 @@
                     
                         <tr class="prop">
-                            <td valign="top" class="name">Asset Types:</td>
+                            <td valign="top" class="name">Asset Type:</td>
                             
-                            <td  valign="top" style="text-align:left;" class="value">
-                                <ul>
-                                <g:each var="a" in="${assemblyInstance.assetTypes}">
-                                    <li><g:link controller="assetType" action="show" id="${a.id}">${a?.encodeAsHTML()}</g:link></li>
-                                </g:each>
-                                </ul>
-                            </td>
+                            <td valign="top" class="value"><g:link controller="assetType" action="show" id="${assemblyInstance?.assetType?.id}">${assemblyInstance?.assetType?.encodeAsHTML()}</g:link></td>
                             
                         </tr>
Index: trunk/grails-app/views/asset/create.gsp
===================================================================
--- trunk/grails-app/views/asset/create.gsp	(revision 130)
+++ trunk/grails-app/views/asset/create.gsp	(revision 131)
@@ -29,4 +29,13 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
+                                    <label for="name">Name:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetInstance,field:'name','errors')}">
+                                    <input type="text" id="name" name="name" value="${fieldValue(bean:assetInstance,field:'name')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
                                     <label for="assetType">Asset Type:</label>
                                 </td>
@@ -56,13 +65,4 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="name">Name:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:assetInstance,field:'name','errors')}">
-                                    <input type="text" id="name" name="name" value="${fieldValue(bean:assetInstance,field:'name')}"/>
-                                </td>
-                            </tr> 
-                        
-                            <tr class="prop">
-                                <td valign="top" class="name">
                                     <label for="systemSection">System Section:</label>
                                 </td>
Index: trunk/grails-app/views/asset/edit.gsp
===================================================================
--- trunk/grails-app/views/asset/edit.gsp	(revision 130)
+++ trunk/grails-app/views/asset/edit.gsp	(revision 131)
@@ -29,4 +29,13 @@
                     <table>
                         <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="name">Name:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:assetInstance,field:'name','errors')}">
+                                    <input type="text" id="name" name="name" value="${fieldValue(bean:assetInstance,field:'name')}"/>
+                                </td>
+                            </tr> 
                         
                             <tr class="prop">
@@ -91,13 +100,4 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="name">Name:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:assetInstance,field:'name','errors')}">
-                                    <input type="text" id="name" name="name" value="${fieldValue(bean:assetInstance,field:'name')}"/>
-                                </td>
-                            </tr> 
-                        
-                            <tr class="prop">
-                                <td valign="top" class="name">
                                     <label for="systemSection">System Section:</label>
                                 </td>
Index: trunk/grails-app/views/asset/list.gsp
===================================================================
--- trunk/grails-app/views/asset/list.gsp	(revision 130)
+++ trunk/grails-app/views/asset/list.gsp	(revision 131)
@@ -24,4 +24,6 @@
                    	        <g:sortableColumn property="id" title="Id" />
                         
+                   	        <g:sortableColumn property="name" title="Name" />
+                        
                    	        <th>Asset Type</th>
                    	    
@@ -29,6 +31,4 @@
                         
                    	        <g:sortableColumn property="isActive" title="Is Active" />
-                        
-                   	        <g:sortableColumn property="name" title="Name" />
                         
                    	        <th>System Section</th>
@@ -42,4 +42,6 @@
                             <td><g:link action="show" id="${assetInstance.id}">${fieldValue(bean:assetInstance, field:'id')}</g:link></td>
                         
+                            <td>${fieldValue(bean:assetInstance, field:'name')}</td>
+                        
                             <td>${fieldValue(bean:assetInstance, field:'assetType')}</td>
                         
@@ -47,6 +49,4 @@
                         
                             <td>${fieldValue(bean:assetInstance, field:'isActive')}</td>
-                        
-                            <td>${fieldValue(bean:assetInstance, field:'name')}</td>
                         
                             <td>${fieldValue(bean:assetInstance, field:'systemSection')}</td>
Index: trunk/grails-app/views/asset/show.gsp
===================================================================
--- trunk/grails-app/views/asset/show.gsp	(revision 130)
+++ trunk/grails-app/views/asset/show.gsp	(revision 131)
@@ -27,4 +27,11 @@
                             
                             <td valign="top" class="value">${fieldValue(bean:assetInstance, field:'id')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Name:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:assetInstance, field:'name')}</td>
                             
                         </tr>
@@ -78,11 +85,4 @@
                     
                         <tr class="prop">
-                            <td valign="top" class="name">Name:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:assetInstance, field:'name')}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
                             <td valign="top" class="name">System Section:</td>
                             
Index: trunk/grails-app/views/assetType/edit.gsp
===================================================================
--- trunk/grails-app/views/assetType/edit.gsp	(revision 130)
+++ trunk/grails-app/views/assetType/edit.gsp	(revision 131)
@@ -35,8 +35,11 @@
                                 </td>
                                 <td valign="top" class="value ${hasErrors(bean:assetTypeInstance,field:'assemblies','errors')}">
-                                    <g:select name="assemblies"
-from="${Assembly.list()}"
-size="5" multiple="yes" optionKey="id"
-value="${assetTypeInstance?.assemblies}" />
+                                    
+<ul>
+<g:each var="a" in="${assetTypeInstance?.assemblies?}">
+    <li><g:link controller="assembly" action="show" id="${a.id}">${a?.encodeAsHTML()}</g:link></li>
+</g:each>
+</ul>
+<g:link controller="assembly" params="['assetType.id':assetTypeInstance?.id]" action="create">Add Assembly</g:link>
 
                                 </td>
Index: trunk/grails-app/views/componentItem/create.gsp
===================================================================
--- trunk/grails-app/views/componentItem/create.gsp	(revision 130)
+++ trunk/grails-app/views/componentItem/create.gsp	(revision 131)
@@ -54,4 +54,13 @@
                             </tr> 
                         
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="subAssembly">Sub Assembly:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:componentItemInstance,field:'subAssembly','errors')}">
+                                    <g:select optionKey="id" from="${SubAssembly.list()}" name="subAssembly.id" value="${componentItemInstance?.subAssembly?.id}" ></g:select>
+                                </td>
+                            </tr> 
+                        
                         </tbody>
                     </table>
Index: trunk/grails-app/views/componentItem/edit.gsp
===================================================================
--- trunk/grails-app/views/componentItem/edit.gsp	(revision 130)
+++ trunk/grails-app/views/componentItem/edit.gsp	(revision 131)
@@ -75,8 +75,8 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="subAssemblies">Sub Assemblies:</label>
+                                    <label for="subAssembly">Sub Assembly:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:componentItemInstance,field:'subAssemblies','errors')}">
-                                    
+                                <td valign="top" class="value ${hasErrors(bean:componentItemInstance,field:'subAssembly','errors')}">
+                                    <g:select optionKey="id" from="${SubAssembly.list()}" name="subAssembly.id" value="${componentItemInstance?.subAssembly?.id}" ></g:select>
                                 </td>
                             </tr> 
Index: trunk/grails-app/views/componentItem/list.gsp
===================================================================
--- trunk/grails-app/views/componentItem/list.gsp	(revision 130)
+++ trunk/grails-app/views/componentItem/list.gsp	(revision 131)
@@ -30,4 +30,6 @@
                    	        <g:sortableColumn property="name" title="Name" />
                         
+                   	        <th>Sub Assembly</th>
+                   	    
                         </tr>
                     </thead>
@@ -44,4 +46,6 @@
                             <td>${fieldValue(bean:componentItemInstance, field:'name')}</td>
                         
+                            <td>${fieldValue(bean:componentItemInstance, field:'subAssembly')}</td>
+                        
                         </tr>
                     </g:each>
Index: trunk/grails-app/views/componentItem/show.gsp
===================================================================
--- trunk/grails-app/views/componentItem/show.gsp	(revision 130)
+++ trunk/grails-app/views/componentItem/show.gsp	(revision 131)
@@ -65,13 +65,7 @@
                     
                         <tr class="prop">
-                            <td valign="top" class="name">Sub Assemblies:</td>
+                            <td valign="top" class="name">Sub Assembly:</td>
                             
-                            <td  valign="top" style="text-align:left;" class="value">
-                                <ul>
-                                <g:each var="s" in="${componentItemInstance.subAssemblies}">
-                                    <li><g:link controller="subAssembly" action="show" id="${s.id}">${s?.encodeAsHTML()}</g:link></li>
-                                </g:each>
-                                </ul>
-                            </td>
+                            <td valign="top" class="value"><g:link controller="subAssembly" action="show" id="${componentItemInstance?.subAssembly?.id}">${componentItemInstance?.subAssembly?.encodeAsHTML()}</g:link></td>
                             
                         </tr>
Index: trunk/grails-app/views/maintenanceAction/create.gsp
===================================================================
--- trunk/grails-app/views/maintenanceAction/create.gsp	(revision 131)
+++ trunk/grails-app/views/maintenanceAction/create.gsp	(revision 131)
@@ -0,0 +1,146 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Create MaintenanceAction</title>         
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">MaintenanceAction List</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Create MaintenanceAction</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${maintenanceActionInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${maintenanceActionInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form action="save" method="post" >
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="maintenancePolicy">Maintenance Policy:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'maintenancePolicy','errors')}">
+                                    <g:select optionKey="id" from="${MaintenancePolicy.list()}" name="maintenancePolicy.id" value="${maintenanceActionInstance?.maintenancePolicy?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="systemSection">System Section:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'systemSection','errors')}">
+                                    <g:select optionKey="id" from="${SystemSection.list()}" name="systemSection.id" value="${maintenanceActionInstance?.systemSection?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="asset">Asset:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'asset','errors')}">
+                                    <g:select optionKey="id" from="${Asset.list()}" name="asset.id" value="${maintenanceActionInstance?.asset?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="assetType">Asset Type:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'assetType','errors')}">
+                                    <g:select optionKey="id" from="${AssetType.list()}" name="assetType.id" value="${maintenanceActionInstance?.assetType?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="assembly">Assembly:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'assembly','errors')}">
+                                    <g:select optionKey="id" from="${Assembly.list()}" name="assembly.id" value="${maintenanceActionInstance?.assembly?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="subAssembly">Sub Assembly:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'subAssembly','errors')}">
+                                    <g:select optionKey="id" from="${SubAssembly.list()}" name="subAssembly.id" value="${maintenanceActionInstance?.subAssembly?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="componentItem">Component Item:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'componentItem','errors')}">
+                                    <g:select optionKey="id" from="${ComponentItem.list()}" name="componentItem.id" value="${maintenanceActionInstance?.componentItem?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="procedureStepNumber">Procedure Step Number:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'procedureStepNumber','errors')}">
+                                    <input type="text" id="procedureStepNumber" name="procedureStepNumber" value="${fieldValue(bean:maintenanceActionInstance,field:'procedureStepNumber')}" />
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="description">Description:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'description','errors')}">
+                                    <input type="text" id="description" name="description" value="${fieldValue(bean:maintenanceActionInstance,field:'description')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="isActive">Is Active:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'isActive','errors')}">
+                                    <g:checkBox name="isActive" value="${maintenanceActionInstance?.isActive}" ></g:checkBox>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="reasoning">Reasoning:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'reasoning','errors')}">
+                                    <input type="text" id="reasoning" name="reasoning" value="${fieldValue(bean:maintenanceActionInstance,field:'reasoning')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="taskProcedure">Task Procedure:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'taskProcedure','errors')}">
+                                    <g:select optionKey="id" from="${TaskProcedure.list()}" name="taskProcedure.id" value="${maintenanceActionInstance?.taskProcedure?.id}" ></g:select>
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><input class="save" type="submit" value="Create" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/maintenanceAction/edit.gsp
===================================================================
--- trunk/grails-app/views/maintenanceAction/edit.gsp	(revision 131)
+++ trunk/grails-app/views/maintenanceAction/edit.gsp	(revision 131)
@@ -0,0 +1,150 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Edit MaintenanceAction</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">MaintenanceAction List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New MaintenanceAction</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Edit MaintenanceAction</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${maintenanceActionInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${maintenanceActionInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form method="post" >
+                <input type="hidden" name="id" value="${maintenanceActionInstance?.id}" />
+                <input type="hidden" name="version" value="${maintenanceActionInstance?.version}" />
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="maintenancePolicy">Maintenance Policy:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'maintenancePolicy','errors')}">
+                                    <g:select optionKey="id" from="${MaintenancePolicy.list()}" name="maintenancePolicy.id" value="${maintenanceActionInstance?.maintenancePolicy?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="systemSection">System Section:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'systemSection','errors')}">
+                                    <g:select optionKey="id" from="${SystemSection.list()}" name="systemSection.id" value="${maintenanceActionInstance?.systemSection?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="asset">Asset:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'asset','errors')}">
+                                    <g:select optionKey="id" from="${Asset.list()}" name="asset.id" value="${maintenanceActionInstance?.asset?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="assetType">Asset Type:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'assetType','errors')}">
+                                    <g:select optionKey="id" from="${AssetType.list()}" name="assetType.id" value="${maintenanceActionInstance?.assetType?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="assembly">Assembly:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'assembly','errors')}">
+                                    <g:select optionKey="id" from="${Assembly.list()}" name="assembly.id" value="${maintenanceActionInstance?.assembly?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="subAssembly">Sub Assembly:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'subAssembly','errors')}">
+                                    <g:select optionKey="id" from="${SubAssembly.list()}" name="subAssembly.id" value="${maintenanceActionInstance?.subAssembly?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="componentItem">Component Item:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'componentItem','errors')}">
+                                    <g:select optionKey="id" from="${ComponentItem.list()}" name="componentItem.id" value="${maintenanceActionInstance?.componentItem?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="procedureStepNumber">Procedure Step Number:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'procedureStepNumber','errors')}">
+                                    <input type="text" id="procedureStepNumber" name="procedureStepNumber" value="${fieldValue(bean:maintenanceActionInstance,field:'procedureStepNumber')}" />
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="description">Description:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'description','errors')}">
+                                    <input type="text" id="description" name="description" value="${fieldValue(bean:maintenanceActionInstance,field:'description')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="isActive">Is Active:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'isActive','errors')}">
+                                    <g:checkBox name="isActive" value="${maintenanceActionInstance?.isActive}" ></g:checkBox>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="reasoning">Reasoning:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'reasoning','errors')}">
+                                    <input type="text" id="reasoning" name="reasoning" value="${fieldValue(bean:maintenanceActionInstance,field:'reasoning')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="taskProcedure">Task Procedure:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:maintenanceActionInstance,field:'taskProcedure','errors')}">
+                                    <g:select optionKey="id" from="${TaskProcedure.list()}" name="taskProcedure.id" value="${maintenanceActionInstance?.taskProcedure?.id}" ></g:select>
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><g:actionSubmit class="save" value="Update" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/maintenanceAction/list.gsp
===================================================================
--- trunk/grails-app/views/maintenanceAction/list.gsp	(revision 131)
+++ trunk/grails-app/views/maintenanceAction/list.gsp	(revision 131)
@@ -0,0 +1,64 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>MaintenanceAction List</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="create" action="create">New MaintenanceAction</g:link></span>
+        </div>
+        <div class="body">
+            <h1>MaintenanceAction List</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <div class="list">
+                <table>
+                    <thead>
+                        <tr>
+                        
+                   	        <g:sortableColumn property="id" title="Id" />
+                        
+                   	        <th>Maintenance Policy</th>
+                   	    
+                   	        <th>System Section</th>
+                   	    
+                   	        <th>Asset</th>
+                   	    
+                   	        <th>Asset Type</th>
+                   	    
+                   	        <th>Assembly</th>
+                   	    
+                        </tr>
+                    </thead>
+                    <tbody>
+                    <g:each in="${maintenanceActionInstanceList}" status="i" var="maintenanceActionInstance">
+                        <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
+                        
+                            <td><g:link action="show" id="${maintenanceActionInstance.id}">${fieldValue(bean:maintenanceActionInstance, field:'id')}</g:link></td>
+                        
+                            <td>${fieldValue(bean:maintenanceActionInstance, field:'maintenancePolicy')}</td>
+                        
+                            <td>${fieldValue(bean:maintenanceActionInstance, field:'systemSection')}</td>
+                        
+                            <td>${fieldValue(bean:maintenanceActionInstance, field:'asset')}</td>
+                        
+                            <td>${fieldValue(bean:maintenanceActionInstance, field:'assetType')}</td>
+                        
+                            <td>${fieldValue(bean:maintenanceActionInstance, field:'assembly')}</td>
+                        
+                        </tr>
+                    </g:each>
+                    </tbody>
+                </table>
+            </div>
+            <div class="paginateButtons">
+                <g:paginate total="${maintenanceActionInstanceTotal}" />
+            </div>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/maintenanceAction/show.gsp
===================================================================
--- trunk/grails-app/views/maintenanceAction/show.gsp	(revision 131)
+++ trunk/grails-app/views/maintenanceAction/show.gsp	(revision 131)
@@ -0,0 +1,128 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Show MaintenanceAction</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">MaintenanceAction List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New MaintenanceAction</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Show MaintenanceAction</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <div class="dialog">
+                <table>
+                    <tbody>
+
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Id:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:maintenanceActionInstance, field:'id')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Maintenance Policy:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="maintenancePolicy" action="show" id="${maintenanceActionInstance?.maintenancePolicy?.id}">${maintenanceActionInstance?.maintenancePolicy?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">System Section:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="systemSection" action="show" id="${maintenanceActionInstance?.systemSection?.id}">${maintenanceActionInstance?.systemSection?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Asset:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="asset" action="show" id="${maintenanceActionInstance?.asset?.id}">${maintenanceActionInstance?.asset?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Asset Type:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="assetType" action="show" id="${maintenanceActionInstance?.assetType?.id}">${maintenanceActionInstance?.assetType?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Assembly:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="assembly" action="show" id="${maintenanceActionInstance?.assembly?.id}">${maintenanceActionInstance?.assembly?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Sub Assembly:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="subAssembly" action="show" id="${maintenanceActionInstance?.subAssembly?.id}">${maintenanceActionInstance?.subAssembly?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Component Item:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="componentItem" action="show" id="${maintenanceActionInstance?.componentItem?.id}">${maintenanceActionInstance?.componentItem?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Procedure Step Number:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:maintenanceActionInstance, field:'procedureStepNumber')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Description:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:maintenanceActionInstance, field:'description')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Is Active:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:maintenanceActionInstance, field:'isActive')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Reasoning:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:maintenanceActionInstance, field:'reasoning')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Task Procedure:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="taskProcedure" action="show" id="${maintenanceActionInstance?.taskProcedure?.id}">${maintenanceActionInstance?.taskProcedure?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                    </tbody>
+                </table>
+            </div>
+            <div class="buttons">
+                <g:form>
+                    <input type="hidden" name="id" value="${maintenanceActionInstance?.id}" />
+                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </g:form>
+            </div>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/subAssembly/create.gsp
===================================================================
--- trunk/grails-app/views/subAssembly/create.gsp	(revision 130)
+++ trunk/grails-app/views/subAssembly/create.gsp	(revision 131)
@@ -26,4 +26,13 @@
                     <table>
                         <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="assembly">Assembly:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:subAssemblyInstance,field:'assembly','errors')}">
+                                    <g:select optionKey="id" from="${Assembly.list()}" name="assembly.id" value="${subAssemblyInstance?.assembly?.id}" ></g:select>
+                                </td>
+                            </tr> 
                         
                             <tr class="prop">
Index: trunk/grails-app/views/subAssembly/edit.gsp
===================================================================
--- trunk/grails-app/views/subAssembly/edit.gsp	(revision 130)
+++ trunk/grails-app/views/subAssembly/edit.gsp	(revision 131)
@@ -32,8 +32,8 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="assemblies">Assemblies:</label>
+                                    <label for="assembly">Assembly:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:subAssemblyInstance,field:'assemblies','errors')}">
-                                    
+                                <td valign="top" class="value ${hasErrors(bean:subAssemblyInstance,field:'assembly','errors')}">
+                                    <g:select optionKey="id" from="${Assembly.list()}" name="assembly.id" value="${subAssemblyInstance?.assembly?.id}" ></g:select>
                                 </td>
                             </tr> 
@@ -44,8 +44,11 @@
                                 </td>
                                 <td valign="top" class="value ${hasErrors(bean:subAssemblyInstance,field:'componentItems','errors')}">
-                                    <g:select name="componentItems"
-from="${ComponentItem.list()}"
-size="5" multiple="yes" optionKey="id"
-value="${subAssemblyInstance?.componentItems}" />
+                                    
+<ul>
+<g:each var="c" in="${subAssemblyInstance?.componentItems?}">
+    <li><g:link controller="componentItem" action="show" id="${c.id}">${c?.encodeAsHTML()}</g:link></li>
+</g:each>
+</ul>
+<g:link controller="componentItem" params="['subAssembly.id':subAssemblyInstance?.id]" action="create">Add ComponentItem</g:link>
 
                                 </td>
Index: trunk/grails-app/views/subAssembly/list.gsp
===================================================================
--- trunk/grails-app/views/subAssembly/list.gsp	(revision 130)
+++ trunk/grails-app/views/subAssembly/list.gsp	(revision 131)
@@ -24,4 +24,6 @@
                    	        <g:sortableColumn property="id" title="Id" />
                         
+                   	        <th>Assembly</th>
+                   	    
                    	        <g:sortableColumn property="description" title="Description" />
                         
@@ -37,4 +39,6 @@
                         
                             <td><g:link action="show" id="${subAssemblyInstance.id}">${fieldValue(bean:subAssemblyInstance, field:'id')}</g:link></td>
+                        
+                            <td>${fieldValue(bean:subAssemblyInstance, field:'assembly')}</td>
                         
                             <td>${fieldValue(bean:subAssemblyInstance, field:'description')}</td>
Index: trunk/grails-app/views/subAssembly/show.gsp
===================================================================
--- trunk/grails-app/views/subAssembly/show.gsp	(revision 130)
+++ trunk/grails-app/views/subAssembly/show.gsp	(revision 131)
@@ -31,13 +31,7 @@
                     
                         <tr class="prop">
-                            <td valign="top" class="name">Assemblies:</td>
+                            <td valign="top" class="name">Assembly:</td>
                             
-                            <td  valign="top" style="text-align:left;" class="value">
-                                <ul>
-                                <g:each var="a" in="${subAssemblyInstance.assemblies}">
-                                    <li><g:link controller="assembly" action="show" id="${a.id}">${a?.encodeAsHTML()}</g:link></li>
-                                </g:each>
-                                </ul>
-                            </td>
+                            <td valign="top" class="value"><g:link controller="assembly" action="show" id="${subAssemblyInstance?.assembly?.id}">${subAssemblyInstance?.assembly?.encodeAsHTML()}</g:link></td>
                             
                         </tr>
Index: trunk/grails-app/views/task/create.gsp
===================================================================
--- trunk/grails-app/views/task/create.gsp	(revision 130)
+++ trunk/grails-app/views/task/create.gsp	(revision 131)
@@ -29,4 +29,22 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
+                                    <label for="description">Description:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'description','errors')}">
+                                    <input type="text" maxlength="75" id="description" name="description" value="${fieldValue(bean:taskInstance,field:'description')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="comment">Comment:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'comment','errors')}">
+                                    <input type="text" id="comment" name="comment" value="${fieldValue(bean:taskInstance,field:'comment')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
                                     <label for="targetStartDate">Target Start Date:</label>
                                 </td>
@@ -38,8 +56,8 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="description">Description:</label>
+                                    <label for="targetCompletionDate">Target Completion Date:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'description','errors')}">
-                                    <input type="text" maxlength="75" id="description" name="description" value="${fieldValue(bean:taskInstance,field:'description')}"/>
+                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'targetCompletionDate','errors')}">
+                                    <g:datePicker name="targetCompletionDate" value="${taskInstance?.targetCompletionDate}" ></g:datePicker>
                                 </td>
                             </tr> 
@@ -83,8 +101,8 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="comment">Comment:</label>
+                                    <label for="primaryAsset">Primary Asset:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'comment','errors')}">
-                                    <input type="text" id="comment" name="comment" value="${fieldValue(bean:taskInstance,field:'comment')}"/>
+                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'primaryAsset','errors')}">
+                                    <g:select optionKey="id" from="${Asset.list()}" name="primaryAsset.id" value="${taskInstance?.primaryAsset?.id}" noSelection="['null':'']"></g:select>
                                 </td>
                             </tr> 
@@ -92,8 +110,17 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="primaryAsset">Primary Asset:</label>
+                                    <label for="taskRecurringSchedule">Task Recurring Schedule:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'primaryAsset','errors')}">
-                                    <g:select optionKey="id" from="${Asset.list()}" name="primaryAsset.id" value="${taskInstance?.primaryAsset?.id}" noSelection="['null':'']"></g:select>
+                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'taskRecurringSchedule','errors')}">
+                                    <g:select optionKey="id" from="${TaskRecurringSchedule.list()}" name="taskRecurringSchedule.id" value="${taskInstance?.taskRecurringSchedule?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="taskProcedure">Task Procedure:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'taskProcedure','errors')}">
+                                    <g:select optionKey="id" from="${TaskProcedure.list()}" name="taskProcedure.id" value="${taskInstance?.taskProcedure?.id}" noSelection="['null':'']"></g:select>
                                 </td>
                             </tr> 
@@ -128,22 +155,4 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="recurringSchedule">Recurring Schedule:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'recurringSchedule','errors')}">
-                                    <g:select optionKey="id" from="${RecurringSchedule.list()}" name="recurringSchedule.id" value="${taskInstance?.recurringSchedule?.id}" ></g:select>
-                                </td>
-                            </tr> 
-                        
-                            <tr class="prop">
-                                <td valign="top" class="name">
-                                    <label for="targetCompletionDate">Target Completion Date:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'targetCompletionDate','errors')}">
-                                    <g:datePicker name="targetCompletionDate" value="${taskInstance?.targetCompletionDate}" ></g:datePicker>
-                                </td>
-                            </tr> 
-                        
-                            <tr class="prop">
-                                <td valign="top" class="name">
                                     <label for="taskGroup">Task Group:</label>
                                 </td>
Index: trunk/grails-app/views/task/edit.gsp
===================================================================
--- trunk/grails-app/views/task/edit.gsp	(revision 130)
+++ trunk/grails-app/views/task/edit.gsp	(revision 131)
@@ -32,4 +32,22 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
+                                    <label for="description">Description:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'description','errors')}">
+                                    <input type="text" maxlength="75" id="description" name="description" value="${fieldValue(bean:taskInstance,field:'description')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="comment">Comment:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'comment','errors')}">
+                                    <input type="text" id="comment" name="comment" value="${fieldValue(bean:taskInstance,field:'comment')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
                                     <label for="targetStartDate">Target Start Date:</label>
                                 </td>
@@ -41,8 +59,8 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="description">Description:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'description','errors')}">
-                                    <input type="text" maxlength="75" id="description" name="description" value="${fieldValue(bean:taskInstance,field:'description')}"/>
+                                    <label for="targetCompletionDate">Target Completion Date:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'targetCompletionDate','errors')}">
+                                    <g:datePicker name="targetCompletionDate" value="${taskInstance?.targetCompletionDate}" ></g:datePicker>
                                 </td>
                             </tr> 
@@ -86,17 +104,26 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="comment">Comment:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'comment','errors')}">
-                                    <input type="text" id="comment" name="comment" value="${fieldValue(bean:taskInstance,field:'comment')}"/>
-                                </td>
-                            </tr> 
-                        
-                            <tr class="prop">
-                                <td valign="top" class="name">
                                     <label for="primaryAsset">Primary Asset:</label>
                                 </td>
                                 <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'primaryAsset','errors')}">
                                     <g:select optionKey="id" from="${Asset.list()}" name="primaryAsset.id" value="${taskInstance?.primaryAsset?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="taskRecurringSchedule">Task Recurring Schedule:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'taskRecurringSchedule','errors')}">
+                                    <g:select optionKey="id" from="${TaskRecurringSchedule.list()}" name="taskRecurringSchedule.id" value="${taskInstance?.taskRecurringSchedule?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="taskProcedure">Task Procedure:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'taskProcedure','errors')}">
+                                    <g:select optionKey="id" from="${TaskProcedure.list()}" name="taskProcedure.id" value="${taskInstance?.taskProcedure?.id}" noSelection="['null':'']"></g:select>
                                 </td>
                             </tr> 
@@ -192,13 +219,4 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="recurringSchedule">Recurring Schedule:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'recurringSchedule','errors')}">
-                                    <g:select optionKey="id" from="${RecurringSchedule.list()}" name="recurringSchedule.id" value="${taskInstance?.recurringSchedule?.id}" ></g:select>
-                                </td>
-                            </tr> 
-                        
-                            <tr class="prop">
-                                <td valign="top" class="name">
                                     <label for="subTasks">Sub Tasks:</label>
                                 </td>
@@ -212,13 +230,4 @@
 <g:link controller="task" params="['task.id':taskInstance?.id]" action="create">Add Task</g:link>
 
-                                </td>
-                            </tr> 
-                        
-                            <tr class="prop">
-                                <td valign="top" class="name">
-                                    <label for="targetCompletionDate">Target Completion Date:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'targetCompletionDate','errors')}">
-                                    <g:datePicker name="targetCompletionDate" value="${taskInstance?.targetCompletionDate}" ></g:datePicker>
                                 </td>
                             </tr> 
Index: trunk/grails-app/views/task/list.gsp
===================================================================
--- trunk/grails-app/views/task/list.gsp	(revision 130)
+++ trunk/grails-app/views/task/list.gsp	(revision 131)
@@ -24,13 +24,13 @@
                    	        <g:sortableColumn property="id" title="Id" />
                         
+                   	        <g:sortableColumn property="description" title="Description" />
+                        
+                   	        <g:sortableColumn property="comment" title="Comment" />
+                        
                    	        <g:sortableColumn property="targetStartDate" title="Target Start Date" />
                         
-                   	        <g:sortableColumn property="description" title="Description" />
+                   	        <g:sortableColumn property="targetCompletionDate" title="Target Completion Date" />
                         
                    	        <th>Lead Person</th>
-                   	    
-                   	        <th>Task Priority</th>
-                   	    
-                   	        <th>Task Status</th>
                    	    
                         </tr>
@@ -42,13 +42,13 @@
                             <td><g:link action="show" id="${taskInstance.id}">${fieldValue(bean:taskInstance, field:'id')}</g:link></td>
                         
+                            <td>${fieldValue(bean:taskInstance, field:'description')}</td>
+                        
+                            <td>${fieldValue(bean:taskInstance, field:'comment')}</td>
+                        
                             <td>${fieldValue(bean:taskInstance, field:'targetStartDate')}</td>
                         
-                            <td>${fieldValue(bean:taskInstance, field:'description')}</td>
+                            <td>${fieldValue(bean:taskInstance, field:'targetCompletionDate')}</td>
                         
                             <td>${fieldValue(bean:taskInstance, field:'leadPerson')}</td>
-                        
-                            <td>${fieldValue(bean:taskInstance, field:'taskPriority')}</td>
-                        
-                            <td>${fieldValue(bean:taskInstance, field:'taskStatus')}</td>
                         
                         </tr>
Index: trunk/grails-app/views/task/show.gsp
===================================================================
--- trunk/grails-app/views/task/show.gsp	(revision 130)
+++ trunk/grails-app/views/task/show.gsp	(revision 131)
@@ -31,4 +31,18 @@
                     
                         <tr class="prop">
+                            <td valign="top" class="name">Description:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'description')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Comment:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'comment')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
                             <td valign="top" class="name">Target Start Date:</td>
                             
@@ -38,7 +52,7 @@
                     
                         <tr class="prop">
-                            <td valign="top" class="name">Description:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'description')}</td>
+                            <td valign="top" class="name">Target Completion Date:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'targetCompletionDate')}</td>
                             
                         </tr>
@@ -73,14 +87,21 @@
                     
                         <tr class="prop">
-                            <td valign="top" class="name">Comment:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'comment')}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
                             <td valign="top" class="name">Primary Asset:</td>
                             
                             <td valign="top" class="value"><g:link controller="asset" action="show" id="${taskInstance?.primaryAsset?.id}">${taskInstance?.primaryAsset?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Task Recurring Schedule:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="taskRecurringSchedule" action="show" id="${taskInstance?.taskRecurringSchedule?.id}">${taskInstance?.taskRecurringSchedule?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Task Procedure:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="taskProcedure" action="show" id="${taskInstance?.taskProcedure?.id}">${taskInstance?.taskProcedure?.encodeAsHTML()}</g:link></td>
                             
                         </tr>
@@ -160,11 +181,4 @@
                     
                         <tr class="prop">
-                            <td valign="top" class="name">Recurring Schedule:</td>
-                            
-                            <td valign="top" class="value"><g:link controller="recurringSchedule" action="show" id="${taskInstance?.recurringSchedule?.id}">${taskInstance?.recurringSchedule?.encodeAsHTML()}</g:link></td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
                             <td valign="top" class="name">Sub Tasks:</td>
                             
@@ -176,11 +190,4 @@
                                 </ul>
                             </td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Target Completion Date:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'targetCompletionDate')}</td>
                             
                         </tr>
Index: trunk/grails-app/views/taskAction/create.gsp
===================================================================
--- trunk/grails-app/views/taskAction/create.gsp	(revision 131)
+++ trunk/grails-app/views/taskAction/create.gsp	(revision 131)
@@ -0,0 +1,146 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Create TaskAction</title>         
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">TaskAction List</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Create TaskAction</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${taskActionInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${taskActionInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form action="save" method="post" >
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="systemSection">System Section:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'systemSection','errors')}">
+                                    <g:select optionKey="id" from="${SystemSection.list()}" name="systemSection.id" value="${taskActionInstance?.systemSection?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="asset">Asset:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'asset','errors')}">
+                                    <g:select optionKey="id" from="${Asset.list()}" name="asset.id" value="${taskActionInstance?.asset?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="assetType">Asset Type:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'assetType','errors')}">
+                                    <g:select optionKey="id" from="${AssetType.list()}" name="assetType.id" value="${taskActionInstance?.assetType?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="assembly">Assembly:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'assembly','errors')}">
+                                    <g:select optionKey="id" from="${Assembly.list()}" name="assembly.id" value="${taskActionInstance?.assembly?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="subAssembly">Sub Assembly:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'subAssembly','errors')}">
+                                    <g:select optionKey="id" from="${SubAssembly.list()}" name="subAssembly.id" value="${taskActionInstance?.subAssembly?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="componentItem">Component Item:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'componentItem','errors')}">
+                                    <g:select optionKey="id" from="${ComponentItem.list()}" name="componentItem.id" value="${taskActionInstance?.componentItem?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="stepNumber">Step Number:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'stepNumber','errors')}">
+                                    <input type="text" id="stepNumber" name="stepNumber" value="${fieldValue(bean:taskActionInstance,field:'stepNumber')}" />
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="action">Action:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'action','errors')}">
+                                    <input type="text" id="action" name="action" value="${fieldValue(bean:taskActionInstance,field:'action')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="isActive">Is Active:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'isActive','errors')}">
+                                    <g:checkBox name="isActive" value="${taskActionInstance?.isActive}" ></g:checkBox>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="maintenancePolicy">Maintenance Policy:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'maintenancePolicy','errors')}">
+                                    <g:select optionKey="id" from="${MaintenancePolicy.list()}" name="maintenancePolicy.id" value="${taskActionInstance?.maintenancePolicy?.id}" ></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="reasoning">Reasoning:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'reasoning','errors')}">
+                                    <input type="text" id="reasoning" name="reasoning" value="${fieldValue(bean:taskActionInstance,field:'reasoning')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="task">Task:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'task','errors')}">
+                                    <g:select optionKey="id" from="${Task.list()}" name="task.id" value="${taskActionInstance?.task?.id}" ></g:select>
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><input class="save" type="submit" value="Create" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/taskAction/edit.gsp
===================================================================
--- trunk/grails-app/views/taskAction/edit.gsp	(revision 131)
+++ trunk/grails-app/views/taskAction/edit.gsp	(revision 131)
@@ -0,0 +1,150 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Edit TaskAction</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">TaskAction List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New TaskAction</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Edit TaskAction</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${taskActionInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${taskActionInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form method="post" >
+                <input type="hidden" name="id" value="${taskActionInstance?.id}" />
+                <input type="hidden" name="version" value="${taskActionInstance?.version}" />
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="systemSection">System Section:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'systemSection','errors')}">
+                                    <g:select optionKey="id" from="${SystemSection.list()}" name="systemSection.id" value="${taskActionInstance?.systemSection?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="asset">Asset:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'asset','errors')}">
+                                    <g:select optionKey="id" from="${Asset.list()}" name="asset.id" value="${taskActionInstance?.asset?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="assetType">Asset Type:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'assetType','errors')}">
+                                    <g:select optionKey="id" from="${AssetType.list()}" name="assetType.id" value="${taskActionInstance?.assetType?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="assembly">Assembly:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'assembly','errors')}">
+                                    <g:select optionKey="id" from="${Assembly.list()}" name="assembly.id" value="${taskActionInstance?.assembly?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="subAssembly">Sub Assembly:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'subAssembly','errors')}">
+                                    <g:select optionKey="id" from="${SubAssembly.list()}" name="subAssembly.id" value="${taskActionInstance?.subAssembly?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="componentItem">Component Item:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'componentItem','errors')}">
+                                    <g:select optionKey="id" from="${ComponentItem.list()}" name="componentItem.id" value="${taskActionInstance?.componentItem?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="stepNumber">Step Number:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'stepNumber','errors')}">
+                                    <input type="text" id="stepNumber" name="stepNumber" value="${fieldValue(bean:taskActionInstance,field:'stepNumber')}" />
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="action">Action:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'action','errors')}">
+                                    <input type="text" id="action" name="action" value="${fieldValue(bean:taskActionInstance,field:'action')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="isActive">Is Active:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'isActive','errors')}">
+                                    <g:checkBox name="isActive" value="${taskActionInstance?.isActive}" ></g:checkBox>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="maintenancePolicy">Maintenance Policy:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'maintenancePolicy','errors')}">
+                                    <g:select optionKey="id" from="${MaintenancePolicy.list()}" name="maintenancePolicy.id" value="${taskActionInstance?.maintenancePolicy?.id}" ></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="reasoning">Reasoning:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'reasoning','errors')}">
+                                    <input type="text" id="reasoning" name="reasoning" value="${fieldValue(bean:taskActionInstance,field:'reasoning')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="task">Task:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskActionInstance,field:'task','errors')}">
+                                    <g:select optionKey="id" from="${Task.list()}" name="task.id" value="${taskActionInstance?.task?.id}" ></g:select>
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><g:actionSubmit class="save" value="Update" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/taskAction/list.gsp
===================================================================
--- trunk/grails-app/views/taskAction/list.gsp	(revision 131)
+++ trunk/grails-app/views/taskAction/list.gsp	(revision 131)
@@ -0,0 +1,64 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>TaskAction List</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="create" action="create">New TaskAction</g:link></span>
+        </div>
+        <div class="body">
+            <h1>TaskAction List</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <div class="list">
+                <table>
+                    <thead>
+                        <tr>
+                        
+                   	        <g:sortableColumn property="id" title="Id" />
+                        
+                   	        <th>System Section</th>
+                   	    
+                   	        <th>Asset</th>
+                   	    
+                   	        <th>Asset Type</th>
+                   	    
+                   	        <th>Assembly</th>
+                   	    
+                   	        <th>Sub Assembly</th>
+                   	    
+                        </tr>
+                    </thead>
+                    <tbody>
+                    <g:each in="${taskActionInstanceList}" status="i" var="taskActionInstance">
+                        <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
+                        
+                            <td><g:link action="show" id="${taskActionInstance.id}">${fieldValue(bean:taskActionInstance, field:'id')}</g:link></td>
+                        
+                            <td>${fieldValue(bean:taskActionInstance, field:'systemSection')}</td>
+                        
+                            <td>${fieldValue(bean:taskActionInstance, field:'asset')}</td>
+                        
+                            <td>${fieldValue(bean:taskActionInstance, field:'assetType')}</td>
+                        
+                            <td>${fieldValue(bean:taskActionInstance, field:'assembly')}</td>
+                        
+                            <td>${fieldValue(bean:taskActionInstance, field:'subAssembly')}</td>
+                        
+                        </tr>
+                    </g:each>
+                    </tbody>
+                </table>
+            </div>
+            <div class="paginateButtons">
+                <g:paginate total="${taskActionInstanceTotal}" />
+            </div>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/taskAction/show.gsp
===================================================================
--- trunk/grails-app/views/taskAction/show.gsp	(revision 131)
+++ trunk/grails-app/views/taskAction/show.gsp	(revision 131)
@@ -0,0 +1,128 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Show TaskAction</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">TaskAction List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New TaskAction</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Show TaskAction</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <div class="dialog">
+                <table>
+                    <tbody>
+
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Id:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:taskActionInstance, field:'id')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">System Section:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="systemSection" action="show" id="${taskActionInstance?.systemSection?.id}">${taskActionInstance?.systemSection?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Asset:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="asset" action="show" id="${taskActionInstance?.asset?.id}">${taskActionInstance?.asset?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Asset Type:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="assetType" action="show" id="${taskActionInstance?.assetType?.id}">${taskActionInstance?.assetType?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Assembly:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="assembly" action="show" id="${taskActionInstance?.assembly?.id}">${taskActionInstance?.assembly?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Sub Assembly:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="subAssembly" action="show" id="${taskActionInstance?.subAssembly?.id}">${taskActionInstance?.subAssembly?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Component Item:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="componentItem" action="show" id="${taskActionInstance?.componentItem?.id}">${taskActionInstance?.componentItem?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Step Number:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:taskActionInstance, field:'stepNumber')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Action:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:taskActionInstance, field:'action')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Is Active:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:taskActionInstance, field:'isActive')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Maintenance Policy:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="maintenancePolicy" action="show" id="${taskActionInstance?.maintenancePolicy?.id}">${taskActionInstance?.maintenancePolicy?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Reasoning:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:taskActionInstance, field:'reasoning')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Task:</td>
+                            
+                            <td valign="top" class="value"><g:link controller="task" action="show" id="${taskActionInstance?.task?.id}">${taskActionInstance?.task?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                    </tbody>
+                </table>
+            </div>
+            <div class="buttons">
+                <g:form>
+                    <input type="hidden" name="id" value="${taskActionInstance?.id}" />
+                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </g:form>
+            </div>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/taskDetailed/show.gsp
===================================================================
--- trunk/grails-app/views/taskDetailed/show.gsp	(revision 130)
+++ trunk/grails-app/views/taskDetailed/show.gsp	(revision 131)
@@ -18,411 +18,354 @@
 
 
-
             <richui:tabView id="tabView">
+
                 <richui:tabLabels>
                     <richui:tabLabel selected="true" title="Task" />
+                    <richui:tabLabel title="Procedure" />
                     <richui:tabLabel title="Recurrence" />
+                    <richui:tabLabel title="Inventory" />
                     <richui:tabLabel title="Sub Tasks" />
-                    <richui:tabLabel title="PM" />
                 </richui:tabLabels>
+
                 <richui:tabContents>
-                    <richui:tabContent>
-
-            <div class="dialog">
-                <table>
-                    <tbody>
-
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Id:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'id')}</td>
-                            
-                        </tr>
-
-                        <tr class="prop">
-                            <td valign="top" class="name">Description:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'description')}</td>
-                            
-                        </tr>
-
-                        <tr class="prop">
-                            <td valign="top" class="name">Comment:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'comment')}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Target Start Date:</td>
-                            
-                            <td valign="top" class="value"><g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd MMM yyyy"/></td>
-                            
-                        </tr>
-
-                        <tr class="prop">
-                            <td valign="top" class="name">Target Completion Date:</td>
-                            
-                            <td valign="top" class="value"><g:formatDate date="${taskInstance.targetCompletionDate}" format="EEE, dd MMM yyyy"/></td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Lead Person:</td>
-                            
-                            <td valign="top" class="value">${taskInstance?.leadPerson?.encodeAsHTML()}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Task Priority:</td>
-                            
-                            <td valign="top" class="value">${taskInstance?.taskPriority?.encodeAsHTML()}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Task Status:</td>
-                            
-                            <td valign="top" class="value">${taskInstance?.taskStatus?.encodeAsHTML()}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Is Active:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isActive')}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Is Approved:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isApproved')}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Is Scheduled:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isScheduled')}</td>
-                            
-                        </tr>
-
-                        <tr class="prop">
-                            <td valign="top" class="name">Parent Task:</td>
-                            
-                            <td valign="top" class="value"><g:link controller="taskDetailed" action="show" id="${taskInstance?.parentTask?.id}">${taskInstance?.parentTask?.encodeAsHTML()}</g:link></td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Task Group:</td>
-                            
-                            <td valign="top" class="value">${taskInstance?.taskGroup?.encodeAsHTML()}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Task Type:</td>
-                            
-                            <td valign="top" class="value">${taskInstance?.taskType?.encodeAsHTML()}</td>
-                            
-                        </tr>
-
-                        <tr class="prop">
-                            <td valign="top" class="name">Assigned Persons:</td>
-                            
-                            <td  valign="top" style="text-align:left;" class="value">
-                                <ul>
-                                <g:each var="a" in="${taskInstance.assignedPersons}">
-                                    <li><g:link controller="assignedPersonDetailed" action="edit" id="${a.id}">${a?.encodeAsHTML()}</g:link></li>
+
+<!-- Start Task tab -->
+                    <richui:tabContent>
+            
+                        <div class="dialog">
+                            <table>
+                                <tbody>
+            
+                                
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Id:</td>
+                                        
+                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'id')}</td>
+                                        
+                                    </tr>
+            
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Description:</td>
+                                        
+                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'description')}</td>
+                                        
+                                    </tr>
+            
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Comment:</td>
+                                        
+                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'comment')}</td>
+                                        
+                                    </tr>
+                                
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Target Start Date:</td>
+                                        
+                                        <td valign="top" class="value"><g:formatDate date="${taskInstance.targetStartDate}" format="EEE, dd MMM yyyy"/></td>
+                                        
+                                    </tr>
+            
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Target Completion Date:</td>
+                                        
+                                        <td valign="top" class="value"><g:formatDate date="${taskInstance.targetCompletionDate}" format="EEE, dd MMM yyyy"/></td>
+                                        
+                                    </tr>
+                                
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Lead Person:</td>
+                                        
+                                        <td valign="top" class="value">${taskInstance?.leadPerson?.encodeAsHTML()}</td>
+                                        
+                                    </tr>
+                                
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Task Priority:</td>
+                                        
+                                        <td valign="top" class="value">${taskInstance?.taskPriority?.encodeAsHTML()}</td>
+                                        
+                                    </tr>
+                                
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Task Status:</td>
+                                        
+                                        <td valign="top" class="value">${taskInstance?.taskStatus?.encodeAsHTML()}</td>
+                                        
+                                    </tr>
+                                
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Is Active:</td>
+                                        
+                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isActive')}</td>
+                                        
+                                    </tr>
+                                
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Is Approved:</td>
+                                        
+                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isApproved')}</td>
+                                        
+                                    </tr>
+                                
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Is Scheduled:</td>
+                                        
+                                        <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isScheduled')}</td>
+                                        
+                                    </tr>
+            
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Parent Task:</td>
+                                        
+                                        <td valign="top" class="value"><g:link controller="taskDetailed" action="show" id="${taskInstance?.parentTask?.id}">${taskInstance?.parentTask?.encodeAsHTML()}</g:link></td>
+                                        
+                                    </tr>
+                                
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Task Group:</td>
+                                        
+                                        <td valign="top" class="value">${taskInstance?.taskGroup?.encodeAsHTML()}</td>
+                                        
+                                    </tr>
+                                
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Task Type:</td>
+                                        
+                                        <td valign="top" class="value">${taskInstance?.taskType?.encodeAsHTML()}</td>
+                                        
+                                    </tr>
+            
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Assigned Persons:</td>
+                                        
+                                        <td  valign="top" style="text-align:left;" class="value">
+                                            <ul>
+                                            <g:each var="a" in="${taskInstance.assignedPersons}">
+                                                <li><g:link controller="assignedPersonDetailed" action="edit" id="${a.id}">${a?.encodeAsHTML()}</g:link></li>
+                                            </g:each>
+                                            </ul>
+                                        </td>
+                                        
+                                    </tr>
+                                
+                                </tbody>
+                            </table>
+                        </div>
+            
+            
+                        <div class="buttons">
+                            <g:form>
+                                <input type="hidden" name="id" value="${taskInstance?.id}" />
+                                <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
+                                <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                            </g:form>
+                        </div>
+            
+                        <div class="list">
+                            <h1>Faults</h1>
+                            <table>
+                                <thead>
+                                    <tr>
+                                        <th>Comment</th>
+                                        <th>Date Done</th>
+                                        <th>Duration</th>
+                                        <th>Entered By</th>
+                                        <th></th>
+            
+            <!--                            <g:sortableColumn property="comment" title="Comment" />
+                                    
+                                        <g:sortableColumn property="dateDone" title="Date Done" />
+                                    
+                                        <g:sortableColumn property="enteredBy" title="Entered By" />-->
+                                    </tr>
+                                </thead>
+                                <tbody>
+                                <g:each in="${taskInstance?.entries}" status="i" var="entry">
+                                    <g:if test="${entry.entryType == EntryType.findByName('Fault')}">
+                                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'/>
+                                        
+                                            <td style="width:65%">${entry.comment}</td>
+                                            <td><g:formatDate date="${entry.dateDone}" format="EEE, dd MMM yyyy"/></td>
+                                            <td>${entry.durationHour}:${entry.durationMinute}</td>
+                                            <td>${entry.enteredBy}</td>
+            
+                                            <td>
+                                                <g:link controller="entryDetailed" action="edit" id="${entry.id}">
+                                                    <img  src="${createLinkTo(dir:'images/skin',file:'database_edit.png')}" alt="Edit" />
+                                                </g:link>
+                                            </td>
+            
+                                        </tr>
+                                    </g:if>
                                 </g:each>
-                                </ul>
-                            </td>
-                            
-                        </tr>
-                    
-                    </tbody>
-                </table>
-            </div>
-
-
-            <div class="buttons">
-                <g:form>
-                    <input type="hidden" name="id" value="${taskInstance?.id}" />
-                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
-                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
-                </g:form>
-            </div>
-
-            <div class="list">
-                <h1>Faults</h1>
-                <table>
-                    <thead>
-                        <tr>
-                            <th>Comment</th>
-                            <th>Date Done</th>
-                            <th>Duration</th>
-                            <th>Entered By</th>
-                            <th></th>
-
-<!--                            <g:sortableColumn property="comment" title="Comment" />
-                        
-                            <g:sortableColumn property="dateDone" title="Date Done" />
-                        
-                            <g:sortableColumn property="enteredBy" title="Entered By" />-->
-                        </tr>
-                    </thead>
-                    <tbody>
-                    <g:each in="${taskInstance?.entries}" status="i" var="entry">
-                        <g:if test="${entry.entryType == EntryType.findByName('Fault')}">
-                            <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'/>
-                            
-                                <td style="width:65%">${entry.comment}</td>
-                                <td><g:formatDate date="${entry.dateDone}" format="EEE, dd MMM yyyy"/></td>
-                                <td>${entry.durationHour}:${entry.durationMinute}</td>
-                                <td>${entry.enteredBy}</td>
-
-                                <td>
-                                    <g:link controller="entryDetailed" action="edit" id="${entry.id}">
-                                        <img  src="${createLinkTo(dir:'images/skin',file:'database_edit.png')}" alt="Edit" />
-                                    </g:link>
-                                </td>
-
-                            </tr>
-                        </g:if>
-                    </g:each>
-                    </tbody>
-                </table>
-            </div>
-
-            <div class="list">
-                <h1>Work Done</h1>
-                <table>
-                    <thead>
-                        <tr>
-                            <th>Comment</th>
-                            <th>Date Done</th>
-                            <th>Duration</th>
-                            <th>Entered By</th>
-                            <th></th>
-
-<!--                            <g:sortableColumn property="commentW" title="Comment" />
-                        
-                            <g:sortableColumn property="dateDoneW" title="Date Done" />
-                        
-                            <g:sortableColumn property="enteredByW" title="Entered By" />-->
-                        </tr>
-                    </thead>
-                    <tbody>
-                    <g:each in="${taskInstance?.entries}" status="i" var="entry">
-                        <g:if test="${entry.entryType == EntryType.findByName('WorkDone')}">
-                            <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'/>
-
-                                <td width="65%">${entry.comment}</td>
-                                <td><g:formatDate date="${entry.dateDone}" format="EEE, dd MMM yyyy"/></td>
-                                <td>${entry.durationHour}:${entry.durationMinute}</td>
-                                <td>${entry.enteredBy}</td>
-
-                                <td>
-                                    <g:link controller="entryDetailed" action="edit" id="${entry.id}">
-                                        <img  src="${createLinkTo(dir:'images/skin',file:'database_edit.png')}" alt="Edit" />
-                                    </g:link>
-                                </td>
-
-                            </tr>
-                        </g:if>
-                    </g:each>
-                    </tbody>
-                </table>
-            </div>
-
-            <br />
-
-            <div class="buttons">
-                <g:form controller="entryDetailed">
-                    <input type="hidden" name="taskInstance.id" value="${taskInstance?.id}" />
-                    <span class="button">
-                        <g:actionSubmit value="Add Entry" action="create"  class="add"/>
-                    </span>
-                </g:form>
-            </div>
-        </richui:tabContent>
-
-        <richui:tabContent>
-           <div class="dialog">
-                <table>
-                    <tbody>
-                        <tr class="prop">
-                            <td valign="top" class="name">Recurring Schedule:</td>
-                            
-                            <td valign="top" class="value">${taskInstance.recurringSchedule?.encodeAsHTML()}</td>
-                            
-                        </tr>
-
-                        <tr class="prop">
-                            <td valign="top" class="name">Start Date:</td>
-                            
-                            <td valign="top" class="value">${taskInstance.recurringSchedule?.startDate}</td>
-                            
-                        </tr>
-
-                        <tr class="prop">
-                            <td valign="top" class="name">Next Due Date:</td>
-                            
-                            <td valign="top" class="value">${taskInstance.recurringSchedule?.nextDueDate}</td>
-                            
-                        </tr>
-
-                        <tr class="prop">
-                            <td valign="top" class="name">Last Excecuted Date:</td>
-                            
-                            <td valign="top" class="value">${taskInstance.recurringSchedule?.lastExecutedDate}</td>
-                            
-                        </tr>
-                    </tbody>
-                </table>
-            </div>
-
-        </richui:tabContent>
-
-        <richui:tabContent>
-            <div class="dialog">
-                <table>
-                    <tbody>
-                        <tr class="prop">
-                            <td valign="top" class="name">Sub Tasks:</td>
-                            
-                            <td  valign="top" style="text-align:left;" class="value">
-                                <ul>
-                                <g:each var="s" in="${taskInstance.subTasks}">
-                                    <li><g:link controller="taskDetailed" action="show" id="${s.id}">${s?.encodeAsHTML()}</g:link></li>
+                                </tbody>
+                            </table>
+                        </div>
+            
+                        <div class="list">
+                            <h1>Work Done</h1>
+                            <table>
+                                <thead>
+                                    <tr>
+                                        <th>Comment</th>
+                                        <th>Date Done</th>
+                                        <th>Duration</th>
+                                        <th>Entered By</th>
+                                        <th></th>
+            
+            <!--                            <g:sortableColumn property="commentW" title="Comment" />
+                                    
+                                        <g:sortableColumn property="dateDoneW" title="Date Done" />
+                                    
+                                        <g:sortableColumn property="enteredByW" title="Entered By" />-->
+                                    </tr>
+                                </thead>
+                                <tbody>
+                                <g:each in="${taskInstance?.entries}" status="i" var="entry">
+                                    <g:if test="${entry.entryType == EntryType.findByName('WorkDone')}">
+                                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/entryDetailed/edit/${entry.id}"'/>
+            
+                                            <td width="65%">${entry.comment}</td>
+                                            <td><g:formatDate date="${entry.dateDone}" format="EEE, dd MMM yyyy"/></td>
+                                            <td>${entry.durationHour}:${entry.durationMinute}</td>
+                                            <td>${entry.enteredBy}</td>
+            
+                                            <td>
+                                                <g:link controller="entryDetailed" action="edit" id="${entry.id}">
+                                                    <img  src="${createLinkTo(dir:'images/skin',file:'database_edit.png')}" alt="Edit" />
+                                                </g:link>
+                                            </td>
+            
+                                        </tr>
+                                    </g:if>
                                 </g:each>
-                                </ul>
-                            </td>
-                            
-                        </tr>
-                    </tbody>
-                </table>
-            </div>
-        </richui:tabContent>
-
-<!-- Planned Maintenance start-->
-        <richui:tabContent>
-            <div class="dialog">
-                <table>
-                    <tbody>
-                        <tr class="prop">
-                            <td valign="top" class="name">Id:</td>
-                            
-                            <td valign="top" class="value">${taskInstance.recurringSchedule?.plannedMaintenance?.id}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Name:</td>
-                            
-                            <td valign="top" class="value">${taskInstance.recurringSchedule?.plannedMaintenance?.name}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Description:</td>
-                            
-                            <td valign="top" class="value">${taskInstance.recurringSchedule?.plannedMaintenance?.description}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Recurring Schedule:</td>
-                            
-                            <td valign="top" class="value"><g:link controller="recurringScheduleDetailed" action="edit" id="${taskInstance.recurringSchedule?.id}">${taskInstance.recurringSchedule?.encodeAsHTML()}</g:link></td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Is Active:</td>
-                            
-                            <td valign="top" class="value">${taskInstance.recurringSchedule?.plannedMaintenance?.isActive}</td>
-                            
-                        </tr>
-                    
-                    </tbody>
-                </table>
-            </div>
-            <div class="buttons">
-                <g:form controller="plannedMaintenanceDetailed">
-                    <input type="hidden" name="id" value="${taskInstance.recurringSchedule?.plannedMaintenance?.id}" />
-                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
-                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
-                </g:form>
-            </div>
-
-            <div class="list">
-                <h1>Maintenance Actions</h1>
-                <table>
-                    <thead>
-                        <tr>
-
-<!--                             <g:sortableColumn property="plannedMaintenanceInstance.maintenanceAction.pmStepNumber" title="PM Step" /> -->
-                            <th>Step</th>
-                            <th>Action</th>
-                            <th>System Section</th>
-                            <th>Asset</th>
-                            <th>Assembly</th>
-                            <th>Maintenance Policy</th>
-                            <th></th>
-
-<!--                            <g:sortableColumn property="commentW" title="Comment" />
-                        
-                            <g:sortableColumn property="dateDoneW" title="Date Done" />
-                        
-                            <g:sortableColumn property="enteredByW" title="Entered By" />-->
-                        </tr>
-                    </thead>
-                    <tbody>
-                        <g:each in="${taskInstance.recurringSchedule?.plannedMaintenance?.maintenanceActions}" status="i" var="maintenanceAction">
-                                <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/maintenanceActionDetailed/edit/${maintenanceAction.id}"'/>
-    
-                                    <td>${fieldValue(bean:maintenanceAction, field:'pmStepNumber')}</td>
-                                    <td>${maintenanceAction.maintenanceAction}</td>
-                                    <td>${maintenanceAction.systemSection}</td>
-                                    <td>${maintenanceAction.asset}</td>
-                                    <td>${maintenanceAction.assembly}</td>
-                                    <td>${maintenanceAction.maintenancePolicy}</td>
-    
-                                    <td>
-                                        <g:link controller="maintenanceActionDetailed" action="edit" id="${maintenanceAction.id}">
-                                            <img  src="${createLinkTo(dir:'images/skin',file:'database_edit.png')}" alt="Edit" />
-                                        </g:link>
-                                    </td>
-    
-                                </tr>
-                        </g:each>
-                    </tbody>
-                </table>
-            </div>
-
-            <br />
-
-            <g:if test="${taskInstance.recurringSchedule?.plannedMaintenance?.id}">
-                <div class="buttons">
-                    <g:form controller="maintenanceActionDetailed">
-                        <input type="hidden" name="plannedMaintenanceInstance.id" value="${taskInstance.recurringSchedule?.plannedMaintenance?.id}" />
-                        <span class="button">
-                            <g:actionSubmit value="Add Action" action="create"  class="add"/>
-                        </span>
-                    </g:form>
-                </div>
-            </g:if>
-
-        </richui:tabContent>
-<!-- Planned Maintenance end-->
-
-    </richui:tabContents>
-</richui:tabView>
-
+                                </tbody>
+                            </table>
+                        </div>
+            
+                        <br />
+            
+                        <div class="buttons">
+                            <g:form controller="entryDetailed">
+                                <input type="hidden" name="taskInstance.id" value="${taskInstance?.id}" />
+                                <span class="button">
+                                    <g:actionSubmit value="Add Entry" action="create"  class="add"/>
+                                </span>
+                            </g:form>
+                        </div>
+                    </richui:tabContent>
+<!-- End Task tab -->
+
+<!-- Start Task Procedure tab-->
+                    <richui:tabContent>
+
+                        <div class="list">
+                            <table>
+                                <thead>
+                                    <tr>
+                                        <th>Step</th>
+                                        <th>Description</th>
+                                        <th></th>
+                                    </tr>
+                                </thead>
+                                <tbody>
+                                    <g:each in="${taskProcedureInstance?.maintenanceActions}" status="i" var="maintenanceAction">
+                                        <tr class="${(i % 2) == 0 ? 'clickableOdd' : 'clickableEven'}" onclick='window.location = "${request.getContextPath()}/maintenanceActionDetailed/edit/${maintenanceAction.id}"'/>
+                                        
+                                        <td valign="top" class="name">
+                                            ${maintenanceAction?.procedureStepNumber}
+                                        </td>
+                                        
+                                        <td  valign="top" style="text-align:left;" class="value">
+                                            ${maintenanceAction?.description}
+                                        </td>
+                                        
+                                    </tr>
+                                    </g:each>
+
+                                </tbody>
+                            </table>
+                        </div>
+
+                    </richui:tabContent>
+<!-- End Task Procedure tab-->
+
+<!-- Start Task Recurrence tab -->
+                    <richui:tabContent>
+                    <div class="dialog">
+                            <table>
+                                <tbody>
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Recurring Schedule:</td>
+                                        
+                                        <td valign="top" class="value">${taskInstance.taskRecurringSchedule?.encodeAsHTML()}</td>
+                                        
+                                    </tr>
+            
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Start Date:</td>
+                                        
+                                        <td valign="top" class="value">${taskInstance.taskRecurringSchedule?.startDate}</td>
+                                        
+                                    </tr>
+            
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Next Due Date:</td>
+                                        
+                                        <td valign="top" class="value">${taskInstance.taskRecurringSchedule?.nextDueDate}</td>
+                                        
+                                    </tr>
+            
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Last Generated Date:</td>
+                                        
+                                        <td valign="top" class="value">${taskInstance.taskRecurringSchedule?.lastGeneratedDate}</td>
+                                        
+                                    </tr>
+            
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Last Generated Sub Task:</td>
+                                        
+                                        <td valign="top" class="value">${taskInstance.taskRecurringSchedule?.lastGeneratedSubTask}</td>
+                                        
+                                    </tr>
+                                </tbody>
+                            </table>
+                        </div>
+                    </richui:tabContent>
+<!-- End Task Recurrence tab -->
+
+<!-- Start Inventory tab -->
+                    <richui:tabContent>
+                        Used Inventory
+                    </richui:tabContent>
+<!-- End Inventory tab -->
+
+<!-- Start Sub Task tab -->  
+                    <richui:tabContent>
+                        <div class="dialog">
+                            <table>
+                                <tbody>
+                                    <tr class="prop">
+                                        <td valign="top" class="name">Sub Tasks:</td>
+                                        
+                                        <td  valign="top" style="text-align:left;" class="value">
+                                            <ul>
+                                            <g:each var="s" in="${taskInstance.subTasks}">
+                                                <li><g:link controller="taskDetailed" action="show" id="${s.id}">${s?.encodeAsHTML()}</g:link></li>
+                                            </g:each>
+                                            </ul>
+                                        </td>
+                                        
+                                    </tr>
+                                </tbody>
+                            </table>
+                        </div>
+                    </richui:tabContent>
+<!-- End Sub Task tab -->
+
+                </richui:tabContents>
+            </richui:tabView>
+            
         </div>
     </body>
Index: trunk/grails-app/views/taskProcedure/create.gsp
===================================================================
--- trunk/grails-app/views/taskProcedure/create.gsp	(revision 131)
+++ trunk/grails-app/views/taskProcedure/create.gsp	(revision 131)
@@ -0,0 +1,65 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Create TaskProcedure</title>         
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">TaskProcedure List</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Create TaskProcedure</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${taskProcedureInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${taskProcedureInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form action="save" method="post" >
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="name">Name:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'name','errors')}">
+                                    <input type="text" maxlength="75" id="name" name="name" value="${fieldValue(bean:taskProcedureInstance,field:'name')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="description">Description:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'description','errors')}">
+                                    <input type="text" maxlength="100" id="description" name="description" value="${fieldValue(bean:taskProcedureInstance,field:'description')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="isActive">Is Active:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'isActive','errors')}">
+                                    <g:checkBox name="isActive" value="${taskProcedureInstance?.isActive}" ></g:checkBox>
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><input class="save" type="submit" value="Create" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/taskProcedure/edit.gsp
===================================================================
--- trunk/grails-app/views/taskProcedure/edit.gsp	(revision 131)
+++ trunk/grails-app/views/taskProcedure/edit.gsp	(revision 131)
@@ -0,0 +1,101 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Edit TaskProcedure</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">TaskProcedure List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New TaskProcedure</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Edit TaskProcedure</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${taskProcedureInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${taskProcedureInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form method="post" >
+                <input type="hidden" name="id" value="${taskProcedureInstance?.id}" />
+                <input type="hidden" name="version" value="${taskProcedureInstance?.version}" />
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="name">Name:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'name','errors')}">
+                                    <input type="text" maxlength="75" id="name" name="name" value="${fieldValue(bean:taskProcedureInstance,field:'name')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="description">Description:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'description','errors')}">
+                                    <input type="text" maxlength="100" id="description" name="description" value="${fieldValue(bean:taskProcedureInstance,field:'description')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="isActive">Is Active:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'isActive','errors')}">
+                                    <g:checkBox name="isActive" value="${taskProcedureInstance?.isActive}" ></g:checkBox>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="maintenanceActions">Maintenance Actions:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'maintenanceActions','errors')}">
+                                    
+<ul>
+<g:each var="m" in="${taskProcedureInstance?.maintenanceActions?}">
+    <li><g:link controller="maintenanceAction" action="show" id="${m.id}">${m?.encodeAsHTML()}</g:link></li>
+</g:each>
+</ul>
+<g:link controller="maintenanceAction" params="['taskProcedure.id':taskProcedureInstance?.id]" action="create">Add MaintenanceAction</g:link>
+
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="tasks">Tasks:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskProcedureInstance,field:'tasks','errors')}">
+                                    
+<ul>
+<g:each var="t" in="${taskProcedureInstance?.tasks?}">
+    <li><g:link controller="task" action="show" id="${t.id}">${t?.encodeAsHTML()}</g:link></li>
+</g:each>
+</ul>
+<g:link controller="task" params="['taskProcedure.id':taskProcedureInstance?.id]" action="create">Add Task</g:link>
+
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><g:actionSubmit class="save" value="Update" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/taskProcedure/list.gsp
===================================================================
--- trunk/grails-app/views/taskProcedure/list.gsp	(revision 131)
+++ trunk/grails-app/views/taskProcedure/list.gsp	(revision 131)
@@ -0,0 +1,56 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>TaskProcedure List</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="create" action="create">New TaskProcedure</g:link></span>
+        </div>
+        <div class="body">
+            <h1>TaskProcedure List</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <div class="list">
+                <table>
+                    <thead>
+                        <tr>
+                        
+                   	        <g:sortableColumn property="id" title="Id" />
+                        
+                   	        <g:sortableColumn property="name" title="Name" />
+                        
+                   	        <g:sortableColumn property="description" title="Description" />
+                        
+                   	        <g:sortableColumn property="isActive" title="Is Active" />
+                        
+                        </tr>
+                    </thead>
+                    <tbody>
+                    <g:each in="${taskProcedureInstanceList}" status="i" var="taskProcedureInstance">
+                        <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
+                        
+                            <td><g:link action="show" id="${taskProcedureInstance.id}">${fieldValue(bean:taskProcedureInstance, field:'id')}</g:link></td>
+                        
+                            <td>${fieldValue(bean:taskProcedureInstance, field:'name')}</td>
+                        
+                            <td>${fieldValue(bean:taskProcedureInstance, field:'description')}</td>
+                        
+                            <td>${fieldValue(bean:taskProcedureInstance, field:'isActive')}</td>
+                        
+                        </tr>
+                    </g:each>
+                    </tbody>
+                </table>
+            </div>
+            <div class="paginateButtons">
+                <g:paginate total="${taskProcedureInstanceTotal}" />
+            </div>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/taskProcedure/show.gsp
===================================================================
--- trunk/grails-app/views/taskProcedure/show.gsp	(revision 131)
+++ trunk/grails-app/views/taskProcedure/show.gsp	(revision 131)
@@ -0,0 +1,91 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Show TaskProcedure</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">TaskProcedure List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New TaskProcedure</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Show TaskProcedure</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <div class="dialog">
+                <table>
+                    <tbody>
+
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Id:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'id')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Name:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'name')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Description:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'description')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Is Active:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:taskProcedureInstance, field:'isActive')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Maintenance Actions:</td>
+                            
+                            <td  valign="top" style="text-align:left;" class="value">
+                                <ul>
+                                <g:each var="m" in="${taskProcedureInstance.maintenanceActions}">
+                                    <li><g:link controller="maintenanceAction" action="show" id="${m.id}">${m?.encodeAsHTML()}</g:link></li>
+                                </g:each>
+                                </ul>
+                            </td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Tasks:</td>
+                            
+                            <td  valign="top" style="text-align:left;" class="value">
+                                <ul>
+                                <g:each var="t" in="${taskProcedureInstance.tasks}">
+                                    <li><g:link controller="task" action="show" id="${t.id}">${t?.encodeAsHTML()}</g:link></li>
+                                </g:each>
+                                </ul>
+                            </td>
+                            
+                        </tr>
+                    
+                    </tbody>
+                </table>
+            </div>
+            <div class="buttons">
+                <g:form>
+                    <input type="hidden" name="id" value="${taskProcedureInstance?.id}" />
+                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </g:form>
+            </div>
+        </div>
+    </body>
+</html>
Index: trunk/grails-app/views/taskRecurringSchedule/create.gsp
===================================================================
--- trunk/grails-app/views/taskRecurringSchedule/create.gsp	(revision 130)
+++ trunk/grails-app/views/taskRecurringSchedule/create.gsp	(revision 131)
@@ -5,19 +5,19 @@
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
         <meta name="layout" content="main" />
-        <title>Create RecurringSchedule</title>         
+        <title>Create TaskRecurringSchedule</title>         
     </head>
     <body>
         <div class="nav">
             <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="list" action="list">RecurringSchedule List</g:link></span>
+            <span class="menuButton"><g:link class="list" action="list">TaskRecurringSchedule List</g:link></span>
         </div>
         <div class="body">
-            <h1>Create RecurringSchedule</h1>
+            <h1>Create TaskRecurringSchedule</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
             </g:if>
-            <g:hasErrors bean="${recurringScheduleInstance}">
+            <g:hasErrors bean="${taskRecurringScheduleInstance}">
             <div class="errors">
-                <g:renderErrors bean="${recurringScheduleInstance}" as="list" />
+                <g:renderErrors bean="${taskRecurringScheduleInstance}" as="list" />
             </div>
             </g:hasErrors>
@@ -29,8 +29,8 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="plannedMaintenance">Planned Maintenance:</label>
+                                    <label for="lastGeneratedDate">Last Generated Date:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'plannedMaintenance','errors')}">
-                                    <g:select optionKey="id" from="${PlannedMaintenance.list()}" name="plannedMaintenance.id" value="${recurringScheduleInstance?.plannedMaintenance?.id}" noSelection="['null':'']"></g:select>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'lastGeneratedDate','errors')}">
+                                    <g:datePicker name="lastGeneratedDate" value="${taskRecurringScheduleInstance?.lastGeneratedDate}" noSelection="['':'']"></g:datePicker>
                                 </td>
                             </tr> 
@@ -38,8 +38,17 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="lastExecutedDate">Last Executed Date:</label>
+                                    <label for="lastGeneratedSubTask">Last Generated Sub Task:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'lastExecutedDate','errors')}">
-                                    <g:datePicker name="lastExecutedDate" value="${recurringScheduleInstance?.lastExecutedDate}" noSelection="['':'']"></g:datePicker>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'lastGeneratedSubTask','errors')}">
+                                    <g:select optionKey="id" from="${Task.list()}" name="lastGeneratedSubTask.id" value="${taskRecurringScheduleInstance?.lastGeneratedSubTask?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="isEnabled">Is Enabled:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'isEnabled','errors')}">
+                                    <g:checkBox name="isEnabled" value="${taskRecurringScheduleInstance?.isEnabled}" ></g:checkBox>
                                 </td>
                             </tr> 
@@ -49,15 +58,6 @@
                                     <label for="nextDueDate">Next Due Date:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'nextDueDate','errors')}">
-                                    <g:datePicker name="nextDueDate" value="${recurringScheduleInstance?.nextDueDate}" noSelection="['':'']"></g:datePicker>
-                                </td>
-                            </tr> 
-                        
-                            <tr class="prop">
-                                <td valign="top" class="name">
-                                    <label for="isActive">Is Active:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'isActive','errors')}">
-                                    <g:checkBox name="isActive" value="${recurringScheduleInstance?.isActive}" ></g:checkBox>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'nextDueDate','errors')}">
+                                    <g:datePicker name="nextDueDate" value="${taskRecurringScheduleInstance?.nextDueDate}" ></g:datePicker>
                                 </td>
                             </tr> 
@@ -67,6 +67,6 @@
                                     <label for="period">Period:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'period','errors')}">
-                                    <g:select optionKey="id" from="${Period.list()}" name="period.id" value="${recurringScheduleInstance?.period?.id}" ></g:select>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'period','errors')}">
+                                    <g:select optionKey="id" from="${Period.list()}" name="period.id" value="${taskRecurringScheduleInstance?.period?.id}" ></g:select>
                                 </td>
                             </tr> 
@@ -76,6 +76,6 @@
                                     <label for="recurEvery">Recur Every:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'recurEvery','errors')}">
-                                    <input type="text" id="recurEvery" name="recurEvery" value="${fieldValue(bean:recurringScheduleInstance,field:'recurEvery')}" />
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'recurEvery','errors')}">
+                                    <input type="text" id="recurEvery" name="recurEvery" value="${fieldValue(bean:taskRecurringScheduleInstance,field:'recurEvery')}" />
                                 </td>
                             </tr> 
@@ -85,6 +85,6 @@
                                     <label for="startDate">Start Date:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'startDate','errors')}">
-                                    <g:datePicker name="startDate" value="${recurringScheduleInstance?.startDate}" ></g:datePicker>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'startDate','errors')}">
+                                    <g:datePicker name="startDate" value="${taskRecurringScheduleInstance?.startDate}" ></g:datePicker>
                                 </td>
                             </tr> 
@@ -94,6 +94,6 @@
                                     <label for="task">Task:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'task','errors')}">
-                                    <g:select optionKey="id" from="${Task.list()}" name="task.id" value="${recurringScheduleInstance?.task?.id}" ></g:select>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'task','errors')}">
+                                    <g:select optionKey="id" from="${Task.list()}" name="task.id" value="${taskRecurringScheduleInstance?.task?.id}" ></g:select>
                                 </td>
                             </tr> 
Index: trunk/grails-app/views/taskRecurringSchedule/edit.gsp
===================================================================
--- trunk/grails-app/views/taskRecurringSchedule/edit.gsp	(revision 130)
+++ trunk/grails-app/views/taskRecurringSchedule/edit.gsp	(revision 131)
@@ -5,25 +5,25 @@
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
         <meta name="layout" content="main" />
-        <title>Edit RecurringSchedule</title>
+        <title>Edit TaskRecurringSchedule</title>
     </head>
     <body>
         <div class="nav">
             <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="list" action="list">RecurringSchedule List</g:link></span>
-            <span class="menuButton"><g:link class="create" action="create">New RecurringSchedule</g:link></span>
+            <span class="menuButton"><g:link class="list" action="list">TaskRecurringSchedule List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New TaskRecurringSchedule</g:link></span>
         </div>
         <div class="body">
-            <h1>Edit RecurringSchedule</h1>
+            <h1>Edit TaskRecurringSchedule</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
             </g:if>
-            <g:hasErrors bean="${recurringScheduleInstance}">
+            <g:hasErrors bean="${taskRecurringScheduleInstance}">
             <div class="errors">
-                <g:renderErrors bean="${recurringScheduleInstance}" as="list" />
+                <g:renderErrors bean="${taskRecurringScheduleInstance}" as="list" />
             </div>
             </g:hasErrors>
             <g:form method="post" >
-                <input type="hidden" name="id" value="${recurringScheduleInstance?.id}" />
-                <input type="hidden" name="version" value="${recurringScheduleInstance?.version}" />
+                <input type="hidden" name="id" value="${taskRecurringScheduleInstance?.id}" />
+                <input type="hidden" name="version" value="${taskRecurringScheduleInstance?.version}" />
                 <div class="dialog">
                     <table>
@@ -32,8 +32,8 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="plannedMaintenance">Planned Maintenance:</label>
+                                    <label for="lastGeneratedDate">Last Generated Date:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'plannedMaintenance','errors')}">
-                                    <g:select optionKey="id" from="${PlannedMaintenance.list()}" name="plannedMaintenance.id" value="${recurringScheduleInstance?.plannedMaintenance?.id}" noSelection="['null':'']"></g:select>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'lastGeneratedDate','errors')}">
+                                    <g:datePicker name="lastGeneratedDate" value="${taskRecurringScheduleInstance?.lastGeneratedDate}" noSelection="['':'']"></g:datePicker>
                                 </td>
                             </tr> 
@@ -41,8 +41,17 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
-                                    <label for="lastExecutedDate">Last Executed Date:</label>
+                                    <label for="lastGeneratedSubTask">Last Generated Sub Task:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'lastExecutedDate','errors')}">
-                                    <g:datePicker name="lastExecutedDate" value="${recurringScheduleInstance?.lastExecutedDate}" noSelection="['':'']"></g:datePicker>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'lastGeneratedSubTask','errors')}">
+                                    <g:select optionKey="id" from="${Task.list()}" name="lastGeneratedSubTask.id" value="${taskRecurringScheduleInstance?.lastGeneratedSubTask?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="isEnabled">Is Enabled:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'isEnabled','errors')}">
+                                    <g:checkBox name="isEnabled" value="${taskRecurringScheduleInstance?.isEnabled}" ></g:checkBox>
                                 </td>
                             </tr> 
@@ -52,15 +61,6 @@
                                     <label for="nextDueDate">Next Due Date:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'nextDueDate','errors')}">
-                                    <g:datePicker name="nextDueDate" value="${recurringScheduleInstance?.nextDueDate}" noSelection="['':'']"></g:datePicker>
-                                </td>
-                            </tr> 
-                        
-                            <tr class="prop">
-                                <td valign="top" class="name">
-                                    <label for="isActive">Is Active:</label>
-                                </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'isActive','errors')}">
-                                    <g:checkBox name="isActive" value="${recurringScheduleInstance?.isActive}" ></g:checkBox>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'nextDueDate','errors')}">
+                                    <g:datePicker name="nextDueDate" value="${taskRecurringScheduleInstance?.nextDueDate}" ></g:datePicker>
                                 </td>
                             </tr> 
@@ -70,6 +70,6 @@
                                     <label for="period">Period:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'period','errors')}">
-                                    <g:select optionKey="id" from="${Period.list()}" name="period.id" value="${recurringScheduleInstance?.period?.id}" ></g:select>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'period','errors')}">
+                                    <g:select optionKey="id" from="${Period.list()}" name="period.id" value="${taskRecurringScheduleInstance?.period?.id}" ></g:select>
                                 </td>
                             </tr> 
@@ -79,6 +79,6 @@
                                     <label for="recurEvery">Recur Every:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'recurEvery','errors')}">
-                                    <input type="text" id="recurEvery" name="recurEvery" value="${fieldValue(bean:recurringScheduleInstance,field:'recurEvery')}" />
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'recurEvery','errors')}">
+                                    <input type="text" id="recurEvery" name="recurEvery" value="${fieldValue(bean:taskRecurringScheduleInstance,field:'recurEvery')}" />
                                 </td>
                             </tr> 
@@ -88,6 +88,6 @@
                                     <label for="startDate">Start Date:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'startDate','errors')}">
-                                    <g:datePicker name="startDate" value="${recurringScheduleInstance?.startDate}" ></g:datePicker>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'startDate','errors')}">
+                                    <g:datePicker name="startDate" value="${taskRecurringScheduleInstance?.startDate}" ></g:datePicker>
                                 </td>
                             </tr> 
@@ -97,6 +97,6 @@
                                     <label for="task">Task:</label>
                                 </td>
-                                <td valign="top" class="value ${hasErrors(bean:recurringScheduleInstance,field:'task','errors')}">
-                                    <g:select optionKey="id" from="${Task.list()}" name="task.id" value="${recurringScheduleInstance?.task?.id}" ></g:select>
+                                <td valign="top" class="value ${hasErrors(bean:taskRecurringScheduleInstance,field:'task','errors')}">
+                                    <g:select optionKey="id" from="${Task.list()}" name="task.id" value="${taskRecurringScheduleInstance?.task?.id}" ></g:select>
                                 </td>
                             </tr> 
Index: trunk/grails-app/views/taskRecurringSchedule/list.gsp
===================================================================
--- trunk/grails-app/views/taskRecurringSchedule/list.gsp	(revision 130)
+++ trunk/grails-app/views/taskRecurringSchedule/list.gsp	(revision 131)
@@ -5,13 +5,13 @@
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
         <meta name="layout" content="main" />
-        <title>RecurringSchedule List</title>
+        <title>TaskRecurringSchedule List</title>
     </head>
     <body>
         <div class="nav">
             <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="create" action="create">New RecurringSchedule</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New TaskRecurringSchedule</g:link></span>
         </div>
         <div class="body">
-            <h1>RecurringSchedule List</h1>
+            <h1>TaskRecurringSchedule List</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
@@ -24,11 +24,11 @@
                    	        <g:sortableColumn property="id" title="Id" />
                         
-                   	        <th>Planned Maintenance</th>
+                   	        <g:sortableColumn property="lastGeneratedDate" title="Last Generated Date" />
+                        
+                   	        <th>Last Generated Sub Task</th>
                    	    
-                   	        <g:sortableColumn property="lastExecutedDate" title="Last Executed Date" />
+                   	        <g:sortableColumn property="isEnabled" title="Is Enabled" />
                         
                    	        <g:sortableColumn property="nextDueDate" title="Next Due Date" />
-                        
-                   	        <g:sortableColumn property="isActive" title="Is Active" />
                         
                    	        <th>Period</th>
@@ -37,18 +37,18 @@
                     </thead>
                     <tbody>
-                    <g:each in="${recurringScheduleInstanceList}" status="i" var="recurringScheduleInstance">
+                    <g:each in="${taskRecurringScheduleInstanceList}" status="i" var="taskRecurringScheduleInstance">
                         <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
                         
-                            <td><g:link action="show" id="${recurringScheduleInstance.id}">${fieldValue(bean:recurringScheduleInstance, field:'id')}</g:link></td>
+                            <td><g:link action="show" id="${taskRecurringScheduleInstance.id}">${fieldValue(bean:taskRecurringScheduleInstance, field:'id')}</g:link></td>
                         
-                            <td>${fieldValue(bean:recurringScheduleInstance, field:'plannedMaintenance')}</td>
+                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'lastGeneratedDate')}</td>
                         
-                            <td>${fieldValue(bean:recurringScheduleInstance, field:'lastExecutedDate')}</td>
+                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'lastGeneratedSubTask')}</td>
                         
-                            <td>${fieldValue(bean:recurringScheduleInstance, field:'nextDueDate')}</td>
+                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'isEnabled')}</td>
                         
-                            <td>${fieldValue(bean:recurringScheduleInstance, field:'isActive')}</td>
+                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'nextDueDate')}</td>
                         
-                            <td>${fieldValue(bean:recurringScheduleInstance, field:'period')}</td>
+                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'period')}</td>
                         
                         </tr>
@@ -58,5 +58,5 @@
             </div>
             <div class="paginateButtons">
-                <g:paginate total="${recurringScheduleInstanceTotal}" />
+                <g:paginate total="${taskRecurringScheduleInstanceTotal}" />
             </div>
         </div>
Index: trunk/grails-app/views/taskRecurringSchedule/show.gsp
===================================================================
--- trunk/grails-app/views/taskRecurringSchedule/show.gsp	(revision 130)
+++ trunk/grails-app/views/taskRecurringSchedule/show.gsp	(revision 131)
@@ -5,14 +5,14 @@
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
         <meta name="layout" content="main" />
-        <title>Show RecurringSchedule</title>
+        <title>Show TaskRecurringSchedule</title>
     </head>
     <body>
         <div class="nav">
             <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="list" action="list">RecurringSchedule List</g:link></span>
-            <span class="menuButton"><g:link class="create" action="create">New RecurringSchedule</g:link></span>
+            <span class="menuButton"><g:link class="list" action="list">TaskRecurringSchedule List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New TaskRecurringSchedule</g:link></span>
         </div>
         <div class="body">
-            <h1>Show RecurringSchedule</h1>
+            <h1>Show TaskRecurringSchedule</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
@@ -26,19 +26,26 @@
                             <td valign="top" class="name">Id:</td>
                             
-                            <td valign="top" class="value">${fieldValue(bean:recurringScheduleInstance, field:'id')}</td>
+                            <td valign="top" class="value">${fieldValue(bean:taskRecurringScheduleInstance, field:'id')}</td>
                             
                         </tr>
                     
                         <tr class="prop">
-                            <td valign="top" class="name">Planned Maintenance:</td>
+                            <td valign="top" class="name">Last Generated Date:</td>
                             
-                            <td valign="top" class="value"><g:link controller="plannedMaintenance" action="show" id="${recurringScheduleInstance?.plannedMaintenance?.id}">${recurringScheduleInstance?.plannedMaintenance?.encodeAsHTML()}</g:link></td>
+                            <td valign="top" class="value">${fieldValue(bean:taskRecurringScheduleInstance, field:'lastGeneratedDate')}</td>
                             
                         </tr>
                     
                         <tr class="prop">
-                            <td valign="top" class="name">Last Executed Date:</td>
+                            <td valign="top" class="name">Last Generated Sub Task:</td>
                             
-                            <td valign="top" class="value">${fieldValue(bean:recurringScheduleInstance, field:'lastExecutedDate')}</td>
+                            <td valign="top" class="value"><g:link controller="task" action="show" id="${taskRecurringScheduleInstance?.lastGeneratedSubTask?.id}">${taskRecurringScheduleInstance?.lastGeneratedSubTask?.encodeAsHTML()}</g:link></td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Is Enabled:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:taskRecurringScheduleInstance, field:'isEnabled')}</td>
                             
                         </tr>
@@ -47,12 +54,5 @@
                             <td valign="top" class="name">Next Due Date:</td>
                             
-                            <td valign="top" class="value">${fieldValue(bean:recurringScheduleInstance, field:'nextDueDate')}</td>
-                            
-                        </tr>
-                    
-                        <tr class="prop">
-                            <td valign="top" class="name">Is Active:</td>
-                            
-                            <td valign="top" class="value">${fieldValue(bean:recurringScheduleInstance, field:'isActive')}</td>
+                            <td valign="top" class="value">${fieldValue(bean:taskRecurringScheduleInstance, field:'nextDueDate')}</td>
                             
                         </tr>
@@ -61,5 +61,5 @@
                             <td valign="top" class="name">Period:</td>
                             
-                            <td valign="top" class="value"><g:link controller="period" action="show" id="${recurringScheduleInstance?.period?.id}">${recurringScheduleInstance?.period?.encodeAsHTML()}</g:link></td>
+                            <td valign="top" class="value"><g:link controller="period" action="show" id="${taskRecurringScheduleInstance?.period?.id}">${taskRecurringScheduleInstance?.period?.encodeAsHTML()}</g:link></td>
                             
                         </tr>
@@ -68,5 +68,5 @@
                             <td valign="top" class="name">Recur Every:</td>
                             
-                            <td valign="top" class="value">${fieldValue(bean:recurringScheduleInstance, field:'recurEvery')}</td>
+                            <td valign="top" class="value">${fieldValue(bean:taskRecurringScheduleInstance, field:'recurEvery')}</td>
                             
                         </tr>
@@ -75,5 +75,5 @@
                             <td valign="top" class="name">Start Date:</td>
                             
-                            <td valign="top" class="value">${fieldValue(bean:recurringScheduleInstance, field:'startDate')}</td>
+                            <td valign="top" class="value">${fieldValue(bean:taskRecurringScheduleInstance, field:'startDate')}</td>
                             
                         </tr>
@@ -82,5 +82,5 @@
                             <td valign="top" class="name">Task:</td>
                             
-                            <td valign="top" class="value"><g:link controller="task" action="show" id="${recurringScheduleInstance?.task?.id}">${recurringScheduleInstance?.task?.encodeAsHTML()}</g:link></td>
+                            <td valign="top" class="value"><g:link controller="task" action="show" id="${taskRecurringScheduleInstance?.task?.id}">${taskRecurringScheduleInstance?.task?.encodeAsHTML()}</g:link></td>
                             
                         </tr>
@@ -91,5 +91,5 @@
             <div class="buttons">
                 <g:form>
-                    <input type="hidden" name="id" value="${recurringScheduleInstance?.id}" />
+                    <input type="hidden" name="id" value="${taskRecurringScheduleInstance?.id}" />
                     <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
                     <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
Index: trunk/grails-app/views/taskRecurringScheduleDetailed/list.gsp
===================================================================
--- trunk/grails-app/views/taskRecurringScheduleDetailed/list.gsp	(revision 130)
+++ trunk/grails-app/views/taskRecurringScheduleDetailed/list.gsp	(revision 131)
@@ -5,13 +5,13 @@
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
         <meta name="layout" content="main" />
-        <title>RecurringSchedule List</title>
+        <title>TaskRecurringSchedule List</title>
     </head>
     <body>
         <div class="nav">
             <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
-            <span class="menuButton"><g:link class="create" action="create">New RecurringSchedule</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New TaskRecurringSchedule</g:link></span>
         </div>
         <div class="body">
-            <h1>RecurringSchedule List</h1>
+            <h1>TaskRecurringSchedule List</h1>
             <g:if test="${flash.message}">
             <div class="message">${flash.message}</div>
@@ -37,18 +37,18 @@
                     </thead>
                     <tbody>
-                    <g:each in="${recurringScheduleInstanceList}" status="i" var="recurringScheduleInstance">
+                    <g:each in="${taskRecurringScheduleInstanceList}" status="i" var="taskRecurringScheduleInstance">
                         <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
                         
-                            <td><g:link action="show" id="${recurringScheduleInstance.id}">${fieldValue(bean:recurringScheduleInstance, field:'id')}</g:link></td>
+                            <td><g:link action="show" id="${taskRecurringScheduleInstance.id}">${fieldValue(bean:taskRecurringScheduleInstance, field:'id')}</g:link></td>
                         
-                            <td>${fieldValue(bean:recurringScheduleInstance, field:'plannedMaintenance')}</td>
+                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'task')}</td>
                         
-                            <td>${fieldValue(bean:recurringScheduleInstance, field:'isActive')}</td>
+                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'isActive')}</td>
                         
-                            <td>${fieldValue(bean:recurringScheduleInstance, field:'period')}</td>
+                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'period')}</td>
                         
-                            <td>${fieldValue(bean:recurringScheduleInstance, field:'recurEvery')}</td>
+                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'recurEvery')}</td>
                         
-                            <td>${fieldValue(bean:recurringScheduleInstance, field:'startDate')}</td>
+                            <td>${fieldValue(bean:taskRecurringScheduleInstance, field:'startDate')}</td>
                         
                         </tr>
@@ -58,5 +58,5 @@
             </div>
             <div class="paginateButtons">
-                <g:paginate total="${recurringScheduleInstanceTotal}" />
+                <g:paginate total="${taskRecurringScheduleInstanceTotal}" />
             </div>
         </div>
Index: trunk/src/templates/scaffolding/Controller.groovy
===================================================================
--- trunk/src/templates/scaffolding/Controller.groovy	(revision 130)
+++ trunk/src/templates/scaffolding/Controller.groovy	(revision 131)
@@ -1,5 +1,5 @@
+import org.codehaus.groovy.grails.plugins.springsecurity.Secured
 
-
-<%=packageName ? "package ${packageName}\n\n" : ''%>class ${className}Controller {
+<%=packageName ? "package ${packageName}\n\n" : ''%>class ${className}Controller extends BaseAppAdminController {
     
     def index = { redirect(action:list,params:params) }
