|Version 6 (modified by 9 years ago) ( diff ),|
Plugins allow people to extend Sahana Eden without their code needing to be added to Trunk & yet keeping their Trunk install conmpletely clean.
This helps prevent merge conflicts between different deployment branches & hence reduces the risk of forking.
The End-User wishes to be able to browse a repository of plugins, viewing their names, descriptions & who maintains them. They wish to be able to click on a plugin to easily install them into their running instance of Eden.
The Developer wishes to be able to develop new functionality which extends a base Eden install without needing to have anything added to Trunk.
This functionality may include:
- Controller Customizations
- Applying the Widgets to existing modules would be done in controller customizations in templates
- A plugin is a Web2Py application which acts as a co-app to the main Eden instance.
- The plugin will have standard files to identify itself to Eden:
- Metadata (Name, Description, Maintainer)
- Menu entries
- List of Modules to be added to Auth UI
- The Eden instance can be configured with a list of plugins using
settings.plugins = ["plugin1", "plugin2"]
- This could be done in either models/000_config.py or a Template
- Q: How can we download these from a URL if not found?
- S3Menu to be extended to read the settings & add additional menu entries found in those folders
- Templates which don't use S3Menu will not support these, but that's seen as a bug in these templates
Once implemented the design will move here: