--- a/server/repository.py Fri Sep 30 18:10:28 2011 +0200
+++ b/server/repository.py Tue Oct 04 12:23:52 2011 +0200
@@ -1177,8 +1177,7 @@
# delete remaining relations: if user can delete the entity, he can
# delete all its relations without security checking
with security_enabled(session, read=False, write=False):
- eids = [_e.eid for _e in entities]
- in_eids = ','.join((str(eid) for eid in eids))
+ in_eids = ','.join([str(_e.eid) for _e in entities])
for rschema, _, role in entities[0].e_schema.relation_definitions():
rtype = rschema.type
if rtype in schema.VIRTUAL_RTYPES or rtype in pendingrtypes:
@@ -1423,7 +1422,11 @@
source = self.sources_by_uri[sourceuri]
if source.should_call_hooks:
self.hm.call_hooks('before_delete_entity', session, entities=entities)
- self._delete_info_multi(session, entities, sourceuri)
+ if session.deleted_in_transaction(source.eid):
+ # source is being deleted, think to give scleanup argument
+ self._delete_info_multi(session, entities, sourceuri, scleanup=source.eid)
+ else:
+ self._delete_info_multi(session, entities, sourceuri)
source.delete_entities(session, entities)
if source.should_call_hooks:
self.hm.call_hooks('after_delete_entity', session, entities=entities)