cubicweb/entity.py
changeset 11279 e4f11ef1face
parent 11261 9e926f2dc84d
parent 11271 fd177546bbea
child 11290 12d226a5bab9
equal deleted inserted replaced
11277:baed516c6f6e 11279:e4f11ef1face
   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']: