server/repository.py
changeset 7907 08320697ca1a
parent 7894 ad0eeb0f7a8d
parent 7898 405017c79b45
child 7931 60068dc83457
--- 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)