[Erp5-report] r17322 - /erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Oct 31 17:20:47 CET 2007
Author: nicolas
Date: Wed Oct 31 17:20:47 2007
New Revision: 17322
URL: http://svn.erp5.org?rev=17322&view=rev
Log:
Add new method calling at the end of synchronisation session if One Way Sync From Server is used. This method delete not synchronised Objects
Modified:
erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py
Modified: erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py?rev=17322&r1=17321&r2=17322&view=diff
==============================================================================
--- erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py (original)
+++ erp5/trunk/products/ERP5SyncML/XMLSyncUtils.py Wed Oct 31 17:20:47 2007
@@ -797,7 +797,7 @@
local_gid_list.append(b16encode(gid))
#LOG('getSyncMLData :', DEBUG,'gid_not_encoded_list:%s, local_gid_list:%s, gid:%s' % (gid_not_encoded_list, local_gid_list, gid))
else:
- local_gid_list = map(lambda x: domain.getGidFromObject(x),object_list)
+ local_gid_list = [domain.getGidFromObject(x) for x in object_list]
# Objects to remove
#LOG('getSyncMLData remove object to remove ...', DEBUG, '')
@@ -1480,6 +1480,21 @@
remote_xml, xml_list, has_status_list,
has_response)
+ def deleteRemainObjectList(self, domain, subscriber):
+ """
+ This method allow deletion on not synchronised Objects at the end of Synchronisation session.
+ Usefull only after reseting in One Way Sync
+ """
+ object_list = domain.getObjectList()
+ gid_list = [domain.getGidFromObject(x) for x in object_list]
+ destination = self.unrestrictedTraverse(domain.getDestinationPath())
+ conduit_name = subscriber.getConduit()
+ conduit = self.getConduitByName(conduit_name)
+ for gid in gid_list:
+ if gid not in subscriber.getGidList():
+ object_id = b16decode(gid)
+ conduit.deleteObject(object=destination, object_id=object_id)
+
def activateSyncModif(self, **kw):
domain = self.unrestrictedTraverse(kw['domain_relative_url'])
subscriber = self.unrestrictedTraverse(kw['subscriber_relative_url'])
@@ -1566,6 +1581,8 @@
content_type=domain.getSyncContentType())
has_response = 1
else:
+ if domain.isOneWayFromServer():
+ self.deleteRemainObjectList(domain, subscriber)
LOG('this is the end of the synchronisation session !!!', INFO, domain.getId())
domain.setAuthenticated(False)
return {'has_response':has_response, 'xml':xml_a}
More information about the Erp5-report
mailing list