diff --git a/product/ERP5SyncML/Subscription.py b/product/ERP5SyncML/Subscription.py index be31619a6469010a3e623e8951d0380c21c0cfc2..5e84079b000b7fcae6d62b187d0062aa3f123845 100755 --- a/product/ERP5SyncML/Subscription.py +++ b/product/ERP5SyncML/Subscription.py @@ -262,7 +262,7 @@ class Signature(Folder,SyncCode): # XXX This may be a problem, if the document is changed # during a synchronization self.setLastSynchronizationDate(DateTime()) - self.getParent().removeRemainingObject(self.getObject()) + self.getParent().removeRemainingObjectId(self.getId()) if status == self.NOT_SYNCHRONIZED: self.setTempXML(None) self.setPartialXML(None) @@ -1007,32 +1007,32 @@ class Subscription(Folder, SyncCode): conflict_list += signature.getConflictList() return conflict_list - def getRemainingObjectList(self): + def getRemainingObjectIdList(self): """ We should now wich objects should still synchronize """ - return getattr(self,'remaining_object_list',None) + return getattr(self,'remaining_object_id_list',None) - def setRemainingObjectList(self, value): + def setRemainingObjectIdList(self, value): """ We should now wich objects should still synchronize """ - setattr(self,'remaining_object_list',value) + setattr(self,'remaining_object_id_list',value) - def removeRemainingObject(self, object): + def removeRemainingObjectId(self, object_id): """ We should now wich objects should still synchronize """ - remaining_object_list = self.getRemainingObjectList() + remaining_object_list = self.getRemainingObjectIdList() if remaining_object_list is not None: new_list = [] for o in remaining_object_list: - if o != object: + if o != object_id: new_list.append(o) - self.setRemainingObjectList(new_list) + self.setRemainingObjectIdList(new_list) # def getCurrentObject(self): # """ @@ -1059,4 +1059,4 @@ class Subscription(Folder, SyncCode): o.setStatus(self.NOT_SYNCHRONIZED) o.setPartialXML(None) o.setTempXML(None) - self.setRemainingObjectList(None) + self.setRemainingObjectIdList(None) diff --git a/product/ERP5SyncML/XMLSyncUtils.py b/product/ERP5SyncML/XMLSyncUtils.py index 579b94ab054cf9fdfd714a7059ba5debd6cbd7f6..0194ad683a1980c263afca23ebe0d8148fdfeecb 100755 --- a/product/ERP5SyncML/XMLSyncUtils.py +++ b/product/ERP5SyncML/XMLSyncUtils.py @@ -556,9 +556,11 @@ class XMLSyncUtilsMixin(SyncCode): local_gid_list = [] syncml_data = '' - if subscriber.getRemainingObjectList() is None: + if subscriber.getRemainingObjectIdList() is None: object_list = domain.getObjectList() - subscriber.setRemainingObjectList(object_list) + object_id_list = map(lambda x: x.id,object_list) + LOG('getSyncMLData, object_id_list',0,object_id_list) + subscriber.setRemainingObjectIdList(object_id_list) #object_gid = domain.getGidFromObject(object) local_gid_list = map(lambda x: domain.getGidFromObject(x),object_list) @@ -578,7 +580,8 @@ class XMLSyncUtilsMixin(SyncCode): #for object in domain.getObjectList(): - for object in subscriber.getRemainingObjectList(): + for object_id in subscriber.getRemainingObjectIdList(): + object = subscriber.getDestination()._getOb(object_id) status = self.SENT #gid_generator = getattr(object,domain.getGidGenerator(),None) object_gid = domain.getGidFromObject(object)