equal
deleted
inserted
replaced
781 assert role in ('subject', 'object'), role |
781 assert role in ('subject', 'object'), role |
782 skip_copy_for[role].add(rtype) |
782 skip_copy_for[role].add(rtype) |
783 for rschema in self.e_schema.subject_relations(): |
783 for rschema in self.e_schema.subject_relations(): |
784 if rschema.type in skip_copy_for['subject']: |
784 if rschema.type in skip_copy_for['subject']: |
785 continue |
785 continue |
786 if rschema.final or rschema.meta: |
786 if rschema.final or rschema.meta or rschema.rule: |
787 continue |
787 continue |
788 # skip already defined relations |
788 # skip already defined relations |
789 if getattr(self, rschema.type): |
789 if getattr(self, rschema.type): |
790 continue |
790 continue |
791 # XXX takefirst=True to remove warning triggered by ambiguous relations |
791 # XXX takefirst=True to remove warning triggered by ambiguous relations |
800 rql = 'SET X %s V WHERE X eid %%(x)s, Y eid %%(y)s, Y %s V' % ( |
800 rql = 'SET X %s V WHERE X eid %%(x)s, Y eid %%(y)s, Y %s V' % ( |
801 rschema.type, rschema.type) |
801 rschema.type, rschema.type) |
802 execute(rql, {'x': self.eid, 'y': ceid}) |
802 execute(rql, {'x': self.eid, 'y': ceid}) |
803 self.cw_clear_relation_cache(rschema.type, 'subject') |
803 self.cw_clear_relation_cache(rschema.type, 'subject') |
804 for rschema in self.e_schema.object_relations(): |
804 for rschema in self.e_schema.object_relations(): |
805 if rschema.meta: |
805 if rschema.meta or rschema.rule: |
806 continue |
806 continue |
807 # skip already defined relations |
807 # skip already defined relations |
808 if self.related(rschema.type, 'object'): |
808 if self.related(rschema.type, 'object'): |
809 continue |
809 continue |
810 if rschema.type in skip_copy_for['object']: |
810 if rschema.type in skip_copy_for['object']: |