summaryrefslogtreecommitdiff
path: root/openerp/fields.py
diff options
context:
space:
mode:
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