source: trunk/src/grails-app/conf/BootStrap.groovy @ 96

Last change on this file since 96 was 96, checked in by gav, 15 years ago

Implemented the bulk of AssignedPerson? domain

File size: 15.0 KB
RevLine 
[58]1import grails.util.GrailsUtil
[55]2
[58]3class BootStrap 
4{
5    //Required to be right here for Acegi plugin.
6    def authenticateService
7    Boolean BootStrapDemoDataSuccessful = true
8
9    def init = { servletContext ->
10
11    println "**** BootStrap GrailsUtil.environment = ${GrailsUtil.environment}"
12   
13        switch (GrailsUtil.environment)
14        {
15            case "development":
16                        bootStrapDemoData()
17                        break
18            case "test":
19                        break
20            case "production":
21                        bootStrapDemoData()
22                        break 
23        }
24   
25    }
26
27    def destroy = {
28    }
29
30    //Insert some demo/startup data.
31    void bootStrapDemoData()
32    {
33        println "BootStrapping demo data..."
34   
35        //TypeOfPersonGroup
[64]36        def personGroupTypeInstance
37        personGroupTypeInstance = new PersonGroupType(name:"Department")
38        BootStrapSaveAndTest(personGroupTypeInstance)
39        personGroupTypeInstance = new PersonGroupType(name:"Contractor")
40        BootStrapSaveAndTest(personGroupTypeInstance)
41        personGroupTypeInstance = new PersonGroupType(name:"ProjectTeam")
42        BootStrapSaveAndTest(personGroupTypeInstance)
[58]43   
44        //PersonGroup
[64]45        def personGroupInstance
46        personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.findByName("Department"),
47                        name:"Electrical")
48        BootStrapSaveAndTest(personGroupInstance)
49        personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.findByName("Department"),
50                        name:"Mechanical")
51        BootStrapSaveAndTest(personGroupInstance)
52        personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.findByName("Department"),
53                        name:"Production")
54        BootStrapSaveAndTest(personGroupInstance)
55        personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(2),
56                        name:"Kewl AirCon Guys")
57        BootStrapSaveAndTest(personGroupInstance)
58        personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(3),
59                        name:"gnuMims")
60        BootStrapSaveAndTest(personGroupInstance)
[58]61
[59]62        //Authority
63        def authInstance
64
[71]65        authInstance = new Authority(description:"Application Admin, grants full admin access to the application.",
66                                        authority:"ROLE_AppAdmin")
[59]67        BootStrapSaveAndTest(authInstance)
68
[91]69        authInstance = new Authority(description:"Business manager, grants full management access.",
70                                        authority:"ROLE_Manager")
71        BootStrapSaveAndTest(authInstance)
72
73        authInstance = new Authority(description:"Application User, all application users need this base role to allow login.",
[71]74                                        authority:"ROLE_AppUser")
[59]75        BootStrapSaveAndTest(authInstance)
[58]76           
77        //Person
[73]78        def passClearText = "pass"
79        def passwordEncoded = authenticateService.encodePassword(passClearText)
[59]80        def personInstance
[58]81
[59]82        personInstance = new Person(loginName:"admin",
[58]83                                    firstName:"Admin",
84                                    lastName:"Powers",
[73]85                                    pass:passClearText,
[59]86                                    password:passwordEncoded,
[58]87                                    email:"admin@example.com")
88        BootStrapSaveAndTest(personInstance)
[59]89        personInstance.addToAuthorities(Authority.get(1))
90        personInstance.addToAuthorities(Authority.get(2))
[91]91        personInstance.addToAuthorities(Authority.get(3))
[66]92        personInstance.addToPersonGroups(PersonGroup.findByName("gnuMims"))
[58]93
[91]94        personInstance = new Person(loginName:"manager",
95                                    firstName:"Meca",
96                                    lastName:"Manager",
[73]97                                    pass:passClearText,
98                                    password:passwordEncoded,
[91]99                                    email:"manager@example.com")
[73]100        BootStrapSaveAndTest(personInstance)
101        personInstance.addToAuthorities(Authority.get(2))
[91]102        personInstance.addToAuthorities(Authority.get(3))
[73]103        personInstance.addToPersonGroups(PersonGroup.findByName("gnuMims"))
104
[59]105        personInstance = new Person(loginName:"user",
106                                    firstName:"Demo",
107                                    lastName:"Danza",
[73]108                                    pass:passClearText,
[59]109                                    password:passwordEncoded,
110                                    email:"user@example.com")
111        BootStrapSaveAndTest(personInstance)
[91]112        personInstance.addToAuthorities(Authority.get(3))
[66]113        personInstance.addToPersonGroups(PersonGroup.findByName("Electrical"))
[58]114
[59]115        personInstance = new Person(loginName:"craig",
116                                    firstName:"Craig",
117                                    lastName:"SuperTech",
[73]118                                    pass:passClearText,
[59]119                                    password:passwordEncoded,
120                                    email:"user@example.com")
121        BootStrapSaveAndTest(personInstance)
[91]122        personInstance.addToAuthorities(Authority.get(3))
[66]123        personInstance.addToPersonGroups(PersonGroup.findByName("Electrical"))
[58]124
[73]125        personInstance = new Person(loginName:"john",
126                                    firstName:"John",
[59]127                                    lastName:"Samples",
[73]128                                    pass:passClearText,
[59]129                                    password:passwordEncoded,
130                                    email:"user@example.com")
131        BootStrapSaveAndTest(personInstance)
[91]132        personInstance.addToAuthorities(Authority.get(3))
[66]133        personInstance.addToPersonGroups(PersonGroup.findByName("Mechanical"))
[58]134
[59]135        personInstance = new Person(loginName:"mann",
136                                    firstName:"Production",
137                                    lastName:"Mann",
[73]138                                    pass:passClearText,
[59]139                                    password:passwordEncoded,
140                                    email:"user@example.com")
141        BootStrapSaveAndTest(personInstance)
[91]142        personInstance.addToAuthorities(Authority.get(3))
[66]143        personInstance.addToPersonGroups(PersonGroup.findByName("Production"))
144
[69]145        //TaskGroup
146        def taskGroupInstance
147
148        taskGroupInstance = new TaskGroup(name:"Engineering Activites",
149                      description:"Engineering daily activities")
150        BootStrapSaveAndTest(taskGroupInstance)
151
152        taskGroupInstance = new TaskGroup(name:"Production Activites",
153                      description:"Production daily activities")
154        BootStrapSaveAndTest(taskGroupInstance)
155
156        taskGroupInstance = new TaskGroup(name:"New Projects",
157                      description:" ")
158        BootStrapSaveAndTest(taskGroupInstance)
159
[66]160        //TaskStatus
161        def taskStatusInstance
162   
163        taskStatusInstance = new TaskStatus(name:"Not Started")
164        BootStrapSaveAndTest(taskStatusInstance)
165
166        taskStatusInstance = new TaskStatus(name:"In Progress")
167        BootStrapSaveAndTest(taskStatusInstance)
168
169        taskStatusInstance = new TaskStatus(name:"Completed")
170        BootStrapSaveAndTest(taskStatusInstance)
171
[69]172        //TaskPriority
173        def taskPriorityInstance
[66]174
[69]175        taskPriorityInstance = new TaskPriority(name:"Low")
176        BootStrapSaveAndTest(taskPriorityInstance)
[66]177
[69]178        taskPriorityInstance = new TaskPriority(name:"Normal")
179        BootStrapSaveAndTest(taskPriorityInstance)
[66]180
[69]181        taskPriorityInstance = new TaskPriority(name:"High")
182        BootStrapSaveAndTest(taskPriorityInstance)
[66]183
[69]184        taskPriorityInstance = new TaskPriority(name:"Immediate")
185        BootStrapSaveAndTest(taskPriorityInstance)
186
187        //TaskType
188        def taskTypeInstance
189
190        taskTypeInstance = new TaskType(name:"Unscheduled Breakin")
191        BootStrapSaveAndTest(taskTypeInstance)
192
193        taskTypeInstance = new TaskType(name:"Planned Maintenance")
194        BootStrapSaveAndTest(taskTypeInstance)
195
196        taskTypeInstance = new TaskType(name:"Project")
197        BootStrapSaveAndTest(taskTypeInstance)
198
199        taskTypeInstance = new TaskType(name:"Turnaround")
200        BootStrapSaveAndTest(taskTypeInstance)
201
202        taskTypeInstance = new TaskType(name:"Production Run")
203        BootStrapSaveAndTest(taskTypeInstance)
204
[58]205        //Task
[66]206        def taskInstance
[69]207        def subTaskInstance
[58]208
[66]209        taskInstance = new Task(taskGroup:TaskGroup.findByName("Engineering Activites"),
210                 taskStatus:TaskStatus.findByName("Not Started"),
[69]211                 taskPriority:TaskPriority.get(2),
212                 taskType:TaskType.get(1),
[66]213                 leadPerson:Person.get(3),
214                 description:"Check specific level sensor",
215                 comment:"Has been noted as problematic, try recallibrating")
216        BootStrapSaveAndTest(taskInstance)
217
[69]218        subTaskInstance = new Task(taskGroup:TaskGroup.findByName("Engineering Activites"),
219                 taskStatus:TaskStatus.findByName("Not Started"),
220                 taskPriority:TaskPriority.get(2),
221                 taskType:TaskType.get(1),
222                 leadPerson:Person.get(3),
223                 description:"Some follow up work",
224                 comment:"Some help required")
225        BootStrapSaveAndTest(subTaskInstance)
226       
227        //Add task 2 as a subTask of task 1.
228        taskInstance.addToSubTasks(Task.get(2))
229        subTaskInstance.parentTask = Task.get(1)
230
[84]231        subTaskInstance = new Task(taskGroup:TaskGroup.findByName("Engineering Activites"),
232                 taskStatus:TaskStatus.findByName("Not Started"),
233                 taskPriority:TaskPriority.get(2),
234                 taskType:TaskType.get(1),
235                 leadPerson:Person.get(3),
236                 description:"Replace sensor at next opportunity.",
237                 comment:"Nothing else has worked.")
238        BootStrapSaveAndTest(subTaskInstance)
239
240        //Add task 3 as a subTask of task 1.
241        taskInstance.addToSubTasks(Task.get(3))
242        subTaskInstance.parentTask = Task.get(1)
243
[66]244        taskInstance = new Task(taskGroup:TaskGroup.findByName("Production Activites"),
245                 taskStatus:TaskStatus.findByName("Not Started"),
[69]246                 taskPriority:TaskPriority.get(2),
247                 taskType:TaskType.get(5),
[66]248                 leadPerson:Person.get(5),
249                 description:"Production Report",
250                 comment:"Production report for specific production run or shift")
251        BootStrapSaveAndTest(taskInstance)
252
[69]253        taskInstance = new Task(taskGroup:TaskGroup.findByName("New Projects"),
[66]254                 taskStatus:TaskStatus.findByName("Not Started"),
[69]255                 taskPriority:TaskPriority.get(2),
256                 taskType:TaskType.get(3),
[66]257                 leadPerson:Person.get(1),
258                 description:"Make killer CMMS app",
259                 comment:"Use Grails and get a move on!")
260        BootStrapSaveAndTest(taskInstance)
261
[58]262        //EntryType
[66]263        def entryTypeInstance
[58]264
[66]265        entryTypeInstance = new EntryType(name:"Fault")
266        BootStrapSaveAndTest(entryTypeInstance)
267
268        entryTypeInstance = new EntryType(name:"WorkDone")
269        BootStrapSaveAndTest(entryTypeInstance)
270
[69]271        entryTypeInstance = new EntryType(name:"Production Note")
[66]272        BootStrapSaveAndTest(entryTypeInstance)
273
274        entryTypeInstance = new EntryType(name:"Work Request")
275        BootStrapSaveAndTest(entryTypeInstance)
276
[84]277        //Entry
278        def entryInstance
279
280        entryInstance = new Entry(enteredBy: Person.get(6),
281                                                    task: Task.get(1),
282                                                    entryType: EntryType.findByName("Fault"),
283                                                    comment: "This level sensor is causing us trouble.",
284                                                    durationMinute: 20)
285        BootStrapSaveAndTest(entryInstance)
286
287        entryInstance = new Entry(enteredBy: Person.get(4),
288                                                    task: Task.get(1),
289                                                    entryType: EntryType.findByName("WorkDone"),
290                                                    comment: "Cleaned sensor, see how it goes.",
291                                                    durationMinute: 30)
292        BootStrapSaveAndTest(entryInstance)
293
294        entryInstance = new Entry(enteredBy: Person.get(4),
295                                                    task: Task.get(1),
296                                                    entryType: EntryType.findByName("WorkDone"),
297                                                    comment: "Checked up on it later and sensor is dropping out intermittently, created subTask to replace sensor.",
298                                                    durationMinute: 20)
299        BootStrapSaveAndTest(entryInstance)
300
[58]301        //ModificationType
[93]302        def taskModificationTypeInstance
303        taskModificationTypeInstance = new TaskModificationType(name:"Created").save()
304        taskModificationTypeInstance = new TaskModificationType(name:"Completed").save()
305        taskModificationTypeInstance = new TaskModificationType(name:"Closed").save()
306        taskModificationTypeInstance = new TaskModificationType(name:"Altered").save()
307        taskModificationTypeInstance = new TaskModificationType(name:"TargetDateModified").save()
308        taskModificationTypeInstance = new TaskModificationType(name:"ScheduledDateModified").save()
309        taskModificationTypeInstance = new TaskModificationType(name:"DescriptionModified").save()
310        taskModificationTypeInstance = new TaskModificationType(name:"AssignedToModified").save()
311        taskModificationTypeInstance = new TaskModificationType(name:"NameModified").save()
[96]312   
313        //AssignedPerson
314        def assignedPersonInstance
315
316        assignedPersonInstance = new AssignedPerson(person: Person.get(4),
317                                                                                        task: Task.get(1),
318                                                                                        estimatedHour: 1,
319                                                                                        estimatedMinute: 20)
320        BootStrapSaveAndTest(assignedPersonInstance)
321
322        assignedPersonInstance = new AssignedPerson(person: Person.get(5),
323                                                                                        task: Task.get(1),
324                                                                                        estimatedHour: 3,
325                                                                                        estimatedMinute: 30)
326        BootStrapSaveAndTest(assignedPersonInstance)
327
328
329        //Finally did it all work.       
[58]330        if(BootStrapDemoDataSuccessful) {
331            println "BootStrapping demo data...successful."
332        }
333        else println "BootStrapping demo data...failed."
334    }
335   
336    void BootStrapSaveAndTest(object) {
337        if(!object.save()) {
338            BootStrapDemoDataSuccessful = false
339            println "'${object}' failed to save!"
340            println object.errors
341
342        }
343    } 
344}
Note: See TracBrowser for help on using the repository browser.