Changes between Version 14 and Version 15 of BluePrint/Templates


Ignore:
Timestamp:
06/12/12 21:46:27 (9 years ago)
Author:
Fran Boon
Comment:

Update for current plans

Legend:

Unmodified
Added
Removed
Modified
  • BluePrint/Templates

    v14 v15  
    2020
    2121If they must select between alternate options then they'd definitely want this to be done through the web browser.
    22 * perhaps the most useful would be a single web page with a list of Templates to choose from, witha big button to say 'OK' to proceed with the default.
     22* perhaps the most useful would be a single web page with a list of Templates to choose from, with a big button to say 'OK' to proceed with the default.
    2323
    2424Once they've played around some & wish to customise it, then they would like to be able to configure options via [BluePrint/WebSetup WebSetup].
     
    2929The deployer wants to be walked through the different settings...ideally through a [BluePrint/WebSetup WebSetup] Wizard, however they're OK at doing this through a text file or CLI prompts if-required.
    3030
    31 They want to minimise the number of interrupts during the setup process - i.e. they would like to run a single script to download/install all the software & then run through a single set of configuration options. The current supported installation scripts do this reasonably well, e.g. InstallationGuidelines/Linux/Server/CherokeePostgreSQL
     31They want to minimise the number of interrupts during the setup process - i.e. they would like to run a single script to download/install all the software & then run through a single set of configuration options. The current supported installation scripts do this reasonably well, e.g. [wiki:InstallationGuidelines/Linux/Server/CherokeePostgreSQL InstallationGuidelines/Linux/Server/CherokeePostgreSQL]
    3232
    3333=== !Developer/Tester ===
     
    3636They would like to distinguish between the settings which relate to the profile template from the settings which are about their machine instance (Debug, SMTP, Database, API Keys, etc)
    3737
    38 They would like to select between prepopulate options when using a single configuration template. e.g. IFRC 000_config.py can be used with ["IFRC"], ["IFRC_Train"] or ["IFRC_Train", "IFRC_Demo"], but we don't want to have to maintain 3x 000_config.py files.
     38They would like to select between prepopulate options when using a single configuration template. e.g. IFRC 000_config.py can be used with ["IFRC"], ["IFRC_Train"] or ["IFRC_Train", "IFRC_Demo"], but  we don't want to have to maintain 3x 000_config.py files.
    3939
    4040=== Trunk Maintainer ===
     
    4444
    4545== Design ==
    46 We need a front-end decision maker to decide which template(s) we are using:
    47 * configuration settings: 000_config.py
    48 * prepopulate: tasks.cfg
    49 * tbc Theme: static/styles/sahana.css, views/layout.html, modules/eden/layouts.py
    50 * tbc Menus: modules/eden/menus.py, models/01_menu.py
    51 * tbc Message Parser
     46Configuration is done using these files:
     47* /private/templates/000_config.py
     48* /private/templates/default/config.py
     49* /private/templates/<template>/config.py
    5250
    53 This front-end should be bypassable via deployment scripts. (i.e. the deployment scripts prompt the deployer via a CLI if not hard-coded).
     51During 1st_run, 000_config.py is copied to models/
    5452
    55 This front-end selection should use a simple Web Setup (local deployments) to select between templates.
     53000_config.py includes:
     54* FINISHED_EDITING_CONFIG_FILE
     55* machine-specific configuration (Debug, Database, SMTP, API Keys, etc)
     56* a setting to define which template folder to run
     57* importing of settings from templates/<template>/config.py
     58* optional local overrides to the template's settings
     59
     60Prepopulate options are defined in the template's config.py
     61* operating exactly as currently: DeveloperGuidelines/PrePopulate
     62
     63=== Future extensions ===
     64These are proposed extensions which need refining:
     65
     66Message Parser:
     67* private/templates/<template>/parser.py
     68Theme:
     69* static/styles/<template>/style.css
     70* static/img/<template>/*.png
     71* views/<template>/layout.html
     72* controllers/default.py index()
     73Menus:
     74* private/templates/<template>/menus.py
     75 * subclasses modules/eden/menus.py to allow overrides
     76* private/templates/<template>/layouts.py
     77 * subclasses modules/eden/layouts.py to allow overrides
     78* models/01_menu.py should no longer be required
     79Fields:
     80* private/templates/<template>/fields.py
     81 * includes any local overrides to field labels/readable/writable/DAL-level required
     82* modules/s3/s3fields.py
     83 * S3Field to subclass Field to read settings from fields.py
    5684
    5785== Implementation ==
    58 Remove /private/templates/demo (move all contents up 1 level for consistency to find across all functions which use templates)
    59 
    60 Split 000_config.py into 2 files:
    61 * Machine-specific configuration (Debug, SMTP, Database, API Keys, etc)
    62 * Instance-type configuration
    63 
    64 Have 2 settings:
    65 * Template: For which 000_config extensions to use
    66 * Prepopulate: Any additional prepopulate folders to add to the list (comes from the template)
    67 
    68 Build the running 000_config.py from the default file, with modifications based on the selected Template
    69 * so don't simply file copy but use some intelligence to uncomment/modify options in the default file
    70 
    71 Currently 000_config calls the prepopulate options.
    72 * selecting between alternate 000_config.py files requires external shell scripting, which bypasses the hmac_key automation
    73 
    74 We should move template selection to TEMPLATE in 0000_template.py?
    75 * move the CANARY_UPDATE_CHECK_ID back to 0000_update_check.py to make it easier to write the 0000_template.py?
     86Implmentation Steps for the next phase (no 'future extensions' yet)
     871. git mv /private/templates/demo/* /private/templates
     88 * move all contents of 'demo' up 1 level for consistency to find across all functions which use templates
     891. split 000_config.py into 2 files:
     90 * Machine-specific configuration (Debug, SMTP, Database, API Keys, etc): /private/templates/000_config.py
     91 * Instance-type configuration: /private/templates/<template>/config.py
     921. revert CANARY to using 0000_update,py
     931. make update_check remove 0000_template.py
     941. update the CANARY_UPDATE_CHECK_ID to force update_check to run
    7695
    7796== References ==