| | 1 | [[TOC]] |
| | 2 | |
| | 3 | = Tutorial = |
| | 4 | |
| | 5 | The following material from SahanaCamp1.2 may be useful: |
| | 6 | * [http://eden.sahanafoundation.org/attachment/wiki/SahanaCamp1.2/Sahana%20Eden%20-%20Developer%20Environment%20(VM).pdf Sahana Eden - Developer Environment (VM)] |
| | 7 | * [http://eden.sahanafoundation.org/attachment/wiki/SahanaCamp1.2/Sahana%20Eden%20-%20Introduction%20to%20the%20Code.pdf Sahana Eden - Introduction to the Code] |
| | 8 | * [http://eden.sahanafoundation.org/attachment/wiki/SahanaCamp1.2/Sahana%20Eden%20-%20Bug%20Reporting.pdf Sahana Eden - Bug Reporting] |
| | 9 | * [http://eden.sahanafoundation.org/attachment/wiki/SahanaCamp1.2/Sahana%20Eden%20-%20Localisation.pdf Sahana Eden - Localisation] |
| | 10 | * [wiki:DeveloperQuickstart] |
| | 11 | |
| | 12 | == Model == |
| | 13 | Defines databases in: {{{/models/module.py}}} |
| | 14 | |
| | 15 | The Models are loaded 1st within Web2Py processing, before the controllers.[[BR]] |
| | 16 | So you can import any global modules/set any global variables here.[[BR]] |
| | 17 | The Models are imported in alphabetical order, so we load the files which other modules depend on 1st, hence naming them appropriately:[[BR]]{{{000_config.py}}}, {{{01_crud.py}}}, {{{02_pr.py}}}, {{{03_gis.py}}}, etc |
| | 18 | |
| | 19 | == Controller == |
| | 20 | Python functions in {{{/controllers/module.py}}} [[BR]] |
| | 21 | e.g. |
| | 22 | {{{ |
| | 23 | def list_records(): |
| | 24 | items = crud.select(table) |
| | 25 | return dict(items=items) |
| | 26 | }}} |
| | 27 | |
| | 28 | == View == |
| | 29 | HTML/Javascript templates in {{{/views/module/function.html}}} |
| | 30 | * these are normal HTML/JS files with the ability to add in Python code (e.g. variables) surrounded by brackets: {{ interpreted python here }} |
| | 31 | * there should be an .html file available for each function in the module (name normally being the same as the function) |
| | 32 | * these normally inherit from {{{views/layout.html}}} which also includes the !JavaScript from {{{views/*_ajax.html}}} |
| | 33 | * if there is no view defined then a default view will be displayed, which will show the values of all the data it can see, but not be formatted nicely |
| | 34 | |
| | 35 | Static CSS/Javascript files are stored in {{{/static}}} |