Version 22 (modified by Fran Boon, 10 years ago) ( diff )



Sahana Eden supports custom Themes as part of it's overall Templates system.

This allows customisation of:

  • Layout
  • CSS

Default Theme

By default these files are used:

  • /modules/templates/default/views/layout.html
  • /static/img

in non-Debug mode:

  • /static/themes/default/eden.min.css

in Debug mode:

  • /modules/templates/default/css.cfg
  • /static/themes/default/layout.css
  • /static/themes/default/reset.css
  • /static/themes/default/layout.css
  • /static/themes/default/shortcut.css
  • /static/themes/default/widgets.css
  • /static/themes/default/style.css
  • /static/themes/default/homepage.css


User Theme

A new Theme should match the name of the controlling Template.

To create a new theme:

  1. Specify the Theme name in your template's /modules/templates/<templatename>/
    • settings.base.theme = "themename"
  2. Create a new folder to hold the theme elements:
    • /static/themes/<themename> which will usually contain these files: layout.css, style.css (it is normally assumed that /static/themes/default/css/widgets.css is also used)
    • /static/themes/<themename>/img
  3. If not already using a template create one: /private/templates/<templatename>
  4. Create these files in your templates folder:
    • /modules/templates/<templatename>/ - this can be empty but must be present.
    • /modules/templates/<templatename>/css.cfg - list of CSS files to use in Debug mode, or be compressed together for the normal non-debug mode by the Build script (static/scripts/tools/ into:
      • /static/themes/<themename>/eden.min.css
    • /modules/templates/<templatename>/views/layout.html - overall layout of the HTML.

Note that all CSS files should be able to find their images both in debug mode & when compressed into eden.min.css - this is normally done by having the files at the same depth in the tree.

NB Production sites who wish to compile their code either need to hardcode the theme name in their views/layout.html or upgrade to Web2Py version: 2.00.0 (2012-06-17 23:36:32), or newer.

Ext Theme

Use CodeBeautifier to merge the ext-all-notheme.css with xtheme-gray.css (merges properties on the same selectors which most minifiers don't):

  • static/scripts/ext/resources/css/ext-theme.min.css

Can also use this to merge a custom theme, e.g. built with or this Eclipse plugin:

Customizing Form Design by Theme

By default, all form fields have their uniq divs like that <div class="form-row row" id="org_organisation_phone__row"> In this example, we will put Organization Home Country field next to Organization Type field.

Add these css code to your css file here /static/themes/MYTHEME/style.css: #org_organisation_link_defaultorganisation_type__row, #org_organisation_country__row {display:inline-block;float:left}

That's it.

See Also

Note: See TracWiki for help on using the wiki.