# HG changeset patch # User Sylvain Thénault <sylvain.thenault@logilab.fr> # Date 1307720501 -7200 # Node ID 0c75ed374b06250df0e7aea75fc72300bf8ee876 # Parent 3c46b93908711a9d9d770a0701163c98d8036917# Parent 09d245a9bf5ff68c4dd8e702e7a0037028e9b3ff backport stable diff -r 3c46b9390871 -r 0c75ed374b06 hooks/integrity.py --- a/hooks/integrity.py Fri Jun 10 16:54:20 2011 +0200 +++ b/hooks/integrity.py Fri Jun 10 17:41:41 2011 +0200 @@ -126,9 +126,10 @@ return card = session.schema_rproperty(rtype, eidfrom, eidto, 'cardinality') if card[0] in '1+' and not session.deleted_in_transaction(eidfrom): - _CheckSRelationOp.get_instance(self._cw).add_data((eidfrom, rtype)) + _CheckSRelationOp.get_instance(session).add_data((eidfrom, rtype)) if card[1] in '1+' and not session.deleted_in_transaction(eidto): - _CheckORelationOp.get_instance(self._cw).add_data((eidto, rtype)) + _CheckORelationOp.get_instance(session).add_data((eidto, rtype)) + class CheckCardinalityHookAfterAddEntity(IntegrityHook): """check cardinalities are satisfied""" @@ -150,21 +151,6 @@ op = _CheckORelationOp.get_instance(self._cw) op.add_data((eid, rschema.type)) - def before_delete_relation(self): - rtype = self.rtype - if rtype in DONT_CHECK_RTYPES_ON_DEL: - return - session = self._cw - eidfrom, eidto = self.eidfrom, self.eidto - pendingrdefs = session.transaction_data.get('pendingrdefs', ()) - if (session.describe(eidfrom)[0], rtype, session.describe(eidto)[0]) in pendingrdefs: - return - card = session.schema_rproperty(rtype, eidfrom, eidto, 'cardinality') - if card[0] in '1+' and not session.deleted_in_transaction(eidfrom): - _CheckSRelationOp.get_instance(self._cw).add_data((eidfrom, rtype)) - if card[1] in '1+' and not session.deleted_in_transaction(eidto): - _CheckORelationOp.get_instance(self._cw).add_data((eidto, rtype)) - class _CheckConstraintsOp(hook.DataOperationMixIn, hook.LateOperation): """ check a new relation satisfy its constraints """