Skip to content
Snippets Groups Projects

:handshake: 11.0-tomerge

Open Vincent Hatakeyama requested to merge topic/11.0/merge into branch/11.0
1 file
+ 25
12
Compare changes
  • Side-by-side
  • Inline
+ 25
12
@@ -299,7 +299,7 @@
else:
# No analytic structure defined for this field, hide it.
modifiers = json.loads(match.get("modifiers", "{}"))
modifiers["invisible"] = modifiers["tree_invisible"] = True
modifiers["invisible"] = modifiers["column_invisible"] = True
modifiers["required"] = False
match.set("invisible", "true")
match.set("required", "false")
@@ -345,4 +345,11 @@
)
view["fields"].update(elem_fields_def)
# Prepare the "modifiers" attribute normally dynamically added.
# Specifics here:
# * We compare against explicit attributes in the view. This
# way we avoid all-read-only fields as the main
# "analytic_dimensions" pseudo-field is read-only.
# * When comparing, handle column_invisible -> invisible (see
# odoo/osv/orm.py > transfer_node_to_modifiers).
modifiers = json.loads(elem.attrib.get("modifiers", "{}"))
@@ -348,3 +355,12 @@
modifiers = json.loads(elem.attrib.get("modifiers", "{}"))
modifiers = json.dumps(
{
attr: value
for attr, value in modifiers.items()
if elem.attrib.get(_MODIFIER_TO_ATTR.get(attr, attr))
in ("True", "true", "1")
}
)
# Now we can insert the fields in the view's architecture.
for field in elem_fields:
@@ -349,16 +365,8 @@
# Now we can insert the fields in the view's architecture.
for field in elem_fields:
attrs = {"name": field}
attrs["modifiers"] = json.dumps(
{
attr: value
for attr, value in list(modifiers.items())
if elem.attrib.get(attr, "False")
in ("True", "true", "1")
}
)
for attr, value in list(elem.attrib.items()):
if attr in ["name", "prefix", "suffix", "modifiers"]:
attrs = {"modifiers": modifiers, "name": field}
for attr, value in elem.attrib.items():
if attr in ("name", "prefix", "suffix", "modifiers"):
continue
attrs[attr] = value
parent.append(etree.Element("field", attrs))
@@ -368,3 +376,8 @@
view["arch"] = etree.tostring(doc)
return view
# Used above in analytic_fields_view_get to compare "modifiers" vs explicit
# attributes. See odoo/osv/orm.py > transfer_node_to_modifiers.
_MODIFIER_TO_ATTR = {"column_invisible": "invisible"}
Loading