693 if role == 'subject': |
693 if role == 'subject': |
694 restriction = 'E eid %%(x)s, E %s X' % rtype |
694 restriction = 'E eid %%(x)s, E %s X' % rtype |
695 if targettypes is None: |
695 if targettypes is None: |
696 targettypes = rschema.objects(self.e_schema) |
696 targettypes = rschema.objects(self.e_schema) |
697 else: |
697 else: |
698 restriction += 'E is IN (%s)' % ','.join(targettypes) |
698 restriction += ', X is IN (%s)' % ','.join(targettypes) |
699 card = greater_card(rschema, (self.e_schema,), targettypes, 0) |
699 card = greater_card(rschema, (self.e_schema,), targettypes, 0) |
700 else: |
700 else: |
701 restriction = 'E eid %%(x)s, X %s E' % rtype |
701 restriction = 'E eid %%(x)s, X %s E' % rtype |
702 if targettypes is None: |
702 if targettypes is None: |
703 targettypes = rschema.subjects(self.e_schema) |
703 targettypes = rschema.subjects(self.e_schema) |
704 else: |
704 else: |
705 restriction += 'E is IN (%s)' % ','.join(targettypes) |
705 restriction += ', X is IN (%s)' % ','.join(targettypes) |
706 card = greater_card(rschema, targettypes, (self.e_schema,), 1) |
706 card = greater_card(rschema, targettypes, (self.e_schema,), 1) |
707 if len(targettypes) > 1: |
707 if len(targettypes) > 1: |
708 fetchattrs_list = [] |
708 fetchattrs_list = [] |
709 for ttype in targettypes: |
709 for ttype in targettypes: |
710 etypecls = self.vreg['etypes'].etype_class(ttype) |
710 etypecls = self.vreg['etypes'].etype_class(ttype) |