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

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

Some inventory additions to BootStrap?

File size: 23.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   
[116]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   
[116]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
[116]62//Authority
[59]63        def authInstance
64
[102]65        authInstance = new Authority(description:"Application Admin, not required for daily use! Grants full admin access to the application.",
[71]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           
[116]77//Person
[73]78        def passClearText = "pass"
79        def passwordEncoded = authenticateService.encodePassword(passClearText)
[59]80        def personInstance
[58]81
[102]82        //Person #1
[59]83        personInstance = new Person(loginName:"admin",
[58]84                                    firstName:"Admin",
85                                    lastName:"Powers",
[73]86                                    pass:passClearText,
[59]87                                    password:passwordEncoded,
[58]88                                    email:"admin@example.com")
89        BootStrapSaveAndTest(personInstance)
[59]90        personInstance.addToAuthorities(Authority.get(1))
91        personInstance.addToAuthorities(Authority.get(2))
[91]92        personInstance.addToAuthorities(Authority.get(3))
[66]93        personInstance.addToPersonGroups(PersonGroup.findByName("gnuMims"))
[58]94
[102]95        //Person #2
[91]96        personInstance = new Person(loginName:"manager",
97                                    firstName:"Meca",
98                                    lastName:"Manager",
[73]99                                    pass:passClearText,
100                                    password:passwordEncoded,
[91]101                                    email:"manager@example.com")
[73]102        BootStrapSaveAndTest(personInstance)
103        personInstance.addToAuthorities(Authority.get(2))
[91]104        personInstance.addToAuthorities(Authority.get(3))
[73]105        personInstance.addToPersonGroups(PersonGroup.findByName("gnuMims"))
106
[102]107        //Person #3
[59]108        personInstance = new Person(loginName:"user",
109                                    firstName:"Demo",
[102]110                                    lastName:"User",
[73]111                                    pass:passClearText,
[59]112                                    password:passwordEncoded,
113                                    email:"user@example.com")
114        BootStrapSaveAndTest(personInstance)
[91]115        personInstance.addToAuthorities(Authority.get(3))
[66]116        personInstance.addToPersonGroups(PersonGroup.findByName("Electrical"))
[58]117
[102]118        //Person #4
[59]119        personInstance = new Person(loginName:"craig",
120                                    firstName:"Craig",
[102]121                                    lastName:"SuperSparky",
[73]122                                    pass:passClearText,
[59]123                                    password:passwordEncoded,
124                                    email:"user@example.com")
125        BootStrapSaveAndTest(personInstance)
[91]126        personInstance.addToAuthorities(Authority.get(3))
[66]127        personInstance.addToPersonGroups(PersonGroup.findByName("Electrical"))
[58]128
[102]129        //Person #5
[73]130        personInstance = new Person(loginName:"john",
131                                    firstName:"John",
[102]132                                    lastName:"SuperFitter",
[73]133                                    pass:passClearText,
[59]134                                    password:passwordEncoded,
135                                    email:"user@example.com")
136        BootStrapSaveAndTest(personInstance)
[91]137        personInstance.addToAuthorities(Authority.get(3))
[66]138        personInstance.addToPersonGroups(PersonGroup.findByName("Mechanical"))
[58]139
[102]140        //Person #6
[59]141        personInstance = new Person(loginName:"mann",
142                                    firstName:"Production",
143                                    lastName:"Mann",
[73]144                                    pass:passClearText,
[59]145                                    password:passwordEncoded,
146                                    email:"user@example.com")
147        BootStrapSaveAndTest(personInstance)
[91]148        personInstance.addToAuthorities(Authority.get(3))
[66]149        personInstance.addToPersonGroups(PersonGroup.findByName("Production"))
150
[116]151//TaskGroup
[69]152        def taskGroupInstance
153
154        taskGroupInstance = new TaskGroup(name:"Engineering Activites",
155                      description:"Engineering daily activities")
156        BootStrapSaveAndTest(taskGroupInstance)
157
158        taskGroupInstance = new TaskGroup(name:"Production Activites",
159                      description:"Production daily activities")
160        BootStrapSaveAndTest(taskGroupInstance)
161
162        taskGroupInstance = new TaskGroup(name:"New Projects",
163                      description:" ")
164        BootStrapSaveAndTest(taskGroupInstance)
165
[116]166//TaskStatus
[66]167        def taskStatusInstance
168   
169        taskStatusInstance = new TaskStatus(name:"Not Started")
170        BootStrapSaveAndTest(taskStatusInstance)
171
172        taskStatusInstance = new TaskStatus(name:"In Progress")
173        BootStrapSaveAndTest(taskStatusInstance)
174
175        taskStatusInstance = new TaskStatus(name:"Completed")
176        BootStrapSaveAndTest(taskStatusInstance)
177
[116]178//TaskPriority
[69]179        def taskPriorityInstance
[66]180
[69]181        taskPriorityInstance = new TaskPriority(name:"Low")
182        BootStrapSaveAndTest(taskPriorityInstance)
[66]183
[69]184        taskPriorityInstance = new TaskPriority(name:"Normal")
185        BootStrapSaveAndTest(taskPriorityInstance)
[66]186
[69]187        taskPriorityInstance = new TaskPriority(name:"High")
188        BootStrapSaveAndTest(taskPriorityInstance)
[66]189
[69]190        taskPriorityInstance = new TaskPriority(name:"Immediate")
191        BootStrapSaveAndTest(taskPriorityInstance)
192
[116]193//TaskType
[69]194        def taskTypeInstance
195
196        taskTypeInstance = new TaskType(name:"Unscheduled Breakin")
197        BootStrapSaveAndTest(taskTypeInstance)
198
199        taskTypeInstance = new TaskType(name:"Planned Maintenance")
200        BootStrapSaveAndTest(taskTypeInstance)
201
202        taskTypeInstance = new TaskType(name:"Project")
203        BootStrapSaveAndTest(taskTypeInstance)
204
205        taskTypeInstance = new TaskType(name:"Turnaround")
206        BootStrapSaveAndTest(taskTypeInstance)
207
208        taskTypeInstance = new TaskType(name:"Production Run")
209        BootStrapSaveAndTest(taskTypeInstance)
210
[116]211//Task
[66]212        def taskInstance
[58]213
[116]214        //Task #1
[66]215        taskInstance = new Task(taskGroup:TaskGroup.findByName("Engineering Activites"),
216                 taskStatus:TaskStatus.findByName("Not Started"),
[69]217                 taskPriority:TaskPriority.get(2),
218                 taskType:TaskType.get(1),
[66]219                 leadPerson:Person.get(3),
220                 description:"Check specific level sensor",
221                 comment:"Has been noted as problematic, try recallibrating")
222        BootStrapSaveAndTest(taskInstance)
223
[116]224        //Task #2
[114]225        taskInstance = new Task(taskGroup:TaskGroup.findByName("Engineering Activites"),
226                taskStatus:TaskStatus.findByName("Not Started"),
227                taskPriority:TaskPriority.get(2),
228                taskType:TaskType.get(1),
229                leadPerson:Person.get(5),
230                description:"Some follow-up work",
231                comment:"Some help required",
232                parentTask: Task.get(1))
233        BootStrapSaveAndTest(taskInstance)
[69]234
[116]235        //Task #3
[114]236        taskInstance = new Task(taskGroup:TaskGroup.findByName("Engineering Activites"),
237                taskStatus:TaskStatus.findByName("Not Started"),
238                taskPriority:TaskPriority.get(2),
239                taskType:TaskType.get(1),
240                leadPerson:Person.get(5),
241                description:"A Sub Task can be created by setting the Parent Task value",
242                comment:"Some help required",
243                parentTask: Task.get(1))
244        BootStrapSaveAndTest(taskInstance)
245
[116]246        //Task #4
[114]247        taskInstance = new Task(taskGroup:TaskGroup.findByName("Engineering Activites"),
[84]248                 taskStatus:TaskStatus.findByName("Not Started"),
249                 taskPriority:TaskPriority.get(2),
250                 taskType:TaskType.get(1),
[102]251                 leadPerson:Person.get(4),
[84]252                 description:"Replace sensor at next opportunity.",
[114]253                 comment:"Nothing else has worked.",
254                parentTask: Task.get(1))
255        BootStrapSaveAndTest(taskInstance)
[84]256
[116]257        //Task #5
[66]258        taskInstance = new Task(taskGroup:TaskGroup.findByName("Production Activites"),
259                 taskStatus:TaskStatus.findByName("Not Started"),
[69]260                 taskPriority:TaskPriority.get(2),
261                 taskType:TaskType.get(5),
[102]262                 leadPerson:Person.get(6),
[66]263                 description:"Production Report",
264                 comment:"Production report for specific production run or shift")
265        BootStrapSaveAndTest(taskInstance)
266
[116]267        //Task #6
[69]268        taskInstance = new Task(taskGroup:TaskGroup.findByName("New Projects"),
[66]269                 taskStatus:TaskStatus.findByName("Not Started"),
[69]270                 taskPriority:TaskPriority.get(2),
271                 taskType:TaskType.get(3),
[66]272                 leadPerson:Person.get(1),
273                 description:"Make killer CMMS app",
274                 comment:"Use Grails and get a move on!")
275        BootStrapSaveAndTest(taskInstance)
276
[116]277//EntryType
[66]278        def entryTypeInstance
[58]279
[66]280        entryTypeInstance = new EntryType(name:"Fault")
281        BootStrapSaveAndTest(entryTypeInstance)
282
283        entryTypeInstance = new EntryType(name:"WorkDone")
284        BootStrapSaveAndTest(entryTypeInstance)
285
[69]286        entryTypeInstance = new EntryType(name:"Production Note")
[66]287        BootStrapSaveAndTest(entryTypeInstance)
288
289        entryTypeInstance = new EntryType(name:"Work Request")
290        BootStrapSaveAndTest(entryTypeInstance)
291
[116]292//Entry
[84]293        def entryInstance
294
[116]295        //Entry #1
[84]296        entryInstance = new Entry(enteredBy: Person.get(6),
297                                                    task: Task.get(1),
298                                                    entryType: EntryType.findByName("Fault"),
299                                                    comment: "This level sensor is causing us trouble.",
300                                                    durationMinute: 20)
301        BootStrapSaveAndTest(entryInstance)
302
[116]303        //Entry #2
[84]304        entryInstance = new Entry(enteredBy: Person.get(4),
305                                                    task: Task.get(1),
306                                                    entryType: EntryType.findByName("WorkDone"),
307                                                    comment: "Cleaned sensor, see how it goes.",
308                                                    durationMinute: 30)
309        BootStrapSaveAndTest(entryInstance)
310
[116]311        //Entry #3
[84]312        entryInstance = new Entry(enteredBy: Person.get(4),
313                                                    task: Task.get(1),
314                                                    entryType: EntryType.findByName("WorkDone"),
315                                                    comment: "Checked up on it later and sensor is dropping out intermittently, created subTask to replace sensor.",
316                                                    durationMinute: 20)
317        BootStrapSaveAndTest(entryInstance)
318
[116]319//ModificationType
[93]320        def taskModificationTypeInstance
321        taskModificationTypeInstance = new TaskModificationType(name:"Created").save()
322        taskModificationTypeInstance = new TaskModificationType(name:"Completed").save()
323        taskModificationTypeInstance = new TaskModificationType(name:"Closed").save()
324        taskModificationTypeInstance = new TaskModificationType(name:"Altered").save()
325        taskModificationTypeInstance = new TaskModificationType(name:"TargetDateModified").save()
326        taskModificationTypeInstance = new TaskModificationType(name:"ScheduledDateModified").save()
327        taskModificationTypeInstance = new TaskModificationType(name:"DescriptionModified").save()
328        taskModificationTypeInstance = new TaskModificationType(name:"AssignedToModified").save()
329        taskModificationTypeInstance = new TaskModificationType(name:"NameModified").save()
[96]330   
[116]331//AssignedPerson
[96]332        def assignedPersonInstance
333
[116]334        //AssignedPerson #1
[96]335        assignedPersonInstance = new AssignedPerson(person: Person.get(4),
336                                                                                        task: Task.get(1),
337                                                                                        estimatedHour: 1,
338                                                                                        estimatedMinute: 20)
339        BootStrapSaveAndTest(assignedPersonInstance)
340
[116]341        //AssignedPerson #2
[96]342        assignedPersonInstance = new AssignedPerson(person: Person.get(5),
343                                                                                        task: Task.get(1),
344                                                                                        estimatedHour: 3,
345                                                                                        estimatedMinute: 30)
346        BootStrapSaveAndTest(assignedPersonInstance)
347
[116]348//Site
349        def siteInstance
[96]350
[117]351        siteInstance = new Site(name: "Creek Mill")
[116]352        BootStrapSaveAndTest(siteInstance)
353
[117]354        siteInstance = new Site(name: "Jasper Street Depot")
355        BootStrapSaveAndTest(siteInstance)
356
[116]357//Asset
358        def assetInstance
359
360        assetInstance = new Asset(name: "RockCrusher1")
361        BootStrapSaveAndTest(assetInstance)
362
363
364//InventoryStore
[117]365        def inventoryStoreInstance
366
367        inventoryStoreInstance = new InventoryStore(site: Site.get(1), name: "Store #1")
[116]368        BootStrapSaveAndTest(inventoryStoreInstance)
369
[117]370        inventoryStoreInstance = new InventoryStore(site: Site.get(2), name: "Store #2")
371        BootStrapSaveAndTest(inventoryStoreInstance)
372
[116]373//StoreLocation
[117]374        def storeLocation
375       
376        storeLocation = new StoreLocation(inventoryStore: InventoryStore.get(1), bin: "A1-2")
[116]377        BootStrapSaveAndTest(storeLocation)
378
[117]379        storeLocation = new StoreLocation(inventoryStore: InventoryStore.get(1), bin: "C55")
380        BootStrapSaveAndTest(storeLocation)
381
[116]382//UnitOfMeasure
383        def unitOfMeasureInstance
384
[117]385        //UnitOfMeasure #1
[116]386        unitOfMeasureInstance = new UnitOfMeasure(name: "each")
387        BootStrapSaveAndTest(unitOfMeasureInstance)
388
[117]389        //UnitOfMeasure #2
[116]390        unitOfMeasureInstance = new UnitOfMeasure(name: "meter(s)")
391        BootStrapSaveAndTest(unitOfMeasureInstance)
392
[117]393        //UnitOfMeasure #3
[116]394        unitOfMeasureInstance = new UnitOfMeasure(name: "box(es)")
395        BootStrapSaveAndTest(unitOfMeasureInstance)
396
[117]397        //UnitOfMeasure #4
[116]398        unitOfMeasureInstance = new UnitOfMeasure(name: "litre(s)")
399        BootStrapSaveAndTest(unitOfMeasureInstance)
400
[117]401        //UnitOfMeasure #5
[116]402        unitOfMeasureInstance = new UnitOfMeasure(name: "kilogram(s)")
403        BootStrapSaveAndTest(unitOfMeasureInstance)
404
405//InventoryGroup
406        def inventoryGroupInstance
407
[117]408        //InventoryGroup #1
[116]409        inventoryGroupInstance = new InventoryGroup(name: "Misc")
410        BootStrapSaveAndTest(inventoryGroupInstance)
411
[117]412        //InventoryGroup #2
413        inventoryGroupInstance = new InventoryGroup(name: "Electrical")
414        BootStrapSaveAndTest(inventoryGroupInstance)
415
416        //InventoryGroup #3
417        inventoryGroupInstance = new InventoryGroup(name: "Mechanical")
418        BootStrapSaveAndTest(inventoryGroupInstance)
419
420        //InventoryGroup #4
421        inventoryGroupInstance = new InventoryGroup(name: "Production")
422        BootStrapSaveAndTest(inventoryGroupInstance)
423
[116]424//InventoryType
425        def inventoryTypeInstance
426
427        inventoryTypeInstance = new InventoryType(name: "Consumable")
428        BootStrapSaveAndTest(inventoryTypeInstance)
429
430        inventoryTypeInstance = new InventoryType(name: "Repairable")
431        BootStrapSaveAndTest(inventoryTypeInstance)
432
433//InventoryItem
434        def inventoryItemInstance
435
[117]436        //InventoryItem #1
[116]437        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(1),
438                                                                                    inventoryType: InventoryType.get(1),
[117]439                                                                                    unitOfMeasure: UnitOfMeasure.get(2),
440                                                                                    name: "J-Rope",
441                                                                                    description: "Twine wound J-Rope",
442                                                                                    reorderPoint: 0)
443        BootStrapSaveAndTest(inventoryItemInstance)
444
445        //InventoryItem #2
446        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(1),
447                                                                                    inventoryType: InventoryType.get(1),
448                                                                                    unitOfMeasure: UnitOfMeasure.get(2),
449                                                                                    name: "L-Rope",
450                                                                                    description: "Twine wound L-Rope",
451                                                                                    alternateItems: InventoryItem.get(1),
452                                                                                    reorderPoint: 0)
453        BootStrapSaveAndTest(inventoryItemInstance)
454
455        //InventoryItem #3
456        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(3),
457                                                                                    inventoryType: InventoryType.get(1),
[116]458                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
[117]459                                                                                    name: "2305-2RS",
460                                                                                    description: "Bearing 25x62x24mm double row self aligning ball",
461                                                                                    reorderPoint: 2)
462        BootStrapSaveAndTest(inventoryItemInstance)
463
464        //InventoryItem #4
465        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(2),
466                                                                                    inventoryType: InventoryType.get(1),
467                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
468                                                                                    name: "L1592-K10",
469                                                                                    description: "10kW contactor",
[116]470                                                                                    reorderPoint: 0)
471        BootStrapSaveAndTest(inventoryItemInstance)
472
[117]473        //InventoryItem #5
474        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(3),
475                                                                                    inventoryType: InventoryType.get(1),
476                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
477                                                                                    name: "6205-ZZ",
478                                                                                    description: "Bearing 25x52x15mm single row ball shielded",
479                                                                                    reorderPoint: 2)
480        BootStrapSaveAndTest(inventoryItemInstance)
481
[116]482//StoredItem
483        def storedItemInstance
484
[117]485        //StoredItem #1
[116]486        storedItemInstance = new StoredItem(inventoryItem: InventoryItem.get(1),
487                                                                            storeLocation: StoreLocation.get(1),
488                                                                            quantity: 8)
489        BootStrapSaveAndTest(storedItemInstance)
490
[117]491        //StoredItem #2
492        storedItemInstance = new StoredItem(inventoryItem: InventoryItem.get(1),
493                                                                            storeLocation: StoreLocation.get(2),
494                                                                            quantity: 4)
495        BootStrapSaveAndTest(storedItemInstance)
496
497        //StoredItem #3
498        storedItemInstance = new StoredItem(inventoryItem: InventoryItem.get(2),
499                                                                            storeLocation: StoreLocation.get(1),
500                                                                            quantity: 2)
501        BootStrapSaveAndTest(storedItemInstance)
502
503        //StoredItem #4
504        storedItemInstance = new StoredItem(inventoryItem: InventoryItem.get(3),
505                                                                            storeLocation: StoreLocation.get(1),
506                                                                            quantity: 2)
507        BootStrapSaveAndTest(storedItemInstance)
508
509        //StoredItem #5
510        storedItemInstance = new StoredItem(inventoryItem: InventoryItem.get(4),
511                                                                            storeLocation: StoreLocation.get(1),
512                                                                            quantity: 30)
513        BootStrapSaveAndTest(storedItemInstance)
514
[116]515//Finally did it all work.       
[58]516        if(BootStrapDemoDataSuccessful) {
517            println "BootStrapping demo data...successful."
518        }
519        else println "BootStrapping demo data...failed."
520    }
[116]521
522//Call this function instead of .save()
[58]523    void BootStrapSaveAndTest(object) {
524        if(!object.save()) {
525            BootStrapDemoDataSuccessful = false
526            println "'${object}' failed to save!"
527            println object.errors
528
529        }
530    } 
531}
Note: See TracBrowser for help on using the repository browser.