changeset f161a9f37679 in proteus:default
details: https://hg.tryton.org/proteus?cmd=changeset;node=f161a9f37679
description:
        Raise NotImplementedError when setting Function field without setter

        issue7985
        review265101002
diffstat:

 proteus/__init__.py |  11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diffs (21 lines):

diff -r ae977ce9155d -r f161a9f37679 proteus/__init__.py
--- a/proteus/__init__.py       Fri Mar 08 23:40:20 2019 +0100
+++ b/proteus/__init__.py       Wed Mar 27 00:28:57 2019 +0100
@@ -885,8 +885,15 @@
         'Return dictionary values'
         if fields is None:
             fields = self._values.keys()
-        return dict((x, getattr(self, '__%s_value' % x)) for x in fields
-                if x not in ('id', '_timestamp'))
+        values = {}
+        for name in fields:
+            if name in ['id', '_timestamp']:
+                continue
+            definition = self._fields[name]
+            if definition.get('readonly') and definition['type'] != 'one2many':
+                continue
+            values[name] = getattr(self, '__%s_value' % name)
+        return values
 
     @property
     def _timestamp(self):

Reply via email to