From d68e9cf02c72d483ce3f6842f2c0bae720c3996a Mon Sep 17 00:00:00 2001 From: Albert Cervera i Areny Date: Mon, 7 Jan 2013 00:45:57 +0100 Subject: [PATCH] Use a list of dictionaries in create(). issue2358 review592002 --- proteus/__init__.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/proteus/__init__.py b/proteus/__init__.py index 7b6dca3cb1..f90694d409 100644 --- a/proteus/__init__.py +++ b/proteus/__init__.py @@ -268,6 +268,7 @@ class One2ManyValueDescriptor(ValueDescriptor): def __get__(self, instance, owner): value = [('add', [])] value_list = getattr(instance, self.name) + to_create = [] for record in value_list: if record.id > 0: if record._changed: @@ -275,7 +276,9 @@ class One2ManyValueDescriptor(ValueDescriptor): fields=record._changed))) value[0][1].append(record.id) else: - value.append(('create', record._get_values())) + to_create.append(record._get_values()) + if to_create: + value.append(('create', to_create)) if value_list.record_removed: value.append(('unlink', [x.id for x in value_list.record_removed])) if value_list.record_deleted: @@ -646,7 +649,7 @@ class Model(object): context = self._config.context if self.id < 0: values = self._get_values() - self.__id = self._proxy.create(values, context) + self.__id, = self._proxy.create([values], context) else: if not self._changed: return