diff -r 203d574c8a1d -r 08320697ca1a server/repository.py --- 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)