# HG changeset patch # User Pierre-Yves David # Date 1343748328 -7200 # Node ID b922dd08eb791bd6626d204cad49d37d8e38621f # Parent a14b6562082b576d1f44607bfd6a88addbb80fdf [storage] relies on event=='deleted' to detect "delete" event (closes #2450680) When we delete a previously edited entity, it *will* have a cw_edited attribute even if the goal is to delete it. The function get an argument that explicitly contains the "delete" event. The code now uses that instead. diff -r a14b6562082b -r b922dd08eb79 server/sources/native.py --- a/server/sources/native.py Tue Jul 10 15:07:23 2012 +0200 +++ b/server/sources/native.py Tue Jul 31 17:25:28 2012 +0200 @@ -614,12 +614,10 @@ etype = entities[0].__regid__ for attr, storage in self._storages.get(etype, {}).items(): for entity in entities: - try: + if event == 'deleted': + storage.entity_deleted(entity, attr) + else: edited = entity.cw_edited - except AttributeError: - assert event == 'deleted' - getattr(storage, 'entity_deleted')(entity, attr) - else: if attr in edited: handler = getattr(storage, 'entity_%s' % event) to_restore = handler(entity, attr)