This commit adds checks in the view validation, to detect the use of implementation details in archs. The goal is to prevent people from using owl directives in archs (e.g. t-on-click). Recall that a view arch isn't an owl template, it must follow the DSL of the given view type. In kanban, gantt and activity archs, using `t-xxx` attributes is forbidden, except for directives historically supported by qweb (e.g. `t-esc`). In other views, using `t-xxx` attributes is forbidden (except for `t-translation`). In all views, using attributes `data-tooltip`, `data-tooltip-template` and `data-tooltip-info` is forbidden. Task 3085357 closes odoo/odoo#107083 Related: odoo/enterprise#35352 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
20 lines
758 B
Python
20 lines
758 B
Python
# -*- coding: utf-8 -*-
|
|
from odoo import fields, models
|
|
|
|
|
|
class View(models.Model):
|
|
_inherit = 'ir.ui.view'
|
|
|
|
type = fields.Selection(selection_add=[('activity', 'Activity')])
|
|
|
|
def _postprocess_tag_field(self, node, name_manager, node_info):
|
|
if node.xpath("ancestor::div[hasclass('oe_chatter')]"):
|
|
# Pass the postprocessing of the mail thread fields
|
|
# The web client makes it completely custom, and this is therefore pointless.
|
|
name_manager.has_field(node, node.get('name'), {})
|
|
return
|
|
return super()._postprocess_tag_field(node, name_manager, node_info)
|
|
|
|
def _is_qweb_based_view(self, view_type):
|
|
return view_type == "activity" or super()._is_qweb_based_view(view_type)
|