hooks/integrity.py
changeset 3589 a5432f99f2d9
parent 3376 f5c69485381f
child 3590 1b0dbcf4b214
equal deleted inserted replaced
3536:f6c9a5df80fb 3589:a5432f99f2d9
   196     """
   196     """
   197     __regid__ = 'deletecomposite'
   197     __regid__ = 'deletecomposite'
   198     events = ('before_delete_relation',)
   198     events = ('before_delete_relation',)
   199 
   199 
   200     def __call__(self):
   200     def __call__(self):
       
   201         # if the relation is being delete, don't delete composite's components
       
   202         # automatically
       
   203         pendingrdefs = self._cw.transaction_data.get('pendingrdefs', ())
       
   204         if (self._cw.describe(eidfrom)[0], rtype, self._cw.describe(eidto)[0]) in pendingrdefs:
       
   205             return
   201         composite = self._cw.schema_rproperty(self.rtype, self.eidfrom, self.eidto,
   206         composite = self._cw.schema_rproperty(self.rtype, self.eidfrom, self.eidto,
   202                                                  'composite')
   207                                                  'composite')
   203         if composite == 'subject':
   208         if composite == 'subject':
   204             _DelayedDeleteOp(self._cw, eid=self.eidto,
   209             _DelayedDeleteOp(self._cw, eid=self.eidto,
   205                              relation='Y %s X' % self.rtype)
   210                              relation='Y %s X' % self.rtype)