diff --git a/odoo/addons/base/models/ir_property.py b/odoo/addons/base/models/ir_property.py index 105f706bcd6..20bee4335fe 100644 --- a/odoo/addons/base/models/ir_property.py +++ b/odoo/addons/base/models/ir_property.py @@ -17,6 +17,7 @@ TYPE2FIELD = { 'date': 'value_datetime', 'datetime': 'value_datetime', 'selection': 'value_text', + 'html': 'value_text', } TYPE2CLEAN = { @@ -29,6 +30,7 @@ TYPE2CLEAN = { 'binary': lambda val: val or False, 'date': lambda val: val.date() if val else False, 'datetime': lambda val: val or False, + 'html': lambda val: val or False, } @@ -56,6 +58,7 @@ class Property(models.Model): ('date', 'Date'), ('datetime', 'DateTime'), ('selection', 'Selection'), + ('html', 'Html'), ], required=True, default='many2one', diff --git a/odoo/addons/test_new_api/models/test_new_api.py b/odoo/addons/test_new_api/models/test_new_api.py index c8a5d6fd3a1..d35be917e44 100644 --- a/odoo/addons/test_new_api/models/test_new_api.py +++ b/odoo/addons/test_new_api/models/test_new_api.py @@ -585,6 +585,8 @@ class CompanyDependent(models.Model): truth = fields.Boolean(company_dependent=True) count = fields.Integer(company_dependent=True) phi = fields.Float(company_dependent=True, digits=(2, 5)) + html1 = fields.Html(company_dependent=True, sanitize=False) + html2 = fields.Html(company_dependent=True, sanitize_attributes=True, strip_classes=True, strip_style=True) class CompanyDependentAttribute(models.Model): diff --git a/odoo/addons/test_new_api/tests/test_new_fields.py b/odoo/addons/test_new_api/tests/test_new_fields.py index 6c957f2338d..7ca16861b7f 100644 --- a/odoo/addons/test_new_api/tests/test_new_fields.py +++ b/odoo/addons/test_new_api/tests/test_new_fields.py @@ -1664,6 +1664,85 @@ class TestFields(TransactionCaseWithUserDemo): 'not in': ([tag1.id, tag2.id], [tag2.id, False], [False], []), }) + def test_29_company_dependent_html(self): + company0 = self.env.ref('base.main_company') + company1 = self.env['res.company'].create({'name': 'A'}) + company2 = self.env['res.company'].create({'name': 'B'}) + + user0 = self.env['res.users'].create({ + 'name': 'Foo', 'login': 'foo', 'company_id': company0.id, + 'company_ids': [Command.set([company0.id, company1.id, company2.id])]}) + user1 = self.env['res.users'].create({ + 'name': 'Bar', 'login': 'bar', 'company_id': company1.id, + 'company_ids': [Command.set([company0.id, company1.id, company2.id])]}) + user2 = self.env['res.users'].create({ + 'name': 'Baz', 'login': 'baz', 'company_id': company2.id, + 'company_ids': [Command.set([company0.id, company1.id, company2.id])]}) + + some_ugly_html_0 = """
Oops this should maybe be sanitized +% if object.some_field and not object.oriented: +
| + |
| + |