Index: trunk/grails-app/controllers/AssetExtendedAttributeController.groovy
===================================================================
--- trunk/grails-app/controllers/AssetExtendedAttributeController.groovy	(revision 122)
+++ trunk/grails-app/controllers/AssetExtendedAttributeController.groovy	(revision 122)
@@ -0,0 +1,99 @@
+import org.codehaus.groovy.grails.plugins.springsecurity.Secured
+
+class AssetExtendedAttributeController 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)
+        [ assetExtendedAttributeInstanceList: AssetExtendedAttribute.list( params ), assetExtendedAttributeInstanceTotal: AssetExtendedAttribute.count() ]
+    }
+
+    def show = {
+        def assetExtendedAttributeInstance = AssetExtendedAttribute.get( params.id )
+
+        if(!assetExtendedAttributeInstance) {
+            flash.message = "AssetExtendedAttribute not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else { return [ assetExtendedAttributeInstance : assetExtendedAttributeInstance ] }
+    }
+
+    def delete = {
+        def assetExtendedAttributeInstance = AssetExtendedAttribute.get( params.id )
+        if(assetExtendedAttributeInstance) {
+            try {
+                assetExtendedAttributeInstance.delete()
+                flash.message = "AssetExtendedAttribute ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "AssetExtendedAttribute ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "AssetExtendedAttribute not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def edit = {
+        def assetExtendedAttributeInstance = AssetExtendedAttribute.get( params.id )
+
+        if(!assetExtendedAttributeInstance) {
+            flash.message = "AssetExtendedAttribute not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else {
+            return [ assetExtendedAttributeInstance : assetExtendedAttributeInstance ]
+        }
+    }
+
+    def update = {
+        def assetExtendedAttributeInstance = AssetExtendedAttribute.get( params.id )
+        if(assetExtendedAttributeInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(assetExtendedAttributeInstance.version > version) {
+                    
+                    assetExtendedAttributeInstance.errors.rejectValue("version", "assetExtendedAttribute.optimistic.locking.failure", "Another user has updated this AssetExtendedAttribute while you were editing.")
+                    render(view:'edit',model:[assetExtendedAttributeInstance:assetExtendedAttributeInstance])
+                    return
+                }
+            }
+            assetExtendedAttributeInstance.properties = params
+            if(!assetExtendedAttributeInstance.hasErrors() && assetExtendedAttributeInstance.save()) {
+                flash.message = "AssetExtendedAttribute ${params.id} updated"
+                redirect(action:show,id:assetExtendedAttributeInstance.id)
+            }
+            else {
+                render(view:'edit',model:[assetExtendedAttributeInstance:assetExtendedAttributeInstance])
+            }
+        }
+        else {
+            flash.message = "AssetExtendedAttribute not found with id ${params.id}"
+            redirect(action:edit,id:params.id)
+        }
+    }
+
+    def create = {
+        def assetExtendedAttributeInstance = new AssetExtendedAttribute()
+        assetExtendedAttributeInstance.properties = params
+        return ['assetExtendedAttributeInstance':assetExtendedAttributeInstance]
+    }
+
+    def save = {
+        def assetExtendedAttributeInstance = new AssetExtendedAttribute(params)
+        if(!assetExtendedAttributeInstance.hasErrors() && assetExtendedAttributeInstance.save()) {
+            flash.message = "AssetExtendedAttribute ${assetExtendedAttributeInstance.id} created"
+            redirect(action:show,id:assetExtendedAttributeInstance.id)
+        }
+        else {
+            render(view:'create',model:[assetExtendedAttributeInstance:assetExtendedAttributeInstance])
+        }
+    }
+}
Index: trunk/grails-app/controllers/AssetExtendedAttributeTypeController.groovy
===================================================================
--- trunk/grails-app/controllers/AssetExtendedAttributeTypeController.groovy	(revision 122)
+++ trunk/grails-app/controllers/AssetExtendedAttributeTypeController.groovy	(revision 122)
@@ -0,0 +1,99 @@
+import org.codehaus.groovy.grails.plugins.springsecurity.Secured
+
+class AssetExtendedAttributeTypeController 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)
+        [ assetExtendedAttributeTypeInstanceList: AssetExtendedAttributeType.list( params ), assetExtendedAttributeTypeInstanceTotal: AssetExtendedAttributeType.count() ]
+    }
+
+    def show = {
+        def assetExtendedAttributeTypeInstance = AssetExtendedAttributeType.get( params.id )
+
+        if(!assetExtendedAttributeTypeInstance) {
+            flash.message = "AssetExtendedAttributeType not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else { return [ assetExtendedAttributeTypeInstance : assetExtendedAttributeTypeInstance ] }
+    }
+
+    def delete = {
+        def assetExtendedAttributeTypeInstance = AssetExtendedAttributeType.get( params.id )
+        if(assetExtendedAttributeTypeInstance) {
+            try {
+                assetExtendedAttributeTypeInstance.delete()
+                flash.message = "AssetExtendedAttributeType ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "AssetExtendedAttributeType ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "AssetExtendedAttributeType not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def edit = {
+        def assetExtendedAttributeTypeInstance = AssetExtendedAttributeType.get( params.id )
+
+        if(!assetExtendedAttributeTypeInstance) {
+            flash.message = "AssetExtendedAttributeType not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else {
+            return [ assetExtendedAttributeTypeInstance : assetExtendedAttributeTypeInstance ]
+        }
+    }
+
+    def update = {
+        def assetExtendedAttributeTypeInstance = AssetExtendedAttributeType.get( params.id )
+        if(assetExtendedAttributeTypeInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(assetExtendedAttributeTypeInstance.version > version) {
+                    
+                    assetExtendedAttributeTypeInstance.errors.rejectValue("version", "assetExtendedAttributeType.optimistic.locking.failure", "Another user has updated this AssetExtendedAttributeType while you were editing.")
+                    render(view:'edit',model:[assetExtendedAttributeTypeInstance:assetExtendedAttributeTypeInstance])
+                    return
+                }
+            }
+            assetExtendedAttributeTypeInstance.properties = params
+            if(!assetExtendedAttributeTypeInstance.hasErrors() && assetExtendedAttributeTypeInstance.save()) {
+                flash.message = "AssetExtendedAttributeType ${params.id} updated"
+                redirect(action:show,id:assetExtendedAttributeTypeInstance.id)
+            }
+            else {
+                render(view:'edit',model:[assetExtendedAttributeTypeInstance:assetExtendedAttributeTypeInstance])
+            }
+        }
+        else {
+            flash.message = "AssetExtendedAttributeType not found with id ${params.id}"
+            redirect(action:edit,id:params.id)
+        }
+    }
+
+    def create = {
+        def assetExtendedAttributeTypeInstance = new AssetExtendedAttributeType()
+        assetExtendedAttributeTypeInstance.properties = params
+        return ['assetExtendedAttributeTypeInstance':assetExtendedAttributeTypeInstance]
+    }
+
+    def save = {
+        def assetExtendedAttributeTypeInstance = new AssetExtendedAttributeType(params)
+        if(!assetExtendedAttributeTypeInstance.hasErrors() && assetExtendedAttributeTypeInstance.save()) {
+            flash.message = "AssetExtendedAttributeType ${assetExtendedAttributeTypeInstance.id} created"
+            redirect(action:show,id:assetExtendedAttributeTypeInstance.id)
+        }
+        else {
+            render(view:'create',model:[assetExtendedAttributeTypeInstance:assetExtendedAttributeTypeInstance])
+        }
+    }
+}
Index: trunk/grails-app/controllers/EntryController.groovy
===================================================================
--- trunk/grails-app/controllers/EntryController.groovy	(revision 118)
+++ trunk/grails-app/controllers/EntryController.groovy	(revision 122)
@@ -9,6 +9,6 @@
 
     def list = {
-        if(!params.max) params.max = 10
-        [ entryInstanceList: Entry.list( params ) ]
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ entryInstanceList: Entry.list( params ), entryInstanceTotal: Entry.count() ]
     }
 
