# HG changeset patch # User Sylvain Thénault # Date 1252492146 -7200 # Node ID 2486163c4630a8447f94cf79e9b5d85d6b31ef75 # Parent fab471bee6c11c6041c102a5292ab14247c40616 allow to specify targettypes in related_rql diff -r fab471bee6c1 -r 2486163c4630 entity.py --- a/entity.py Wed Sep 09 12:28:36 2009 +0200 +++ b/entity.py Wed Sep 09 12:29:06 2009 +0200 @@ -689,14 +689,16 @@ self.set_related_cache(rtype, role, rset) return self.related(rtype, role, limit, entities) - def related_rql(self, rtype, role='subject'): + def related_rql(self, rtype, role='subject', targettypes=None): rschema = self.schema[rtype] if role == 'subject': - targettypes = rschema.objects(self.e_schema) + if targettypes is None: + targettypes = rschema.objects(self.e_schema) restriction = 'E eid %%(x)s, E %s X' % rtype card = greater_card(rschema, (self.e_schema,), targettypes, 0) else: - targettypes = rschema.subjects(self.e_schema) + if targettypes is None: + targettypes = rschema.subjects(self.e_schema) restriction = 'E eid %%(x)s, X %s E' % rtype card = greater_card(rschema, targettypes, (self.e_schema,), 1) if len(targettypes) > 1: