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

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

Add domains Entry, Task, Modification with task rewrites and associated Types/Status? etc.
Generate controllers and views.
Update Bootstrap.groovy and Person.groovy to suite.

File size: 8.9 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
65        authInstance = new Authority(description:"Application Admin",
66                                        authority:"ROLE_ADMIN")
67        BootStrapSaveAndTest(authInstance)
68
69        authInstance = new Authority(description:"Application Admin",
70                                        authority:"ROLE_USER")
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
123        //TaskStatus
124        def taskStatusInstance
125   
126        taskStatusInstance = new TaskStatus(name:"Not Started")
127        BootStrapSaveAndTest(taskStatusInstance)
128
129        taskStatusInstance = new TaskStatus(name:"In Progress")
130        BootStrapSaveAndTest(taskStatusInstance)
131
132        taskStatusInstance = new TaskStatus(name:"Completed")
133        BootStrapSaveAndTest(taskStatusInstance)
134
[58]135        //TaskGroup
[66]136        def taskGroupInstance
137
138        taskGroupInstance = new TaskGroup(name:"Engineering Activites",
139                      description:"Engineering daily activities")
140        BootStrapSaveAndTest(taskGroupInstance)
141
142        taskGroupInstance = new TaskGroup(name:"Production Activites",
143                      description:"Production daily activities")
144        BootStrapSaveAndTest(taskGroupInstance)
145
146        taskGroupInstance = new TaskGroup(name:"NewProject(s)",
147                      description:" ")
148        BootStrapSaveAndTest(taskGroupInstance)
149
[58]150        //Task
[66]151        def taskInstance
[58]152
[66]153        taskInstance = new Task(taskGroup:TaskGroup.findByName("Engineering Activites"),
154                 taskStatus:TaskStatus.findByName("Not Started"),
155                 leadPerson:Person.get(3),
156                 description:"Check specific level sensor",
157                 comment:"Has been noted as problematic, try recallibrating")
158        BootStrapSaveAndTest(taskInstance)
159        taskInstance.addToAssignedPersons(Person.get(1))
160        taskInstance.addToAssignedPersons(Person.get(2))
161
162        taskInstance = new Task(taskGroup:TaskGroup.findByName("Production Activites"),
163                 taskStatus:TaskStatus.findByName("Not Started"),
164                 leadPerson:Person.get(5),
165                 description:"Production Report",
166                 comment:"Production report for specific production run or shift")
167        BootStrapSaveAndTest(taskInstance)
168
169        taskInstance = new Task(taskGroup:TaskGroup.findByName("NewProject(s)"),
170                 taskStatus:TaskStatus.findByName("Not Started"),
171                 leadPerson:Person.get(1),
172                 description:"Make killer CMMS app",
173                 comment:"Use Grails and get a move on!")
174        BootStrapSaveAndTest(taskInstance)
175
[58]176        //EntryType
[66]177        def entryTypeInstance
[58]178
[66]179        entryTypeInstance = new EntryType(name:"Fault")
180        BootStrapSaveAndTest(entryTypeInstance)
181
182        entryTypeInstance = new EntryType(name:"WorkDone")
183        BootStrapSaveAndTest(entryTypeInstance)
184
185        entryTypeInstance = new EntryType(name:"Production Report")
186        BootStrapSaveAndTest(entryTypeInstance)
187
188        entryTypeInstance = new EntryType(name:"Work Request")
189        BootStrapSaveAndTest(entryTypeInstance)
190
[58]191        //ModificationType
[66]192        def modificationTypeInstance
193        modificationTypeInstance = new ModificationType(name:"Created").save()
194        modificationTypeInstance = new ModificationType(name:"Completed").save()
195        modificationTypeInstance = new ModificationType(name:"Closed").save()
196        modificationTypeInstance = new ModificationType(name:"Altered").save()
197        modificationTypeInstance = new ModificationType(name:"TargetDateModified").save()
198        modificationTypeInstance = new ModificationType(name:"ScheduledDateModified").save()
199        modificationTypeInstance = new ModificationType(name:"DescriptionModified").save()
200        modificationTypeInstance = new ModificationType(name:"AssignedToModified").save()
201        modificationTypeInstance = new ModificationType(name:"NameModified").save()
[58]202       
203        if(BootStrapDemoDataSuccessful) {
204            println "BootStrapping demo data...successful."
205        }
206        else println "BootStrapping demo data...failed."
207    }
208   
209    void BootStrapSaveAndTest(object) {
210        if(!object.save()) {
211            BootStrapDemoDataSuccessful = false
212            println "'${object}' failed to save!"
213            println object.errors
214
215        }
216    } 
217}
Note: See TracBrowser for help on using the repository browser.