@@ -26,7 +26,13 @@
         def entryInstance = Entry.get( params.id )
         if(entryInstance) {
-            entryInstance.delete()
-            flash.message = "Entry ${params.id} deleted"
-            redirect(action:list)
+            try {
+                entryInstance.delete()
+                flash.message = "Entry ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "Entry ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
         }
         else {
@@ -51,4 +57,13 @@
         def entryInstance = Entry.get( params.id )
         if(entryInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(entryInstance.version > version) {
+                    
+                    entryInstance.errors.rejectValue("version", "entry.optimistic.locking.failure", "Another user has updated this Entry while you were editing.")
+                    render(view:'edit',model:[entryInstance:entryInstance])
+                    return
+                }
+            }
             entryInstance.properties = params
             if(!entryInstance.hasErrors() && entryInstance.save()) {
Index: trunk/grails-app/controllers/EntryTypeController.groovy
===================================================================
--- trunk/grails-app/controllers/EntryTypeController.groovy	(revision 118)
+++ trunk/grails-app/controllers/EntryTypeController.groovy	(revision 122)
@@ -9,6 +9,6 @@
 
     def list = {
-        if(!params.max) params.max = 10
-        [ entryTypeInstanceList: EntryType.list( params ) ]
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ entryTypeInstanceList: EntryType.list( params ), entryTypeInstanceTotal: EntryType.count() ]
     }
 
@@ -26,7 +26,13 @@
         def entryTypeInstance = EntryType.get( params.id )
         if(entryTypeInstance) {
-            entryTypeInstance.delete()
-            flash.message = "EntryType ${params.id} deleted"
-            redirect(action:list)
+            try {
+                entryTypeInstance.delete()
+                flash.message = "EntryType ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "EntryType ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
         }
         else {
@@ -51,4 +57,13 @@
         def entryTypeInstance = EntryType.get( params.id )
         if(entryTypeInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(entryTypeInstance.version > version) {
+                    
+                    entryTypeInstance.errors.rejectValue("version", "entryType.optimistic.locking.failure", "Another user has updated this EntryType while you were editing.")
+                    render(view:'edit',model:[entryTypeInstance:entryTypeInstance])
+                    return
+                }
+            }
             entryTypeInstance.properties = params
             if(!entryTypeInstance.hasErrors() && entryTypeInstance.save()) {
Index: trunk/grails-app/controllers/FormController.groovy
===================================================================
--- trunk/grails-app/controllers/FormController.groovy	(revision 118)
+++ 	(revision )
@@ -1,99 +1,0 @@
-import org.codehaus.groovy.grails.plugins.springsecurity.Secured
-
-class FormController 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)
-        [ formInstanceList: Form.list( params ), formInstanceTotal: Form.count() ]
-    }
-
-    def show = {
-        def formInstance = Form.get( params.id )
-
-        if(!formInstance) {
-            flash.message = "Form not found with id ${params.id}"
-            redirect(action:list)
-        }
-        else { return [ formInstance : formInstance ] }
-    }
-
-    def delete = {
-        def formInstance = Form.get( params.id )
-        if(formInstance) {
-            try {
-                formInstance.delete()
-                flash.message = "Form ${params.id} deleted"
-                redirect(action:list)
-            }
-            catch(org.springframework.dao.DataIntegrityViolationException e) {
-                flash.message = "Form ${params.id} could not be deleted"
-                redirect(action:show,id:params.id)
-            }
-        }
-        else {
-            flash.message = "Form not found with id ${params.id}"
-            redirect(action:list)
-        }
-    }
-
-    def edit = {
-        def formInstance = Form.get( params.id )
-
-        if(!formInstance) {
-            flash.message = "Form not found with id ${params.id}"
-            redirect(action:list)
-        }
-        else {
-            return [ formInstance : formInstance ]
-        }
-    }
-
-    def update = {
-        def formInstance = Form.get( params.id )
-        if(formInstance) {
-            if(params.version) {
-                def version = params.version.toLong()
-                if(formInstance.version > version) {
-                    
-                    formInstance.errors.rejectValue("version", "form.optimistic.locking.failure", "Another user has updated this Form while you were editing.")
-                    render(view:'edit',model:[formInstance:formInstance])
-                    return
-                }
-            }
-            formInstance.properties = params
-            if(!formInstance.hasErrors() && formInstance.save()) {
-                flash.message = "Form ${params.id} updated"
-                redirect(action:show,id:formInstance.id)
-            }
-            else {
-                render(view:'edit',model:[formInstance:formInstance])
-            }
-        }
-        else {
-            flash.message = "Form not found with id ${params.id}"
-            redirect(action:edit,id:params.id)
-        }
-    }
-
-    def create = {
-        def formInstance = new Form()
-        formInstance.properties = params
-        return ['formInstance':formInstance]
-    }
-
-    def save = {
-        def formInstance = new Form(params)
-        if(!formInstance.hasErrors() && formInstance.save()) {
-            flash.message = "Form ${formInstance.id} created"
-            redirect(action:show,id:formInstance.id)
-        }
-        else {
-            render(view:'create',model:[formInstance:formInstance])
-        }
-    }
-}
Index: trunk/grails-app/controllers/FrequencyController.groovy
===================================================================
--- trunk/grails-app/controllers/FrequencyController.groovy	(revision 118)
+++ 	(revision )
@@ -1,99 +1,0 @@
-import org.codehaus.groovy.grails.plugins.springsecurity.Secured
-
-class FrequencyController 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)
-        [ frequencyInstanceList: Frequency.list( params ), frequencyInstanceTotal: Frequency.count() ]
-    }
-
-    def show = {
-        def frequencyInstance = Frequency.get( params.id )
-
-        if(!frequencyInstance) {
-            flash.message = "Frequency not found with id ${params.id}"
-            redirect(action:list)
-        }
-        else { return [ frequencyInstance : frequencyInstance ] }
-    }
-
-    def delete = {
-        def frequencyInstance = Frequency.get( params.id )
-        if(frequencyInstance) {
-            try {
-                frequencyInstance.delete()
-                flash.message = "Frequency ${params.id} deleted"
-                redirect(action:list)
-            }
-            catch(org.springframework.dao.DataIntegrityViolationException e) {
-                flash.message = "Frequency ${params.id} could not be deleted"
-                redirect(action:show,id:params.id)
-            }
-        }
-        else {
-            flash.message = "Frequency not found with id ${params.id}"
-            redirect(action:list)
-        }
-    }
-
-    def edit = {
-        def frequencyInstance = Frequency.get( params.id )
-
-        if(!frequencyInstance) {
-            flash.message = "Frequency not found with id ${params.id}"
-            redirect(action:list)
-        }
-        else {
-            return [ frequencyInstance : frequencyInstance ]
-        }
-    }
-
-    def update = {
-        def frequencyInstance = Frequency.get( params.id )
-        if(frequencyInstance) {
-            if(params.version) {
-                def version = params.version.toLong()
-                if(frequencyInstance.version > version) {
-                    
-                    frequencyInstance.errors.rejectValue("version", "frequency.optimistic.locking.failure", "Another user has updated this Frequency while you were editing.")
-                    render(view:'edit',model:[frequencyInstance:frequencyInstance])
-                    return
-                }
-            }
-            frequencyInstance.properties = params
-            if(!frequencyInstance.hasErrors() && frequencyInstance.save()) {
-                flash.message = "Frequency ${params.id} updated"
-                redirect(action:show,id:frequencyInstance.id)
-            }
-            else {
-                render(view:'edit',model:[frequencyInstance:frequencyInstance])
-            }
-        }
-        else {
-            flash.message = "Frequency not found with id ${params.id}"
-            redirect(action:edit,id:params.id)
-        }
-    }
-
-    def create = {
-        def frequencyInstance = new Frequency()
-        frequencyInstance.properties = params
-        return ['frequencyInstance':frequencyInstance]
-    }
-
-    def save = {
-        def frequencyInstance = new Frequency(params)
-        if(!frequencyInstance.hasErrors() && frequencyInstance.save()) {
-            flash.message = "Frequency ${frequencyInstance.id} created"
-            redirect(action:show,id:frequencyInstance.id)
-        }
-        else {
-            render(view:'create',model:[frequencyInstance:frequencyInstance])
-        }
-    }
-}
Index: trunk/grails-app/controllers/MaintenanceActionController.groovy
===================================================================
--- trunk/grails-app/controllers/MaintenanceActionController.groovy	(revision 122)
+++ trunk/grails-app/controllers/MaintenanceActionController.groovy	(revision 122)
@@ -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/MaintenancePolicyController.groovy
===================================================================
--- trunk/grails-app/controllers/MaintenancePolicyController.groovy	(revision 122)
+++ trunk/grails-app/controllers/MaintenancePolicyController.groovy	(revision 122)
@@ -0,0 +1,99 @@
+import org.codehaus.groovy.grails.plugins.springsecurity.Secured
+
+class MaintenancePolicyController 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)
+        [ maintenancePolicyInstanceList: MaintenancePolicy.list( params ), maintenancePolicyInstanceTotal: MaintenancePolicy.count() ]
+    }
+
+    def show = {
+        def maintenancePolicyInstance = MaintenancePolicy.get( params.id )
+
+        if(!maintenancePolicyInstance) {
+            flash.message = "MaintenancePolicy not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else { return [ maintenancePolicyInstance : maintenancePolicyInstance ] }
+    }
+
+    def delete = {
+        def maintenancePolicyInstance = MaintenancePolicy.get( params.id )
+        if(maintenancePolicyInstance) {
+            try {
+                maintenancePolicyInstance.delete()
+                flash.message = "MaintenancePolicy ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "MaintenancePolicy ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "MaintenancePolicy not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def edit = {
+        def maintenancePolicyInstance = MaintenancePolicy.get( params.id )
+
+        if(!maintenancePolicyInstance) {
+            flash.message = "MaintenancePolicy not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else {
+            return [ maintenancePolicyInstance : maintenancePolicyInstance ]
+        }
+    }
+
+    def update = {
+        def maintenancePolicyInstance = MaintenancePolicy.get( params.id )
+        if(maintenancePolicyInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(maintenancePolicyInstance.version > version) {
+                    
+                    maintenancePolicyInstance.errors.rejectValue("version", "maintenancePolicy.optimistic.locking.failure", "Another user has updated this MaintenancePolicy while you were editing.")
+                    render(view:'edit',model:[maintenancePolicyInstance:maintenancePolicyInstance])
+                    return
+                }
+            }
+            maintenancePolicyInstance.properties = params
+            if(!maintenancePolicyInstance.hasErrors() && maintenancePolicyInstance.save()) {
+                flash.message = "MaintenancePolicy ${params.id} updated"
+                redirect(action:show,id:maintenancePolicyInstance.id)
+            }
+            else {
+                render(view:'edit',model:[maintenancePolicyInstance:maintenancePolicyInstance])
+            }
+        }
+        else {
+            flash.message = "MaintenancePolicy not found with id ${params.id}"
+            redirect(action:edit,id:params.id)
+        }
+    }
+
+    def create = {
+        def maintenancePolicyInstance = new MaintenancePolicy()
+        maintenancePolicyInstance.properties = params
+        return ['maintenancePolicyInstance':maintenancePolicyInstance]
+    }
+
+    def save = {
+        def maintenancePolicyInstance = new MaintenancePolicy(params)
+        if(!maintenancePolicyInstance.hasErrors() && maintenancePolicyInstance.save()) {
+            flash.message = "MaintenancePolicy ${maintenancePolicyInstance.id} created"
+            redirect(action:show,id:maintenancePolicyInstance.id)
+        }
+        else {
+            render(view:'create',model:[maintenancePolicyInstance:maintenancePolicyInstance])
+        }
+    }
+}
Index: trunk/grails-app/controllers/PeriodController.groovy
===================================================================
--- trunk/grails-app/controllers/PeriodController.groovy	(revision 122)
+++ trunk/grails-app/controllers/PeriodController.groovy	(revision 122)
@@ -0,0 +1,99 @@
+import org.codehaus.groovy.grails.plugins.springsecurity.Secured
+
+class PeriodController 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)
+        [ periodInstanceList: Period.list( params ), periodInstanceTotal: Period.count() ]
+    }
+
+    def show = {
+        def periodInstance = Period.get( params.id )
+
+        if(!periodInstance) {
+            flash.message = "Period not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else { return [ periodInstance : periodInstance ] }
+    }
+
+    def delete = {
+        def periodInstance = Period.get( params.id )
+        if(periodInstance) {
+            try {
+                periodInstance.delete()
+                flash.message = "Period ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "Period ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "Period not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def edit = {
+        def periodInstance = Period.get( params.id )
+
+        if(!periodInstance) {
+            flash.message = "Period not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else {
+            return [ periodInstance : periodInstance ]
+        }
+    }
+
+    def update = {
+        def periodInstance = Period.get( params.id )
+        if(periodInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(periodInstance.version > version) {
+                    
+                    periodInstance.errors.rejectValue("version", "period.optimistic.locking.failure", "Another user has updated this Period while you were editing.")
+                    render(view:'edit',model:[periodInstance:periodInstance])
+                    return
+                }
+            }
+            periodInstance.properties = params
+            if(!periodInstance.hasErrors() && periodInstance.save()) {
+                flash.message = "Period ${params.id} updated"
+                redirect(action:show,id:periodInstance.id)
+            }
+            else {
+                render(view:'edit',model:[periodInstance:periodInstance])
+            }
+        }
+        else {
+            flash.message = "Period not found with id ${params.id}"
+            redirect(action:edit,id:params.id)
+        }
+    }
+
+    def create = {
+        def periodInstance = new Period()
+        periodInstance.properties = params
+        return ['periodInstance':periodInstance]
+    }
+
+    def save = {
+        def periodInstance = new Period(params)
+        if(!periodInstance.hasErrors() && periodInstance.save()) {
+            flash.message = "Period ${periodInstance.id} created"
+            redirect(action:show,id:periodInstance.id)
+        }
+        else {
+            render(view:'create',model:[periodInstance:periodInstance])
+        }
+    }
+}
Index: trunk/grails-app/controllers/PersonGroupController.groovy
===================================================================
--- trunk/grails-app/controllers/PersonGroupController.groovy	(revision 118)
+++ trunk/grails-app/controllers/PersonGroupController.groovy	(revision 122)
@@ -2,5 +2,5 @@
 
 class PersonGroupController extends BaseAppAdminController {
-
+    
     def index = { redirect(action:list,params:params) }
 
@@ -9,6 +9,6 @@
 
     def list = {
-        if(!params.max) params.max = 10
-        [ personGroupInstanceList: PersonGroup.list( params ) ]
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ personGroupInstanceList: PersonGroup.list( params ), personGroupInstanceTotal: PersonGroup.count() ]
     }
 
@@ -26,7 +26,13 @@
         def personGroupInstance = PersonGroup.get( params.id )
         if(personGroupInstance) {
-            personGroupInstance.delete()
-            flash.message = "PersonGroup ${params.id} deleted"
-            redirect(action:list)
+            try {
+                personGroupInstance.delete()
+                flash.message = "PersonGroup ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "PersonGroup ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
         }
         else {
@@ -51,4 +57,13 @@
         def personGroupInstance = PersonGroup.get( params.id )
         if(personGroupInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(personGroupInstance.version > version) {
+                    
+                    personGroupInstance.errors.rejectValue("version", "personGroup.optimistic.locking.failure", "Another user has updated this PersonGroup while you were editing.")
+                    render(view:'edit',model:[personGroupInstance:personGroupInstance])
+                    return
+                }
+            }
             personGroupInstance.properties = params
             if(!personGroupInstance.hasErrors() && personGroupInstance.save()) {
Index: trunk/grails-app/controllers/PersonGroupTypeController.groovy
===================================================================
--- trunk/grails-app/controllers/PersonGroupTypeController.groovy	(revision 118)
+++ trunk/grails-app/controllers/PersonGroupTypeController.groovy	(revision 122)
@@ -2,5 +2,5 @@
 
 class PersonGroupTypeController extends BaseAppAdminController {
-
+    
     def index = { redirect(action:list,params:params) }
 
@@ -9,6 +9,6 @@
 
     def list = {
-        if(!params.max) params.max = 10
-        [ personGroupTypeInstanceList: PersonGroupType.list( params ) ]
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ personGroupTypeInstanceList: PersonGroupType.list( params ), personGroupTypeInstanceTotal: PersonGroupType.count() ]
     }
 
@@ -26,7 +26,13 @@
         def personGroupTypeInstance = PersonGroupType.get( params.id )
         if(personGroupTypeInstance) {
-            personGroupTypeInstance.delete()
-            flash.message = "PersonGroupType ${params.id} deleted"
-            redirect(action:list)
+            try {
+                personGroupTypeInstance.delete()
+                flash.message = "PersonGroupType ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "PersonGroupType ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
         }
         else {
@@ -51,4 +57,13 @@
         def personGroupTypeInstance = PersonGroupType.get( params.id )
         if(personGroupTypeInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(personGroupTypeInstance.version > version) {
+                    
+                    personGroupTypeInstance.errors.rejectValue("version", "personGroupType.optimistic.locking.failure", "Another user has updated this PersonGroupType while you were editing.")
+                    render(view:'edit',model:[personGroupTypeInstance:personGroupTypeInstance])
+                    return
+                }
+            }
             personGroupTypeInstance.properties = params
             if(!personGroupTypeInstance.hasErrors() && personGroupTypeInstance.save()) {
Index: trunk/grails-app/controllers/PlannedMaintenanceController.groovy
===================================================================
--- trunk/grails-app/controllers/PlannedMaintenanceController.groovy	(revision 122)
+++ trunk/grails-app/controllers/PlannedMaintenanceController.groovy	(revision 122)
@@ -0,0 +1,99 @@
+import org.codehaus.groovy.grails.plugins.springsecurity.Secured
+
+class PlannedMaintenanceController 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)
+        [ plannedMaintenanceInstanceList: PlannedMaintenance.list( params ), plannedMaintenanceInstanceTotal: PlannedMaintenance.count() ]
+    }
+
+    def show = {
+        def plannedMaintenanceInstance = PlannedMaintenance.get( params.id )
+
+        if(!plannedMaintenanceInstance) {
+            flash.message = "PlannedMaintenance not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else { return [ plannedMaintenanceInstance : plannedMaintenanceInstance ] }
+    }
+
+    def delete = {
+        def plannedMaintenanceInstance = PlannedMaintenance.get( params.id )
+        if(plannedMaintenanceInstance) {
+            try {
+                plannedMaintenanceInstance.delete()
+                flash.message = "PlannedMaintenance ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "PlannedMaintenance ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "PlannedMaintenance not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def edit = {
+        def plannedMaintenanceInstance = PlannedMaintenance.get( params.id )
+
+        if(!plannedMaintenanceInstance) {
+            flash.message = "PlannedMaintenance not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else {
+            return [ plannedMaintenanceInstance : plannedMaintenanceInstance ]
+        }
+    }
+
+    def update = {
+        def plannedMaintenanceInstance = PlannedMaintenance.get( params.id )
+        if(plannedMaintenanceInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(plannedMaintenanceInstance.version > version) {
+                    
+                    plannedMaintenanceInstance.errors.rejectValue("version", "plannedMaintenance.optimistic.locking.failure", "Another user has updated this PlannedMaintenance while you were editing.")
+                    render(view:'edit',model:[plannedMaintenanceInstance:plannedMaintenanceInstance])
+                    return
+                }
+            }
+            plannedMaintenanceInstance.properties = params
+            if(!plannedMaintenanceInstance.hasErrors() && plannedMaintenanceInstance.save()) {
+                flash.message = "PlannedMaintenance ${params.id} updated"
+                redirect(action:show,id:plannedMaintenanceInstance.id)
+            }
+            else {
+                render(view:'edit',model:[plannedMaintenanceInstance:plannedMaintenanceInstance])
+            }
+        }
+        else {
+            flash.message = "PlannedMaintenance not found with id ${params.id}"
+            redirect(action:edit,id:params.id)
+        }
+    }
+
+    def create = {
+        def plannedMaintenanceInstance = new PlannedMaintenance()
+        plannedMaintenanceInstance.properties = params
+        return ['plannedMaintenanceInstance':plannedMaintenanceInstance]
+    }
+
+    def save = {
+        def plannedMaintenanceInstance = new PlannedMaintenance(params)
+        if(!plannedMaintenanceInstance.hasErrors() && plannedMaintenanceInstance.save()) {
+            flash.message = "PlannedMaintenance ${plannedMaintenanceInstance.id} created"
+            redirect(action:show,id:plannedMaintenanceInstance.id)
+        }
+        else {
+            render(view:'create',model:[plannedMaintenanceInstance:plannedMaintenanceInstance])
+        }
+    }
+}
Index: trunk/grails-app/controllers/RecurringScheduleController.groovy
===================================================================
--- trunk/grails-app/controllers/RecurringScheduleController.groovy	(revision 122)
+++ trunk/grails-app/controllers/RecurringScheduleController.groovy	(revision 122)
@@ -0,0 +1,99 @@
+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/StoredItemController.groovy
===================================================================
--- trunk/grails-app/controllers/StoredItemController.groovy	(revision 118)
+++ trunk/grails-app/controllers/StoredItemController.groovy	(revision 122)
@@ -1,5 +1,5 @@
 import org.codehaus.groovy.grails.plugins.springsecurity.Secured
 
-class StoredItemController extends BaseAppAdminController  {
+class StoredItemController extends BaseAppAdminController {
     
     def index = { redirect(action:list,params:params) }
Index: trunk/grails-app/controllers/TaskGroupController.groovy
===================================================================
--- trunk/grails-app/controllers/TaskGroupController.groovy	(revision 118)
+++ trunk/grails-app/controllers/TaskGroupController.groovy	(revision 122)
@@ -9,6 +9,6 @@
 
     def list = {
-        if(!params.max) params.max = 10
-        [ taskGroupInstanceList: TaskGroup.list( params ) ]
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ taskGroupInstanceList: TaskGroup.list( params ), taskGroupInstanceTotal: TaskGroup.count() ]
     }
 
@@ -26,7 +26,13 @@
         def taskGroupInstance = TaskGroup.get( params.id )
         if(taskGroupInstance) {
-            taskGroupInstance.delete()
-            flash.message = "TaskGroup ${params.id} deleted"
-            redirect(action:list)
+            try {
+                taskGroupInstance.delete()
+                flash.message = "TaskGroup ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "TaskGroup ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
         }
         else {
@@ -51,4 +57,13 @@
         def taskGroupInstance = TaskGroup.get( params.id )
         if(taskGroupInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(taskGroupInstance.version > version) {
+                    
+                    taskGroupInstance.errors.rejectValue("version", "taskGroup.optimistic.locking.failure", "Another user has updated this TaskGroup while you were editing.")
+                    render(view:'edit',model:[taskGroupInstance:taskGroupInstance])
+                    return
+                }
+            }
             taskGroupInstance.properties = params
             if(!taskGroupInstance.hasErrors() && taskGroupInstance.save()) {
Index: trunk/grails-app/controllers/TaskModificationTypeController.groovy
===================================================================
--- trunk/grails-app/controllers/TaskModificationTypeController.groovy	(revision 118)
+++ trunk/grails-app/controllers/TaskModificationTypeController.groovy	(revision 122)
@@ -1,5 +1,5 @@
 import org.codehaus.groovy.grails.plugins.springsecurity.Secured
 
-class TaskModificationTypeController extends BaseAppAdminController{
+class TaskModificationTypeController extends BaseAppAdminController {
     
     def index = { redirect(action:list,params:params) }
Index: trunk/grails-app/controllers/TaskPriorityController.groovy
===================================================================
--- trunk/grails-app/controllers/TaskPriorityController.groovy	(revision 118)
+++ trunk/grails-app/controllers/TaskPriorityController.groovy	(revision 122)
@@ -9,6 +9,6 @@
 
     def list = {
-        if(!params.max) params.max = 10
-        [ taskPriorityInstanceList: TaskPriority.list( params ) ]
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ taskPriorityInstanceList: TaskPriority.list( params ), taskPriorityInstanceTotal: TaskPriority.count() ]
     }
 
@@ -26,7 +26,13 @@
         def taskPriorityInstance = TaskPriority.get( params.id )
         if(taskPriorityInstance) {
-            taskPriorityInstance.delete()
-            flash.message = "TaskPriority ${params.id} deleted"
-            redirect(action:list)
+            try {
+                taskPriorityInstance.delete()
+                flash.message = "TaskPriority ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "TaskPriority ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
         }
         else {
@@ -51,4 +57,13 @@
         def taskPriorityInstance = TaskPriority.get( params.id )
         if(taskPriorityInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(taskPriorityInstance.version > version) {
+                    
+                    taskPriorityInstance.errors.rejectValue("version", "taskPriority.optimistic.locking.failure", "Another user has updated this TaskPriority while you were editing.")
+                    render(view:'edit',model:[taskPriorityInstance:taskPriorityInstance])
+                    return
+                }
+            }
             taskPriorityInstance.properties = params
             if(!taskPriorityInstance.hasErrors() && taskPriorityInstance.save()) {
Index: trunk/grails-app/controllers/TaskStatusController.groovy
===================================================================
--- trunk/grails-app/controllers/TaskStatusController.groovy	(revision 118)
+++ trunk/grails-app/controllers/TaskStatusController.groovy	(revision 122)
@@ -9,6 +9,6 @@
 
     def list = {
-        if(!params.max) params.max = 10
-        [ taskStatusInstanceList: TaskStatus.list( params ) ]
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ taskStatusInstanceList: TaskStatus.list( params ), taskStatusInstanceTotal: TaskStatus.count() ]
     }
 
@@ -26,7 +26,13 @@
         def taskStatusInstance = TaskStatus.get( params.id )
         if(taskStatusInstance) {
-            taskStatusInstance.delete()
-            flash.message = "TaskStatus ${params.id} deleted"
-            redirect(action:list)
+            try {
+                taskStatusInstance.delete()
+                flash.message = "TaskStatus ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "TaskStatus ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
         }
         else {
@@ -51,4 +57,13 @@
         def taskStatusInstance = TaskStatus.get( params.id )
         if(taskStatusInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(taskStatusInstance.version > version) {
+                    
+                    taskStatusInstance.errors.rejectValue("version", "taskStatus.optimistic.locking.failure", "Another user has updated this TaskStatus while you were editing.")
+                    render(view:'edit',model:[taskStatusInstance:taskStatusInstance])
+                    return
+                }
+            }
             taskStatusInstance.properties = params
             if(!taskStatusInstance.hasErrors() && taskStatusInstance.save()) {
Index: trunk/grails-app/controllers/TaskTypeController.groovy
===================================================================
--- trunk/grails-app/controllers/TaskTypeController.groovy	(revision 118)
+++ trunk/grails-app/controllers/TaskTypeController.groovy	(revision 122)
@@ -9,6 +9,6 @@
 
     def list = {
-        if(!params.max) params.max = 10
-        [ taskTypeInstanceList: TaskType.list( params ) ]
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ taskTypeInstanceList: TaskType.list( params ), taskTypeInstanceTotal: TaskType.count() ]
     }
 
@@ -26,7 +26,13 @@
         def taskTypeInstance = TaskType.get( params.id )
         if(taskTypeInstance) {
-            taskTypeInstance.delete()
-            flash.message = "TaskType ${params.id} deleted"
-            redirect(action:list)
+            try {
+                taskTypeInstance.delete()
+                flash.message = "TaskType ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "TaskType ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
         }
         else {
@@ -51,4 +57,13 @@
         def taskTypeInstance = TaskType.get( params.id )
         if(taskTypeInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(taskTypeInstance.version > version) {
+                    
+                    taskTypeInstance.errors.rejectValue("version", "taskType.optimistic.locking.failure", "Another user has updated this TaskType while you were editing.")
+                    render(view:'edit',model:[taskTypeInstance:taskTypeInstance])
+                    return
+                }
+            }
             taskTypeInstance.properties = params
             if(!taskTypeInstance.hasErrors() && taskTypeInstance.save()) {
