Changes between Version 17 and Version 18 of BluePrint/Plugins


Ignore:
Timestamp:
06/21/13 23:00:19 (12 years ago)
Author:
Fran Boon
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TabularUnified BluePrint/Plugins

    v17 v18  
    33
    44== Introduction ==
    5 
    65A plugin is any modification to a system that can be applied independent of the base installation. Supporting plugins would allow people to extend Sahana Eden without their code needing to be added to trunk, and keeping their eden repository clean. This helps prevent merge conflicts between a customized site and trunk, and reduces the pressure to fork. It is possible that some non-core features supported by the Sahana Software Foundation could be delivered as plugins.
    7 
    8 == Motivation ==
    9 
    10 [http://wordpress.org/plugins/ WordPress has plugins] -- north of 25,000 of them. They're one reason for its great popularity, as it permits [a very large number] of independent developers to offer features. Ushahidi has plugins -- just recently, the lead for [http://www.nepalmonitor.org NepalMonitor] offered two plugins written by the Nepalese developer group Himalayan Techies. Web2py has plugins...and Web2py applications are plugins too. These are examples of products that get benefit from plugins, plus a bit of push to Keep Up with the Joneses.
    11 
    12 Plugins also provide an outlet for frustrated wannabe Eden devs who can't get their features accepted into trunk, and those who want to use Eden for a somewhat non-target use. (They'll let me add a kanban module, so I have someplace to point a kanban phone app. --Pat)
    136
    147== Use-Cases ==
    158The requirements are prioritised: +++ most important, + least important
    169
    17 === New data ===
    18 * A site wants to add fields to an existing primary resource, and have them show up in the primary resource's Basic Details form. These will be 1-1 with the primary resource records. +++
    19 * A site needs to add a new 1-N component to go with an existing primary resource. +++
    20 
    21 === New functionality ===
    22 
    23 A site needs an entire new module with model / controller / view, that yet makes use of existing tables, including having them as components. +++
    24 
    25 === Modified UI ===
    26 A site wants to match the look and feel of other tools they use, including types of widgets. E.g. they may want to replace the map viewer with one that they use in another application. + because this is handled by templates and that functionality is working. However, if we can make templates into plugins, we would not need to store everyone's templates in trunk. In that case, +++
    27 
    28 Note: It is very easy already to have a template kept out of the main repo via a .gitignore so this seems lower priority to Fran
    29 
    30 === Delivery ===
     10=== Deployer ===
    3111* The admin wants to be able to browse a repository of plugins, viewing their names, descriptions, social rating, who maintains them. ++
    3212* Installation should be no harder than installing a Web2py application, plus some configuration editing. ++
     
    4626 * Controller Customizations
    4727 * Parsers
     28 * Note: It is very easy already to have a template kept out of the main repo via a .gitignore so this seems lower priority to Fran
    4829* [DeveloperGuidelines/Themes Theme]
    4930 * Views
    5031 * CSS
     32 * Note: It is very easy already to have a theme kept out of the main repo via a .gitignore so this seems lower priority to Fran
    5133* Widgets
    52  * Applying the Widgets to existing modules would be done in controller customizations in templates
     34 * Widgets can already be defined in Templates
     35 * Applying the Widgets to existing modules would be done in controller customizations in Templates
     36
     37==== New data ====
     38* A site wants to add fields to an existing primary resource, and have them show up in the primary resource's Basic Details form. These will be 1-1 with the primary resource records. +++
     39* A site needs to add a new 1-N component to go with an existing primary resource. +++
     40
     41These can be done with a Model and a custom crud_form in the customize_ section of the Template
     42
     43==== New functionality ====
     44* A site needs an entire new module with models, controllers & views, that yet makes use of existing tables, including having them as components. +++
     45
     46==== Modified UI ====
     47* A site wants to match the look and feel of other tools they use, including types of widgets. E.g. they may want to replace the map viewer with one that they use in another application. + because this is handled by templates and that functionality is working. However, if we can make templates into plugins, we would not need to store everyone's templates in trunk. In that case, +++
    5348
    5449== Design ==
     
    6661=== Future extensions ===
    6762
     63== Motivation ==
     64[http://wordpress.org/plugins/ WordPress has plugins] -- north of 25,000 of them. They're one reason for its great popularity, as it permits [a very large number] of independent developers to offer features. Ushahidi has plugins -- just recently, the lead for [http://www.nepalmonitor.org NepalMonitor] offered two plugins written by the Nepalese developer group Himalayan Techies. Web2py has plugins...and Web2py applications are plugins too. These are examples of products that get benefit from plugins, plus a bit of push to Keep Up with the Joneses.
     65
     66Plugins also provide an outlet for frustrated wannabe Eden devs who can't get their features accepted into trunk, and those who want to use Eden for a somewhat non-target use. (They'll let me add a kanban module, so I have someplace to point a kanban phone app. --Pat)
     67
    6868== Implementation ==
    6969Once implemented the design will move here: