mirror of
https://github.com/guohuadeng/app-odoo.git
synced 2025-02-23 04:11:36 +02:00
update common
This commit is contained in:
@@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
'name': "Sunpop Odooapp Common Func",
|
'name': "Sunpop Odooapp Common Func",
|
||||||
'version': '13.21.08.03',
|
'version': '13.21.06.13',
|
||||||
'author': 'Sunpop.cn',
|
'author': 'Sunpop.cn',
|
||||||
'category': 'Base',
|
'category': 'Base',
|
||||||
'website': 'https://www.sunpop.cn',
|
'website': 'https://www.sunpop.cn',
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ def app_relaxng(view_type):
|
|||||||
""" Return a validator for the given view type, or None. """
|
""" Return a validator for the given view type, or None. """
|
||||||
if view_type not in _relaxng_cache:
|
if view_type not in _relaxng_cache:
|
||||||
# tree, search 特殊
|
# tree, search 特殊
|
||||||
if view_type in ['tree', 'search']:
|
if view_type in ['tree', 'search', 'pivot']:
|
||||||
_file = get_resource_path('app_common', 'rng', '%s_view.rng' % view_type)
|
_file = get_resource_path('app_common', 'rng', '%s_view.rng' % view_type)
|
||||||
else:
|
else:
|
||||||
_file = get_resource_path('base', 'rng', '%s_view.rng' % view_type)
|
_file = get_resource_path('base', 'rng', '%s_view.rng' % view_type)
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
import ast
|
import ast
|
||||||
from odoo.tools import view_validation
|
from odoo.tools import view_validation
|
||||||
from odoo.tools.view_validation import get_attrs_field_names as old_gafn
|
from odoo.tools.view_validation import get_attrs_field_names as old_gafn
|
||||||
|
from odoo.tools.view_validation import _get_attrs_symbols
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
_logger = logging.getLogger(__name__)
|
_logger = logging.getLogger(__name__)
|
||||||
@@ -18,25 +19,42 @@ ATTRS_WITH_FIELD_NAMES2 = {
|
|||||||
'decoration-primary',
|
'decoration-primary',
|
||||||
'decoration-success',
|
'decoration-success',
|
||||||
'decoration-warning',
|
'decoration-warning',
|
||||||
|
'decoration-black',
|
||||||
|
'decoration-white',
|
||||||
'bg-danger',
|
'bg-danger',
|
||||||
'bg-info',
|
'bg-info',
|
||||||
'bg-muted',
|
'bg-muted',
|
||||||
'bg-primary',
|
'bg-primary',
|
||||||
'bg-success',
|
'bg-success',
|
||||||
'bg-warning',
|
'bg-warning',
|
||||||
|
'bg-black',
|
||||||
|
'bg-white',
|
||||||
}
|
}
|
||||||
|
|
||||||
def app_get_attrs_field_names(env, arch, model, editable):
|
def app_get_attrs_field_names(env, arch, model, editable):
|
||||||
|
symbols = _get_attrs_symbols() | {None}
|
||||||
result = []
|
result = []
|
||||||
|
|
||||||
def add_bg(node, model, editable, get=old_gafn.get_name):
|
def get_name(node):
|
||||||
|
""" return the name from an AST node, or None """
|
||||||
|
if isinstance(node, ast.Name):
|
||||||
|
return node.id
|
||||||
|
|
||||||
|
def process_expr(expr, get, key, val):
|
||||||
|
""" parse `expr` and collect triples """
|
||||||
|
for node in ast.walk(ast.parse(expr.strip(), mode='eval')):
|
||||||
|
name = get(node)
|
||||||
|
if name not in symbols:
|
||||||
|
result.append((name, key, val))
|
||||||
|
|
||||||
|
def add_bg(node, model, editable, get=get_name):
|
||||||
for key, val in node.items():
|
for key, val in node.items():
|
||||||
if not val:
|
if not val:
|
||||||
continue
|
continue
|
||||||
if key in ATTRS_WITH_FIELD_NAMES2:
|
if key in ATTRS_WITH_FIELD_NAMES2:
|
||||||
old_gafn.process_expr(val, get, key, val)
|
process_expr(val, get, key, val)
|
||||||
|
|
||||||
res = old_gafn(arch, model, editable)
|
res = old_gafn(env, arch, model, editable)
|
||||||
add_bg(arch, model, editable)
|
add_bg(arch, model, editable)
|
||||||
res += result
|
res += result
|
||||||
return res
|
return res
|
||||||
|
|||||||
@@ -277,12 +277,16 @@
|
|||||||
<rng:optional><rng:attribute name="decoration-primary"/></rng:optional>
|
<rng:optional><rng:attribute name="decoration-primary"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="decoration-success"/></rng:optional>
|
<rng:optional><rng:attribute name="decoration-success"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="decoration-warning"/></rng:optional>
|
<rng:optional><rng:attribute name="decoration-warning"/></rng:optional>
|
||||||
|
<rng:optional><rng:attribute name="decoration-black"/></rng:optional>
|
||||||
|
<rng:optional><rng:attribute name="decoration-white"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="bg-danger"/></rng:optional>
|
<rng:optional><rng:attribute name="bg-danger"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="bg-info"/></rng:optional>
|
<rng:optional><rng:attribute name="bg-info"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="bg-muted"/></rng:optional>
|
<rng:optional><rng:attribute name="bg-muted"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="bg-primary"/></rng:optional>
|
<rng:optional><rng:attribute name="bg-primary"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="bg-success"/></rng:optional>
|
<rng:optional><rng:attribute name="bg-success"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="bg-warning"/></rng:optional>
|
<rng:optional><rng:attribute name="bg-warning"/></rng:optional>
|
||||||
|
<rng:optional><rng:attribute name="bg-black"/></rng:optional>
|
||||||
|
<rng:optional><rng:attribute name="bg-white"/></rng:optional>
|
||||||
<rng:optional>
|
<rng:optional>
|
||||||
<rng:attribute name="force_save">
|
<rng:attribute name="force_save">
|
||||||
<rng:choice>
|
<rng:choice>
|
||||||
|
|||||||
@@ -46,12 +46,16 @@
|
|||||||
<rng:optional><rng:attribute name="decoration-primary"/></rng:optional>
|
<rng:optional><rng:attribute name="decoration-primary"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="decoration-success"/></rng:optional>
|
<rng:optional><rng:attribute name="decoration-success"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="decoration-warning"/></rng:optional>
|
<rng:optional><rng:attribute name="decoration-warning"/></rng:optional>
|
||||||
|
<rng:optional><rng:attribute name="decoration-black"/></rng:optional>
|
||||||
|
<rng:optional><rng:attribute name="decoration-white"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="bg-danger"/></rng:optional>
|
<rng:optional><rng:attribute name="bg-danger"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="bg-info"/></rng:optional>
|
<rng:optional><rng:attribute name="bg-info"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="bg-muted"/></rng:optional>
|
<rng:optional><rng:attribute name="bg-muted"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="bg-primary"/></rng:optional>
|
<rng:optional><rng:attribute name="bg-primary"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="bg-success"/></rng:optional>
|
<rng:optional><rng:attribute name="bg-success"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="bg-warning"/></rng:optional>
|
<rng:optional><rng:attribute name="bg-warning"/></rng:optional>
|
||||||
|
<rng:optional><rng:attribute name="bg-black"/></rng:optional>
|
||||||
|
<rng:optional><rng:attribute name="bg-white"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="banner_route"/></rng:optional>
|
<rng:optional><rng:attribute name="banner_route"/></rng:optional>
|
||||||
<rng:optional><rng:attribute name="sample"/></rng:optional>
|
<rng:optional><rng:attribute name="sample"/></rng:optional>
|
||||||
<rng:optional>
|
<rng:optional>
|
||||||
|
|||||||
Reference in New Issue
Block a user