671 execute('DELETE R %s P WHERE X eid %%(x)s, P eid %%(p)s, ' |
671 execute('DELETE R %s P WHERE X eid %%(x)s, P eid %%(p)s, ' |
672 'R %s X' % (self.rtype, rel), |
672 'R %s X' % (self.rtype, rel), |
673 {'x': self.eidfrom, 'p': self.eidto}) |
673 {'x': self.eidfrom, 'p': self.eidto}) |
674 |
674 |
675 |
675 |
676 PropagateSubjectRelationHook = class_renamed( |
|
677 'PropagateSubjectRelationHook', PropagateRelationHook, |
|
678 '[3.9] PropagateSubjectRelationHook has been renamed to PropagateRelationHook') |
|
679 PropagateSubjectRelationAddHook = class_renamed( |
|
680 'PropagateSubjectRelationAddHook', PropagateRelationAddHook, |
|
681 '[3.9] PropagateSubjectRelationAddHook has been renamed to PropagateRelationAddHook') |
|
682 PropagateSubjectRelationDelHook = class_renamed( |
|
683 'PropagateSubjectRelationDelHook', PropagateRelationDelHook, |
|
684 '[3.9] PropagateSubjectRelationDelHook has been renamed to PropagateRelationDelHook') |
|
685 |
|
686 |
676 |
687 # abstract classes for operation ############################################### |
677 # abstract classes for operation ############################################### |
688 |
678 |
689 class Operation(object): |
679 class Operation(object): |
690 """Base class for operations. |
680 """Base class for operations. |