diff options
| author | Xavier Morel <xmo@openerp.com> | 2011-11-10 14:01:35 +0100 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2011-11-10 14:01:35 +0100 |
| commit | e6c21dfd0fd9cd5c169ad949cec570accd44bf3c (patch) | |
| tree | b7e7a3da3070003284635aecba4e3a454a5c5015 | |
| parent | 0edad4d844730a04a76025cee79a4d276870f863 (diff) | |
| parent | 783cc897d7e9beae53b31592c28c6036f77fe044 (diff) | |
[ADD] schema for new dashboards spec
bzr revid: xmo@openerp.com-20111110130135-ty90dtfx1heq4198
| -rw-r--r-- | openerp/addons/base/rng/view.rng | 237 |
1 files changed, 146 insertions, 91 deletions
diff --git a/openerp/addons/base/rng/view.rng b/openerp/addons/base/rng/view.rng index 7c13afd8bfc..408d032d75c 100644 --- a/openerp/addons/base/rng/view.rng +++ b/openerp/addons/base/rng/view.rng @@ -1,42 +1,43 @@ <?xml version="1.0" encoding="UTF-8"?> <rng:grammar xmlns:rng="http://relaxng.org/ns/structure/1.0" - datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> - <!-- Handling of element overloading when inheriting from a base - template - --> - <rng:define name="overload"> - <rng:optional> - <!-- - Alter matched element with content - --> - <rng:choice> - <rng:attribute name="position"> - <rng:choice> - <!-- Insert content before first child --> - <rng:value>before</rng:value> - <!-- Insert content after last child --> - <rng:value>after</rng:value> - <!-- Replace all children with content --> - <rng:value>inside</rng:value> - <!-- Replace matched element itself with content --> - <rng:value>replace</rng:value> - </rng:choice> - </rng:attribute> - <rng:group> - <rng:attribute name="position"> - <!-- Edit element attributes --> - <rng:value>attributes</rng:value> - </rng:attribute> - <rng:oneOrMore> - <rng:element name="attribute"> - <rng:attribute name="name"><rng:text/></rng:attribute> - <rng:text /> - </rng:element> - </rng:oneOrMore> - </rng:group> - </rng:choice> - </rng:optional> - </rng:define> + xmlns:a="http://relaxng.org/ns/annotation/1.0" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <!-- Handling of element overloading when inheriting from a base + template + --> + <rng:define name="overload"> + <rng:optional> + <!-- + Alter matched element with content + --> + <rng:choice> + <rng:attribute name="position"> + <rng:choice> + <!-- Insert content before first child --> + <rng:value>before</rng:value> + <!-- Insert content after last child --> + <rng:value>after</rng:value> + <!-- Replace all children with content --> + <rng:value>inside</rng:value> + <!-- Replace matched element itself with content --> + <rng:value>replace</rng:value> + </rng:choice> + </rng:attribute> + <rng:group> + <rng:attribute name="position"> + <!-- Edit element attributes --> + <rng:value>attributes</rng:value> + </rng:attribute> + <rng:oneOrMore> + <rng:element name="attribute"> + <rng:attribute name="name"><rng:text/></rng:attribute> + <rng:text /> + </rng:element> + </rng:oneOrMore> + </rng:group> + </rng:choice> + </rng:optional> + </rng:define> <rng:define name="access_rights"> <rng:optional> @@ -44,29 +45,113 @@ </rng:optional> </rng:define> + <rng:define name="dashboard-column"> + <rng:element name="column"> + <rng:zeroOrMore> + <rng:element name="action"> + <!-- Action identifier, used by clients to get the + actual action from db --> + <rng:attribute name="name"/> + <!-- Displayed name of dashboard item (above idem) --> + <rng:optional><rng:attribute name="string"/></rng:optional> + <!-- Merged into the action descriptor's own + context before executing the action --> + <rng:optional><rng:attribute name="context"/></rng:optional> + <!-- Added to the action descriptor's own domain + before executing the action --> + <rng:optional><rng:attribute name="domain"/></rng:optional> + <!-- In case the action is an act_window, + overrides its own @views. --> + <rng:optional><rng:attribute name="view_mode"/></rng:optional> + </rng:element> + </rng:zeroOrMore> + </rng:element> + </rng:define> + <rng:define name="dashboard"> + <rng:choice> + <rng:element name="board"> + <a:documentation> + New-style (6.1) dashboard definition + </a:documentation> + <rng:choice> + <rng:group> + <a:documentation> + Single-column dashboard style + </a:documentation> + <rng:attribute name="style"> + <rng:value>1</rng:value> + </rng:attribute> + <rng:ref name="dashboard-column"/> + </rng:group> + <rng:group> + <a:documentation> + Three different 2-column dashboard styles: + 50|50, 33|66 and 66|33. + </a:documentation> + <rng:attribute name="style"> + <rng:choice> + <rng:value>1-1</rng:value> + <rng:value>1-2</rng:value> + <rng:value>2-1</rng:value> + </rng:choice> + </rng:attribute> + <rng:ref name="dashboard-column"/> + <rng:ref name="dashboard-column"/> + </rng:group> + <rng:group> + <a:documentation> + Three-column dashboard style: 33|33|33 + </a:documentation> + <rng:attribute name="style"> + <rng:value>1-1-1</rng:value> + </rng:attribute> + <rng:ref name="dashboard-column"/> + <rng:ref name="dashboard-column"/> + <rng:ref name="dashboard-column"/> + </rng:group> + </rng:choice> + </rng:element> + <!-- + DEPRECATED old-style dashboards + --> + <rng:element> + <rng:choice> + <rng:name>hpaned</rng:name> + <rng:name>vpaned</rng:name> + </rng:choice> + <rng:optional> + <rng:attribute name="position"> + <rng:data type="int"/> + </rng:attribute> + </rng:optional> + <rng:zeroOrMore> + <rng:optional><rng:ref name="any"/></rng:optional> + <rng:optional><rng:ref name="html"/></rng:optional> + </rng:zeroOrMore> + </rng:element> + </rng:choice> + </rng:define> - - <rng:define name="container"> - <rng:optional><rng:attribute name="col"/></rng:optional> - <rng:zeroOrMore> - <rng:choice> - <rng:ref name="notebook"/> - <rng:ref name="field"/> - <rng:ref name="group"/> - <rng:ref name="button"/> - <rng:ref name="hpaned" /> - <rng:ref name="label" /> - <rng:ref name="separator"/> - <rng:ref name="image"/> - <rng:ref name="form"/> - <rng:ref name="vpaned"/> - <rng:ref name="filter"/> - <rng:ref name="html"/> - <rng:element name="newline"><rng:empty/></rng:element> - <rng:element name="properties"><rng:empty/></rng:element> - </rng:choice> - </rng:zeroOrMore> - </rng:define> + <rng:define name="container"> + <rng:optional><rng:attribute name="col"/></rng:optional> + <rng:zeroOrMore> + <rng:choice> + <rng:ref name="notebook"/> + <rng:ref name="field"/> + <rng:ref name="group"/> + <rng:ref name="button"/> + <rng:ref name="label" /> + <rng:ref name="separator"/> + <rng:ref name="image"/> + <rng:ref name="form"/> + <rng:ref name="dashboard"/> + <rng:ref name="filter"/> + <rng:ref name="html"/> + <rng:element name="newline"><rng:empty/></rng:element> + <rng:element name="properties"><rng:empty/></rng:element> + </rng:choice> + </rng:zeroOrMore> + </rng:define> <rng:define name="form"> <rng:element name="form"> @@ -219,12 +304,11 @@ <rng:ref name="field"/> <rng:ref name="group"/> <rng:ref name="button"/> - <rng:ref name="hpaned" /> <rng:ref name="label" /> <rng:ref name="separator"/> <rng:ref name="image"/> <rng:ref name="form"/> - <rng:ref name="vpaned"/> + <rng:ref name="dashboard"/> <rng:ref name="filter"/> <rng:ref name="html"/> <rng:element name="newline"><rng:empty/></rng:element> @@ -278,34 +362,6 @@ </rng:element> </rng:define> - <rng:define name="hpaned"> - <rng:element name="hpaned"> - <rng:optional> - <rng:attribute name="position"> - <rng:data type="int"/> - </rng:attribute> - </rng:optional> - <rng:zeroOrMore> - <rng:ref name="any" /> - <rng:optional><rng:ref name="html"/></rng:optional> - </rng:zeroOrMore> - </rng:element> - </rng:define> - - <rng:define name="vpaned"> - <rng:element name="vpaned"> - <rng:optional> - <rng:attribute name="position"> - <rng:data type="int"/> - </rng:attribute> - </rng:optional> - <rng:zeroOrMore> - <rng:optional><rng:ref name="any"/></rng:optional> - <rng:optional><rng:ref name="html"/></rng:optional> - </rng:zeroOrMore> - </rng:element> - </rng:define> - <rng:define name="any"> <rng:element> <rng:anyName/> @@ -341,8 +397,7 @@ <rng:ref name="form" /> <rng:ref name="page" /> <rng:ref name="notebook"/> - <rng:ref name="hpaned"/> - <rng:ref name="vpaned"/> + <rng:ref name="dashboard"/> <rng:ref name="filter"/> <rng:ref name="html"/> </rng:choice> |
