From dce5228da7ba79ddb2ebbdf745347acc80f02627 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Thu, 21 Aug 2014 11:40:38 +0200 Subject: [PATCH] [FIX] fields: add missing option 'sanitize' on Html fields --- openerp/fields.py | 11 ++++++++++- openerp/osv/fields.py | 5 +++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/openerp/fields.py b/openerp/fields.py index c2f9d93f4d2..4ca9719ba47 100644 --- a/openerp/fields.py +++ b/openerp/fields.py @@ -553,6 +553,7 @@ class Field(object): def _description_searchable(self, env): return self._description_store(env) or bool(self.search) + _description_manual = property(attrgetter('manual')) _description_depends = property(attrgetter('depends')) _description_related = property(attrgetter('related')) _description_company_dependent = property(attrgetter('company_dependent')) @@ -607,6 +608,7 @@ class Field(object): # properties used by to_column() to create a column instance _column_copy = property(attrgetter('copyable')) _column_select = property(attrgetter('index')) + _column_manual = property(attrgetter('manual')) _column_string = property(attrgetter('string')) _column_help = property(attrgetter('help')) _column_readonly = property(attrgetter('readonly')) @@ -989,11 +991,18 @@ class Text(_String): class Html(_String): """ Html field. """ type = 'html' + sanitize = True # whether value must be sanitized + + _column_sanitize = property(attrgetter('sanitize')) + _related_sanitize = property(attrgetter('sanitize')) + _description_sanitize = property(attrgetter('sanitize')) def convert_to_cache(self, value, record, validate=True): if value is None or value is False: return False - return html_sanitize(value) + if validate and self.sanitize: + return html_sanitize(value) + return value class Date(Field): diff --git a/openerp/osv/fields.py b/openerp/osv/fields.py index 4c3ef1f75ad..c411847b1b8 100644 --- a/openerp/osv/fields.py +++ b/openerp/osv/fields.py @@ -294,6 +294,11 @@ class html(text): self._symbol_f = self._symbol_set_html self._symbol_set = (self._symbol_c, self._symbol_f) + def to_field_args(self): + args = super(html, self).to_field_args() + args['sanitize'] = self._sanitize + return args + import __builtin__ class float(_column):