Changeset 237


Ignore:
Timestamp:
Dec 22, 2009, 1:26:58 PM (15 years ago)
Author:
gav
Message:

Integrate create data functions with appConfig.

Location:
trunk/grails-app
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/AppCoreController.groovy

    r216 r237  
    11import org.codehaus.groovy.grails.plugins.springsecurity.Secured
    22
     3/**
     4* Controller class for the application core views.
     5*/
    36class AppCoreController extends BaseController {
    47
    58    def personService
    69    def createDataService
     10    def appConfigService
    711
    812    def index = { redirect(action:start,params:params) }
     
    2529    }
    2630
     31    /**
     32    * Render the start view.
     33    */
    2734    def start = {
    2835    }
    2936
     37    /**
     38    * Allow a person to change their session timeout setting.
     39    */
    3040    def changeSessionTimeout = {
    3141        if (request.method == 'GET') {
     
    4858    }
    4959
     60    /**
     61    * Allow a person to change their password.
     62    */
    5063    def changePassword = {
    5164        //def principal = authenticateService.principal()
     
    8396    }
    8497
     98    /**
     99    * Render the manager view for manager or admin roles.
     100    */
    85101    @Secured(['ROLE_Manager','ROLE_AppAdmin'])
    86102    def manager = {
    87103    }
    88104
     105    /**
     106    * Render the appAdmin view for admin roles.
     107    */
    89108    @Secured(['ROLE_AppAdmin'])
    90109    def appAdmin = {
     110
     111        def offerBaseDataCreation = false
     112        def offerDemoDataCreation = false
     113        def baseDataCreated = appConfigService.exists("baseDataCreated")
     114        def demoDataCreated = appConfigService.exists("demoDataCreated")
     115        def demoDataCreationDisabled = appConfigService.exists("demoDataCreationDisabled")
     116
     117        if(!baseDataCreated)
     118            offerBaseDataCreation = true
     119
     120        if(baseDataCreated && !demoDataCreated && !demoDataCreationDisabled)
     121            offerDemoDataCreation = true
     122
     123        return[baseDataCreated: baseDataCreated,
     124                        demoDataCreated: demoDataCreated,
     125                        offerDemoDataCreation: offerDemoDataCreation,
     126                        offerBaseDataCreation: offerBaseDataCreation,
     127                        demoDataCreationDisabled: demoDataCreationDisabled]
    91128    }
    92129
     130    /**
     131    * Allow admin to disable demo data creation.
     132    */
     133    @Secured(['ROLE_AppAdmin'])
     134    def disableDemoDataCreation = {
     135        if(!appConfigService.set("demoDataCreationDisabled")) {
     136            flash.message = "Demo data creation could not be disabled."
     137            redirect(action: appAdmin)
     138            return
     139        }
     140
     141        // Success.
     142        flash.message = "Demo data creation disabled."
     143        redirect(action: appAdmin)
     144    }
     145
     146    /**
     147    * Allow admin to create base data.
     148    */
    93149    @Secured(['ROLE_AppAdmin'])
    94150    def createBaseData = {
    95         createDataService.createBaseData()
    96         redirect(action:appAdmin)
     151        if(!createDataService.createBaseData()) {
     152            flash.message = "Base data could not be created."
     153            redirect(action: appAdmin)
     154            return
     155        }
     156
     157        // Success.
     158        flash.message = "Base data created."
     159        redirect(action: appAdmin)
    97160    }
    98161
     162    /**
     163    * Allow admin to create demo data.
     164    */
    99165    @Secured(['ROLE_AppAdmin'])
    100166    def createDemoData = {
    101         createDataService.createDemoData()
    102         redirect(action:appAdmin)
     167        if(!createDataService.createDemoData()) {
     168            flash.message = "Demo data could not be created."
     169            redirect(action: appAdmin)
     170            return
     171        }
     172
     173        // Success.
     174        flash.message = "Demo data created."
     175        redirect(action: appAdmin)
    103176    }
    104177
    105 }
     178} // end of class.
  • trunk/grails-app/services/CreateDataService.groovy

    r222 r237  
    1212    def taskService
    1313    def dateUtilService
     14    def appConfigService
    1415
    1516/*******************************************
     
    4142    */
    4243    def createBaseData() {
     44
     45        if(appConfigService.exists("baseDataCreated")) {
     46            log.error "Base data has already been created, will NOT recreate."
     47            return false
     48        }
     49
    4350        log.info "Creating base data..."
     51
    4452        // Person and Utils
    4553        createBaseAuthorities()
     
    4957        createBaseSupplierType()
    5058        createBaseManufacturerType()
     59
    5160        // Tasks
    5261        createBaseTaskGroups()
     
    5665        createBaseTaskModificationTypes()
    5766        createBaseEntryTypes()
     67
    5868        // Inventory
    5969        createBaseInventoryTypes()
    6070        createBaseInventoryMovementTypes()
    6171        createBaseMaintenancePolicies()
     72
    6273        // Assets
    6374        createBaseAssetExtenededAttributeTypes()
    6475
     76        // Record that data has been created.
     77        appConfigService.set("baseDataCreated")
    6578    }
    6679
     
    6982    */
    7083    def createDemoData() {
     84
     85        if(!appConfigService.exists("baseDataCreated")) {
     86            log.error "Demo data cannot be created until base data has been created."
     87            return false
     88        }
     89
     90        if(appConfigService.exists("demoDataCreated")) {
     91            log.error "Demo data has already been created, will NOT recreate."
     92            return false
     93        }
     94
     95        if(appConfigService.exists("demoDataCreationDisabled")) {
     96            log.error "Demo data creation has been disabled, will NOT create."
     97            return false
     98        }
     99
    71100        log.info "Creating demo data..."
     101
    72102        // Person and Utils
    73103        createDemoPersons()
     
    76106        createDemoSuppliers()
    77107        createDemoManufacturers()
     108
    78109        // Tasks
    79110        createDemoTasks()
     
    81112        createDemoAssignedPersons()
    82113        createDemoTaskRecurringSchedules()
     114
    83115        // Inventory
    84116        createDemoInventoryStores()  /// @todo: Perhaps a 'createQuickStartData' method?
     
    86118        createDemoInventoryGroups() /// @todo: Perhaps a 'createQuickStartData' method?
    87119        createDemoInventoryItems()
     120
    88121        // Assets
    89122        createDemoLifePlan()
     
    97130        createDemoAssets()
    98131        createDemoAssetExtenedAttributes()
     132
     133        // Record that data has been created.
     134        appConfigService.set("demoDataCreated")
    99135    }
    100136
  • trunk/grails-app/views/appCore/appAdmin.gsp

    r149 r237  
    2323                            </td>
    2424                            <td valign="top" class="value">
    25                                 <g:link action="createBaseData">Base</g:link> - Create the base data required for the application to function.
     25
     26                                <g:if test="${offerBaseDataCreation}">
     27                                    <g:link action="createBaseData">Base</g:link> - Create the base data required for the application to function.
     28                                </g:if>
     29                                <g:else>
     30                                    <g:if test="${baseDataCreated}">
     31                                        Base data has been created.
     32                                    </g:if>
     33                                </g:else>
     34
    2635                                <br />
    27                                 <g:link action="createDemoData">Demo</g:link> - Create demo data for some example sites.
     36
     37                                <g:if test="${demoDataCreationDisabled}">
     38                                    Demo data creation has been disabled.
     39                                </g:if>
     40                                <g:else>
     41                                    <g:if test="${offerDemoDataCreation}">
     42                                        <g:link action="createDemoData">Demo</g:link> - Create demo data for some example sites.
     43                                        <br />
     44                                        <g:link action="disableDemoDataCreation">Disable</g:link> - Disable demo data creation.
     45                                    </g:if>
     46                                    <g:else>
     47                                        <g:if test="${demoDataCreated}">
     48                                            Demo data has been created.
     49                                        </g:if>
     50                                    </g:else>
     51                                </g:else>
     52
    2853                            </td>
    2954                        </tr>
Note: See TracChangeset for help on using the changeset viewer.