summaryrefslogtreecommitdiff
path: root/openerp/fields.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2015-01-19 17:15:56 +0100
committerChristophe Simonis <chs@odoo.com>2015-01-19 17:15:56 +0100
commit18e22be138f4d273ce8f63c0ff2c8a437cf6ce5d (patch)
tree63bd658de7b6fa0e91d521ca19322dd68bdc1492 /openerp/fields.py
parentf6e5bf847b1a7107c09b009a757823b0f9514fa4 (diff)
parent0aab81cd3ac6881b2b64ccedb901b55badd421d4 (diff)
[MERGE] forward port of branch 8.0 up to 0aab81c
Diffstat (limited to 'openerp/fields.py')
-rw-r--r--openerp/fields.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/openerp/fields.py b/openerp/fields.py
index b16151176a6..030872c0092 100644
--- a/openerp/fields.py
+++ b/openerp/fields.py
@@ -460,7 +460,8 @@ class Field(object):
# determine dependencies, compute, inverse, and search
self.depends = ('.'.join(self.related),)
self.compute = self._compute_related
- self.inverse = self._inverse_related
+ if not (self.readonly or field.readonly):
+ self.inverse = self._inverse_related
if field._description_searchable:
# allow searching on self only if the related field is searchable
self.search = self._search_related
@@ -1751,6 +1752,14 @@ class Many2many(_RelationalMulti):
_column_limit = property(attrgetter('limit'))
+class Serialized(Field):
+ """ Minimal support for existing sparse and serialized fields. """
+ type = 'serialized'
+
+ def convert_to_cache(self, value, record, validate=True):
+ return value or {}
+
+
class Id(Field):
""" Special case for field 'id'. """
store = True
@@ -1774,7 +1783,6 @@ class Id(Field):
def __set__(self, record, value):
raise TypeError("field 'id' cannot be assigned")
-
# imported here to avoid dependency cycle issues
from openerp import SUPERUSER_ID
from .exceptions import Warning, AccessError, MissingError