mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-19 19:12:00 +02:00
38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
# Copyright 2020 Creu Blanca
|
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
|
|
|
from odoo import _, fields, models
|
|
|
|
from odoo.addons.base.models.ir_ui_view import NameManager
|
|
|
|
|
|
class IrUiView(models.Model):
|
|
|
|
_inherit = "ir.ui.view"
|
|
|
|
type = fields.Selection(selection_add=[("dms_list", "DMS Tree")])
|
|
|
|
def _postprocess_tag_dms_list(self, node, name_manager, node_info):
|
|
parent = node.getparent()
|
|
if parent_name := parent and parent.get("name"):
|
|
field = name_manager.model._fields.get(parent_name)
|
|
if field:
|
|
model_name = field.comodel_name
|
|
if model_name not in self.env:
|
|
self._raise_view_error(
|
|
_("Model not found: %(model)s", model=model_name), node
|
|
)
|
|
model = self.env[model_name]
|
|
new_name_manager = NameManager(model, parent=name_manager)
|
|
root_info = {
|
|
"view_type": node.tag,
|
|
"view_editable": self._editable_node(node, name_manager),
|
|
"view_modifiers_from_model": self._modifiers_from_model(node),
|
|
}
|
|
new_node_info = dict(
|
|
root_info,
|
|
modifiers={},
|
|
editable=self._editable_node(node, new_name_manager),
|
|
)
|
|
for child in node:
|
|
self._postprocess_tag_field(child, new_name_manager, new_node_info)
|