source: branches/TaskRewrite/src/grails-app/conf/BootStrap.groovy @ 71

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

Start changing roles to AppAdmin? and AppUser?.
Add Options view, start code for user changeable passwords.
Repair home and admin bean error variables.

File size: 11.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
[71]69        authInstance = new Authority(description:"Application User, all application users need this base role.",
70                                        authority:"ROLE_AppUser")
[59]71        BootStrapSaveAndTest(authInstance)
[58]72           
73        //Person
[59]74        def passwordEncoded = authenticateService.encodePassword("pass")
75        def personInstance
[58]76
[59]77        personInstance = new Person(loginName:"admin",
[58]78                                    firstName:"Admin",
79                                    lastName:"Powers",
[59]80                                    password:passwordEncoded,
[58]81                                    email:"admin@example.com")
82        BootStrapSaveAndTest(personInstance)
[59]83        personInstance.addToAuthorities(Authority.get(1))
84        personInstance.addToAuthorities(Authority.get(2))
[66]85        personInstance.addToPersonGroups(PersonGroup.findByName("gnuMims"))
[58]86
[59]87        personInstance = new Person(loginName:"user",
88                                    firstName:"Demo",
89                                    lastName:"Danza",
90                                    password:passwordEncoded,
91                                    email:"user@example.com")
92        BootStrapSaveAndTest(personInstance)
93        personInstance.addToAuthorities(Authority.get(2))
[66]94        personInstance.addToPersonGroups(PersonGroup.findByName("Electrical"))
[58]95
[59]96        personInstance = new Person(loginName:"craig",
97                                    firstName:"Craig",
98                                    lastName:"SuperTech",
99                                    password:passwordEncoded,
100                                    email:"user@example.com")
101        BootStrapSaveAndTest(personInstance)
102        personInstance.addToAuthorities(Authority.get(2))
[66]103        personInstance.addToPersonGroups(PersonGroup.findByName("Electrical"))
[58]104
[59]105        personInstance = new Person(loginName:"joe",
106                                    firstName:"Joe",
107                                    lastName:"Samples",
108                                    password:passwordEncoded,
109                                    email:"user@example.com")
110        BootStrapSaveAndTest(personInstance)
111        personInstance.addToAuthorities(Authority.get(2))
[66]112        personInstance.addToPersonGroups(PersonGroup.findByName("Mechanical"))
[58]113
[59]114        personInstance = new Person(loginName:"mann",
115                                    firstName:"Production",
116                                    lastName:"Mann",
117                                    password:passwordEncoded,
118                                    email:"user@example.com")
119        BootStrapSaveAndTest(personInstance)
120        personInstance.addToAuthorities(Authority.get(2))
[66]121        personInstance.addToPersonGroups(PersonGroup.findByName("Production"))
122
[69]123        //TaskGroup
124        def taskGroupInstance
125
126        taskGroupInstance = new TaskGroup(name:"Engineering Activites",
127                      description:"Engineering daily activities")
128        BootStrapSaveAndTest(taskGroupInstance)
129
130        taskGroupInstance = new TaskGroup(name:"Production Activites",
131                      description:"Production daily activities")
132        BootStrapSaveAndTest(taskGroupInstance)
133
134        taskGroupInstance = new TaskGroup(name:"New Projects",
135                      description:" ")
136        BootStrapSaveAndTest(taskGroupInstance)
137
[66]138        //TaskStatus
139        def taskStatusInstance
140   
141        taskStatusInstance = new TaskStatus(name:"Not Started")
142        BootStrapSaveAndTest(taskStatusInstance)
143
144        taskStatusInstance = new TaskStatus(name:"In Progress")
145        BootStrapSaveAndTest(taskStatusInstance)
146
147        taskStatusInstance = new TaskStatus(name:"Completed")
148        BootStrapSaveAndTest(taskStatusInstance)
149
[69]150        //TaskPriority
151        def taskPriorityInstance
[66]152
[69]153        taskPriorityInstance = new TaskPriority(name:"Low")
154        BootStrapSaveAndTest(taskPriorityInstance)
[66]155
[69]156        taskPriorityInstance = new TaskPriority(name:"Normal")
157        BootStrapSaveAndTest(taskPriorityInstance)
[66]158
[69]159        taskPriorityInstance = new TaskPriority(name:"High")
160        BootStrapSaveAndTest(taskPriorityInstance)
[66]161
[69]162        taskPriorityInstance = new TaskPriority(name:"Immediate")
163        BootStrapSaveAndTest(taskPriorityInstance)
164
165        //TaskType
166        def taskTypeInstance
167
168        taskTypeInstance = new TaskType(name:"Unscheduled Breakin")
169        BootStrapSaveAndTest(taskTypeInstance)
170
171        taskTypeInstance = new TaskType(name:"Planned Maintenance")
172        BootStrapSaveAndTest(taskTypeInstance)
173
174        taskTypeInstance = new TaskType(name:"Project")
175        BootStrapSaveAndTest(taskTypeInstance)
176
177        taskTypeInstance = new TaskType(name:"Turnaround")
178        BootStrapSaveAndTest(taskTypeInstance)
179
180        taskTypeInstance = new TaskType(name:"Production Run")
181        BootStrapSaveAndTest(taskTypeInstance)
182
[58]183        //Task
[66]184        def taskInstance
[69]185        def subTaskInstance
[58]186
[66]187        taskInstance = new Task(taskGroup:TaskGroup.findByName("Engineering Activites"),
188                 taskStatus:TaskStatus.findByName("Not Started"),
[69]189                 taskPriority:TaskPriority.get(2),
190                 taskType:TaskType.get(1),
[66]191                 leadPerson:Person.get(3),
192                 description:"Check specific level sensor",
193                 comment:"Has been noted as problematic, try recallibrating")
194        BootStrapSaveAndTest(taskInstance)
195        taskInstance.addToAssignedPersons(Person.get(1))
196        taskInstance.addToAssignedPersons(Person.get(2))
197
[69]198        subTaskInstance = new Task(taskGroup:TaskGroup.findByName("Engineering Activites"),
199                 taskStatus:TaskStatus.findByName("Not Started"),
200                 taskPriority:TaskPriority.get(2),
201                 taskType:TaskType.get(1),
202                 leadPerson:Person.get(3),
203                 description:"Some follow up work",
204                 comment:"Some help required")
205        BootStrapSaveAndTest(subTaskInstance)
206        subTaskInstance.addToAssignedPersons(Person.get(1))
207       
208        //Add task 2 as a subTask of task 1.
209        taskInstance.addToSubTasks(Task.get(2))
210        subTaskInstance.parentTask = Task.get(1)
211
[66]212        taskInstance = new Task(taskGroup:TaskGroup.findByName("Production Activites"),
213                 taskStatus:TaskStatus.findByName("Not Started"),
[69]214                 taskPriority:TaskPriority.get(2),
215                 taskType:TaskType.get(5),
[66]216                 leadPerson:Person.get(5),
217                 description:"Production Report",
218                 comment:"Production report for specific production run or shift")
219        BootStrapSaveAndTest(taskInstance)
220
[69]221        taskInstance = new Task(taskGroup:TaskGroup.findByName("New Projects"),
[66]222                 taskStatus:TaskStatus.findByName("Not Started"),
[69]223                 taskPriority:TaskPriority.get(2),
224                 taskType:TaskType.get(3),
[66]225                 leadPerson:Person.get(1),
226                 description:"Make killer CMMS app",
227                 comment:"Use Grails and get a move on!")
228        BootStrapSaveAndTest(taskInstance)
229
[58]230        //EntryType
[66]231        def entryTypeInstance
[58]232
[66]233        entryTypeInstance = new EntryType(name:"Fault")
234        BootStrapSaveAndTest(entryTypeInstance)
235
236        entryTypeInstance = new EntryType(name:"WorkDone")
237        BootStrapSaveAndTest(entryTypeInstance)
238
[69]239        entryTypeInstance = new EntryType(name:"Production Note")
[66]240        BootStrapSaveAndTest(entryTypeInstance)
241
242        entryTypeInstance = new EntryType(name:"Work Request")
243        BootStrapSaveAndTest(entryTypeInstance)
244
[58]245        //ModificationType
[66]246        def modificationTypeInstance
247        modificationTypeInstance = new ModificationType(name:"Created").save()
248        modificationTypeInstance = new ModificationType(name:"Completed").save()
249        modificationTypeInstance = new ModificationType(name:"Closed").save()
250        modificationTypeInstance = new ModificationType(name:"Altered").save()
251        modificationTypeInstance = new ModificationType(name:"TargetDateModified").save()
252        modificationTypeInstance = new ModificationType(name:"ScheduledDateModified").save()
253        modificationTypeInstance = new ModificationType(name:"DescriptionModified").save()
254        modificationTypeInstance = new ModificationType(name:"AssignedToModified").save()
255        modificationTypeInstance = new ModificationType(name:"NameModified").save()
[58]256       
257        if(BootStrapDemoDataSuccessful) {
258            println "BootStrapping demo data...successful."
259        }
260        else println "BootStrapping demo data...failed."
261    }
262   
263    void BootStrapSaveAndTest(object) {
264        if(!object.save()) {
265            BootStrapDemoDataSuccessful = false
266            println "'${object}' failed to save!"
267            println object.errors
268
269        }
270    } 
271}
Note: See TracBrowser for help on using the repository browser.