Changeset 251

Show
Ignore:
Timestamp:
12/28/09 01:10:24 (4 years ago)
Author:
gav
Message:

Record a taskModification for changes to assignedGroups and assignedPersons as per ticket #35.

Location:
trunk/grails-app/services
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/services/AssignedGroupService.groovy

    r247 r251  
    11class AssignedGroupService { 
     2 
    23    boolean transactional = false 
     4 
     5    def personService 
    36 
    47    def list(params) { 
     
    3740 
    3841    def delete(params) { 
    39         def result = [:] 
    40         def fail = { Map m -> 
    41             result.error = [ code: m.code, args: ["AssignedGroup", params.id] ] 
    42             return result 
    43         } 
     42        AssignedGroup.withTransaction { status -> 
     43            def result = [:] 
    4444 
    45         result.assignedGroupInstance = AssignedGroup.get(params.id) 
     45            def fail = { Map m -> 
     46                status.setRollbackOnly() 
     47                if(result.assignedGroupInstance && m.field) 
     48                    result.assignedGroupInstance.errors.rejectValue(m.field, m.code) 
     49                result.error = [ code: m.code, args: ["AssignedGroup", params.id] ] 
     50                return result 
     51            } 
    4652 
    47         if(!result.assignedGroupInstance) 
    48             return fail(code:"default.not.found") 
     53            result.assignedGroupInstance = AssignedGroup.get(params.id) 
    4954 
    50         try { 
    51             result.assignedGroupInstance.delete(flush:true) 
    52             return result //Success. 
    53         } 
    54         catch(org.springframework.dao.DataIntegrityViolationException e) { 
    55             return fail(code:"default.delete.failure") 
    56         } 
     55            if(!result.assignedGroupInstance) 
     56                return fail(code:"default.not.found") 
    5757 
    58     } 
     58            def taskModification = new TaskModification(person: personService.currentUser, 
     59                                                    taskModificationType: TaskModificationType.get(10), 
     60                                                    task: result.assignedGroupInstance.task) 
     61 
     62            if(!taskModification.save()) 
     63                return fail(field:"taskModifications", code:"task.modifications.failedToSave") 
     64 
     65            try { 
     66                result.assignedGroupInstance.delete(flush:true) 
     67                return result //Success. 
     68            } 
     69            catch(org.springframework.dao.DataIntegrityViolationException e) { 
     70                return fail(code:"default.delete.failure") 
     71            } 
     72 
     73        } //end withTransaction 
     74    } // end delete() 
    5975 
    6076    def edit(params) { 
     
    102118                return fail(code:"default.update.failure") 
    103119 
     120            def taskModification = new TaskModification(person: personService.currentUser, 
     121                                                    taskModificationType: TaskModificationType.get(10), 
     122                                                    task: result.assignedGroupInstance.task) 
     123 
     124            if(!taskModification.save()) 
     125                return fail(field:"taskModifications", code:"task.modifications.failedToSave") 
     126 
    104127            // Success. 
    105128            return result 
     
    126149 
    127150    def save(params) { 
    128         def result = [:] 
    129         def fail = { Map m -> 
    130             if(result.assignedGroupInstance && m.field) 
    131                 result.assignedGroupInstance.errors.rejectValue(m.field, m.code) 
    132             result.error = [ code: m.code, args: ["AssignedGroup", params.id] ] 
     151        AssignedGroup.withTransaction { status -> 
     152            def result = [:] 
     153 
     154            def fail = { Map m -> 
     155                if(result.assignedGroupInstance && m.field) 
     156                    result.assignedGroupInstance.errors.rejectValue(m.field, m.code) 
     157                result.error = [ code: m.code, args: ["AssignedGroup", params.id] ] 
     158                return result 
     159            } 
     160 
     161            result.assignedGroupInstance = new AssignedGroup(params) 
     162 
     163            if(result.assignedGroupInstance.hasErrors() || !result.assignedGroupInstance.save()) 
     164                return fail(code:"default.create.failure") 
     165 
     166            // Record a taskModification for every one except "system". 
     167            if(personService.currentUser.id != 1) { 
     168                def taskModification = new TaskModification(person: personService.currentUser, 
     169                                                        taskModificationType: TaskModificationType.get(10), 
     170                                                        task: result.assignedGroupInstance.task) 
     171 
     172                if(!taskModification.save()) 
     173                    return fail(field:"taskModifications", code:"task.modifications.failedToSave") 
     174            } 
     175 
     176            // success 
    133177            return result 
    134         } 
    135178 
    136         result.assignedGroupInstance = new AssignedGroup(params) 
    137  
    138         if(result.assignedGroupInstance.hasErrors() || !result.assignedGroupInstance.save(flush: true)) 
    139             return fail(code:"default.create.failure") 
    140  
    141         // success 
    142         return result 
    143     } 
     179        } //end withTransaction 
     180    } // end save() 
    144181 
    145182} // end class 
  • trunk/grails-app/services/AssignedPersonService.groovy

    r249 r251  
    11class AssignedPersonService { 
     2 
    23    boolean transactional = false 
     4 
     5    def personService 
    36 
    47    def list(params) { 
     
    3740 
    3841    def delete(params) { 
    39         def result = [:] 
    40         def fail = { Map m -> 
    41             result.error = [ code: m.code, args: ["AssignedPerson", params.id] ] 
    42             return result 
    43         } 
     42        AssignedPerson.withTransaction { status -> 
     43            def result = [:] 
    4444 
    45         result.assignedPersonInstance = AssignedPerson.get(params.id) 
     45            def fail = { Map m -> 
     46                status.setRollbackOnly() 
     47                if(result.assignedPersonInstance && m.field) 
     48                    result.assignedPersonInstance.errors.rejectValue(m.field, m.code) 
     49                result.error = [ code: m.code, args: ["AssignedPerson", params.id] ] 
     50                return result 
     51            } 
    4652 
    47         if(!result.assignedPersonInstance) 
    48             return fail(code:"default.not.found") 
     53            result.assignedPersonInstance = AssignedPerson.get(params.id) 
    4954 
    50         try { 
    51             result.assignedPersonInstance.delete(flush:true) 
    52             return result //Success. 
    53         } 
    54         catch(org.springframework.dao.DataIntegrityViolationException e) { 
    55             return fail(code:"default.delete.failure") 
    56         } 
     55            if(!result.assignedPersonInstance) 
     56                return fail(code:"default.not.found") 
    5757 
    58     } 
     58            def taskModification = new TaskModification(person: personService.currentUser, 
     59                                                    taskModificationType: TaskModificationType.get(11), 
     60                                                    task: result.assignedPersonInstance.task) 
     61 
     62            if(!taskModification.save()) 
     63                return fail(field:"taskModifications", code:"task.modifications.failedToSave") 
     64 
     65            try { 
     66                result.assignedPersonInstance.delete(flush:true) 
     67                return result //Success. 
     68            } 
     69            catch(org.springframework.dao.DataIntegrityViolationException e) { 
     70                return fail(code:"default.delete.failure") 
     71            } 
     72 
     73        } //end withTransaction 
     74    } // end delete() 
    5975 
    6076    def edit(params) { 
     
    102118                return fail(code:"default.update.failure") 
    103119 
     120            def taskModification = new TaskModification(person: personService.currentUser, 
     121                                                    taskModificationType: TaskModificationType.get(11), 
     122                                                    task: result.assignedPersonInstance.task) 
     123 
     124            if(!taskModification.save()) 
     125                return fail(field:"taskModifications", code:"task.modifications.failedToSave") 
     126 
    104127            // Success. 
    105128            return result 
     
    126149 
    127150    def save(params) { 
    128         def result = [:] 
    129         def fail = { Map m -> 
    130             if(result.assignedPersonInstance && m.field) 
    131                 result.assignedPersonInstance.errors.rejectValue(m.field, m.code) 
    132             result.error = [ code: m.code, args: ["AssignedPerson", params.id] ] 
     151        AssignedPerson.withTransaction { status -> 
     152            def result = [:] 
     153 
     154            def fail = { Map m -> 
     155                if(result.assignedPersonInstance && m.field) 
     156                    result.assignedPersonInstance.errors.rejectValue(m.field, m.code) 
     157                result.error = [ code: m.code, args: ["AssignedPerson", params.id] ] 
     158                return result 
     159            } 
     160 
     161            result.assignedPersonInstance = new AssignedPerson(params) 
     162 
     163            if(result.assignedPersonInstance.hasErrors() || !result.assignedPersonInstance.save()) 
     164                return fail(code:"default.create.failure") 
     165 
     166            // Record a taskModification for every one except "system". 
     167            if(personService.currentUser.id != 1) { 
     168                def taskModification = new TaskModification(person: personService.currentUser, 
     169                                                        taskModificationType: TaskModificationType.get(11), 
     170                                                        task: result.assignedPersonInstance.task) 
     171 
     172                if(!taskModification.save()) 
     173                    return fail(field:"taskModifications", code:"task.modifications.failedToSave") 
     174            } 
     175 
     176            // success 
    133177            return result 
    134         } 
    135178 
    136         result.assignedPersonInstance = new AssignedPerson(params) 
    137  
    138         if(result.assignedPersonInstance.hasErrors() || !result.assignedPersonInstance.save(flush: true)) 
    139             return fail(code:"default.create.failure") 
    140  
    141         // success 
    142         return result 
    143     } 
     179        } //end withTransaction 
     180    } // end save() 
    144181 
    145182} // end class 
  • trunk/grails-app/services/CreateDataService.groovy

    r242 r251  
    1313    def dateUtilService 
    1414    def appConfigService 
     15    def assignedGroupService 
     16    def assignedPersonService 
    1517 
    1618/******************************************* 
     
    531533        taskModificationTypeInstance = new TaskModificationType(name:"Approved").save()  // #8 
    532534        taskModificationTypeInstance = new TaskModificationType(name:"Renege approval").save()  // #9 
     535        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Assigned Groups)").save()  // #10 
     536        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Assigned Persons)").save()  // #11 
    533537    } 
    534538 
     
    658662    def createDemoAssignedGroups() { 
    659663 
    660         //AssignedGroup 
    661         def assignedGroupInstance 
     664        def result 
     665        def p = [:] 
    662666 
    663667        //AssignedGroup #1 
    664         assignedGroupInstance = new AssignedGroup(personGroup: PersonGroup.get(1), 
    665                                                                                         task: Task.get(1), 
    666                                                                                         estimatedHour: 2, 
    667                                                                                         estimatedMinute: 30) 
    668         saveAndTest(assignedGroupInstance) 
     668        p = [personGroup: PersonGroup.get(1), 
     669                task: Task.get(1), 
     670                estimatedHour: 2, 
     671                estimatedMinute: 30] 
     672        result = assignedGroupService.save(p) 
    669673 
    670674        //AssignedGroup #2 
    671         assignedGroupInstance = new AssignedGroup(personGroup: PersonGroup.get(2), 
    672                                                                                         task: Task.get(1), 
    673                                                                                         estimatedHour: 1, 
    674                                                                                         estimatedMinute: 0) 
    675         saveAndTest(assignedGroupInstance) 
     675        p = [personGroup: PersonGroup.get(2), 
     676                task: Task.get(1), 
     677                estimatedHour: 1, 
     678                estimatedMinute: 0] 
     679        result = assignedGroupService.save(p) 
    676680    } 
    677681 
    678682    def createDemoAssignedPersons() { 
    679683 
    680         //AssignedPerson 
    681         def assignedPersonInstance 
     684        def result 
     685        def p = [:] 
    682686 
    683687        //AssignedPerson #1 
    684         assignedPersonInstance = new AssignedPerson(person: Person.get(4), 
    685                                                                                         task: Task.get(1), 
    686                                                                                         estimatedHour: 1, 
    687                                                                                         estimatedMinute: 20) 
    688         saveAndTest(assignedPersonInstance) 
     688        p = [person: Person.get(4), 
     689                task: Task.get(1), 
     690                estimatedHour: 1, 
     691                estimatedMinute: 20] 
     692        result = assignedPersonService.save(p) 
    689693 
    690694        //AssignedPerson #2 
    691         assignedPersonInstance = new AssignedPerson(person: Person.get(5), 
    692                                                                                         task: Task.get(1), 
    693                                                                                         estimatedHour: 3, 
    694                                                                                         estimatedMinute: 30) 
    695         saveAndTest(assignedPersonInstance) 
     695        p = [person: Person.get(5), 
     696                task: Task.get(1), 
     697                estimatedHour: 3, 
     698                estimatedMinute: 30] 
     699        result = assignedPersonService.save(p) 
    696700    } 
    697701 
  • trunk/grails-app/services/TaskService.groovy

    r245 r251  
    88 
    99    def personService 
     10    def assignedGroupService 
     11    def assignedPersonService 
    1012 
    1113    /** 
     
    6062                //Add the assignedGroups, provided by a new ArrayList(task.assignedGroups) 
    6163                if(params.assignedGroups) { 
    62                     def assignedGroupInstance 
     64                    def assignedGroupsResult 
     65                    def assignedGroupParams = [:] 
    6366                    params.assignedGroups.each() { 
    64                         assignedGroupInstance = new AssignedGroup(personGroup: it.personGroup, 
    65                                                                                                         task: taskInstance, 
    66                                                                                                         estimatedHour: it.estimatedHour, 
    67                                                                                                         estimatedMinute: it.estimatedMinute) 
    68  
    69                         if(!assignedGroupInstance.save()) { 
     67 
     68                        assignedGroupParams = [personGroup: it.personGroup, 
     69                                                                    task: taskInstance, 
     70                                                                    estimatedHour: it.estimatedHour, 
     71                                                                    estimatedMinute: it.estimatedMinute] 
     72 
     73                        assignedGroupsResult = assignedGroupService.save(assignedGroupParams) 
     74 
     75                        if(assignedGroupsResult.error) { 
    7076                            status.setRollbackOnly() 
    7177                            taskInstance.errors.rejectValue("assignedGroups", "task.assignedGroups.failedToSave") 
     
    7379                            return result 
    7480                        } 
     81 
    7582                    } 
    7683                } 
     
    7885                //Add the assignedPersons, provided by a new ArrayList(task.assignedPersons) 
    7986                if(params.assignedPersons) { 
    80                     def assignedPersonInstance 
     87                    def assignedPersonsResult 
     88                    def assignedPersonsParams = [:] 
    8189                    params.assignedPersons.each() { 
    82                         assignedPersonInstance = new AssignedPerson(person: it.person, 
    83                                                                                                             task: taskInstance, 
    84                                                                                                             estimatedHour: it.estimatedHour, 
    85                                                                                                             estimatedMinute: it.estimatedMinute) 
    86  
    87                         if(!assignedPersonInstance.save()) { 
     90 
     91                        assignedPersonsParams = [person: it.person, 
     92                                                                    task: taskInstance, 
     93                                                                    estimatedHour: it.estimatedHour, 
     94                                                                    estimatedMinute: it.estimatedMinute] 
     95 
     96                        assignedPersonsResult = assignedPersonService.save(assignedPersonsParams) 
     97 
     98                        if(assignedPersonsResult.error) { 
    8899                            status.setRollbackOnly() 
    89100                            taskInstance.errors.rejectValue("assignedPersons", "task.assignedPersons.failedToSave") 
     
    91102                            return result 
    92103                        } 
     104 
    93105                    } 
    94106                }