[IMP] base: extract gantt validation

All views defined in the 'enterprise' addons have their validation done
manually in their respective addons. Each one ? No, one rebel still
resists to the standart way to work.
This commit moves the gantt validation to put it in its module. The idea
is (for developper) to have only one module to change when adding feature
in gantt view.

Task-2050019
This commit is contained in:
jem-odoo
2019-08-12 11:21:15 +00:00
parent df93bf175f
commit 4b8af06d8a
3 changed files with 2 additions and 73 deletions
+1 -1
View File
@@ -976,7 +976,7 @@ actual arch.
not self._context.get("create", True) and is_base_model):
node.set("create", 'false')
if node.tag in ('kanban', 'tree', 'form', 'gantt', 'activity'):
if node.tag in ('kanban', 'tree', 'form', 'activity'):
for action, operation in (('create', 'create'), ('delete', 'unlink'), ('edit', 'write')):
if (not node.get(action) and
not Model.check_access_rights(operation, raise_exception=False) or
-71
View File
@@ -1,71 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<rng:grammar xmlns:rng="http://relaxng.org/ns/structure/1.0"
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:include href="common.rng"/>
<rng:define name="gantt">
<rng:element name="gantt">
<rng:attribute name="date_start"/>
<rng:attribute name="date_stop"/>
<rng:optional><rng:attribute name="js_class"/></rng:optional>
<rng:optional><rng:attribute name="progress"/></rng:optional>
<rng:optional><rng:attribute name="consolidation"/></rng:optional>
<rng:optional><rng:attribute name="consolidation_max"/></rng:optional>
<rng:optional><rng:attribute name="consolidation_exclude"/></rng:optional>
<rng:optional><rng:attribute name="string"/></rng:optional>
<rng:optional><rng:attribute name="create"/></rng:optional>
<rng:optional><rng:attribute name="on_create"/></rng:optional>
<rng:optional><rng:attribute name="edit"/></rng:optional>
<rng:optional><rng:attribute name="plan"/></rng:optional>
<rng:optional><rng:attribute name="default_group_by"/></rng:optional>
<rng:optional><rng:attribute name="display_unavailability"/></rng:optional>
<rng:optional><rng:attribute name="total_row"/></rng:optional>
<rng:optional><rng:attribute name="collapse_first_level"/></rng:optional>
<rng:optional><rng:attribute name="offset"/></rng:optional>
<rng:optional><rng:attribute name="scales"/></rng:optional>
<rng:optional>
<rng:attribute name="default_scale">
<rng:choice>
<rng:value>day</rng:value>
<rng:value>week</rng:value>
<rng:value>month</rng:value>
<rng:value>year</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional><rng:attribute name="precision"/></rng:optional>
<rng:optional><rng:attribute name="color"/></rng:optional>
<rng:optional><rng:attribute name="decoration-secondary"/></rng:optional>
<rng:optional><rng:attribute name="decoration-success"/></rng:optional>
<rng:optional><rng:attribute name="decoration-info"/></rng:optional>
<rng:optional><rng:attribute name="decoration-warning"/></rng:optional>
<rng:optional><rng:attribute name="decoration-danger"/></rng:optional>
<rng:interleave>
<rng:zeroOrMore><rng:ref name="field"/></rng:zeroOrMore>
<rng:optional>
<rng:element name="templates">
<rng:oneOrMore>
<rng:ref name="any"/>
</rng:oneOrMore>
</rng:element>
</rng:optional>
</rng:interleave>
<rng:empty/>
</rng:element>
</rng:define>
<rng:start>
<rng:choice>
<rng:ref name="gantt" />
</rng:choice>
</rng:start>
</rng:grammar>
+1 -1
View File
@@ -183,7 +183,7 @@ def relaxng(view_type):
return _relaxng_cache[view_type]
@validate('calendar', 'diagram', 'gantt', 'graph', 'pivot', 'search', 'tree', 'activity')
@validate('calendar', 'diagram', 'graph', 'pivot', 'search', 'tree', 'activity')
def schema_valid(arch, **kwargs):
""" Get RNG validator and validate RNG file."""
validator = relaxng(arch.tag)