Please review this at http://codereview.appspot.com/4287041/
Affected files:
M tryton/gui/window/view_form/model/group.py
Index: tryton/gui/window/view_form/model/group.py
===================================================================
--- a/tryton/gui/window/view_form/model/group.py
+++ b/tryton/gui/window/view_form/model/group.py
@@ -157,23 +157,14 @@
def load(self, ids, display=True, modified=False):
if not ids:
return True
- # Work with sets to compute intersection and set difference
- set_records = set(self.get(x) for x in ids)
- for record in set_records & set(self.record_removed):
- self.record_removed.remove(record)
- for record in set_records & set(self.record_deleted):
- self.record_deleted.remove(record)
-
- set_records -= set(x for x in self)
- # return on the list form in order to preserver ordering
- ids = [x for x in ids if self.get(x) in set_records]
- if not ids:
- return True
if len(ids) > 1:
self.lock_signal = True
+
new_records = []
for id in ids:
+ if self.get(id):
+ continue
new_record = Record(self.model_name, id, self.window,
parent=self.parent, parent_name=self.parent_name,
group=self)
self.append(new_record)
@@ -182,6 +173,15 @@
self._record_changed)
new_record.signal_connect(self, 'record-modified',
self._record_modified)
+
+ # Remove previously removed or deleted records
+ # Work with sets to compute intersection and set difference
+ set_records = set(self.get(x) for x in ids)
+ for record in set_records & set(self.record_removed):
+ self.record_removed.remove(record)
+ for record in set_records & set(self.record_deleted):
+ self.record_deleted.remove(record)
+
if self.lock_signal:
self.lock_signal = False
self.signal('group-cleared')
--
Cédric Krier
B2CK SPRL
Rue de Rotterdam, 4
4000 Liège
Belgium
Tel: +32 472 54 46 59
Email/Jabber: [email protected]
Website: http://www.b2ck.com/
pgpv2WZIOOGCN.pgp
Description: PGP signature
