Added convenience methods to the Document class to recursively retrieve all forward / reverse relationship of a kind or set of kinds.
- Legacy-Id: 5912
This commit is contained in:
parent
7a131cd777
commit
12bd97c7cf
|
@ -261,6 +261,26 @@ class Document(DocumentInfo):
|
|||
raise TypeError("Expected a string, tuple or list, received %s" % type(relationship))
|
||||
return DocAlias.objects.filter(relateddocument__source=self, relateddocument__relationship__in=relationship)
|
||||
|
||||
def all_related_that(self, relationship, related=None):
|
||||
if related is None:
|
||||
related = []
|
||||
rel = self.related_that(relationship)
|
||||
for doc in rel:
|
||||
if not doc in related:
|
||||
related += [ doc ]
|
||||
related = doc.document.all_related_that(relationship, related)
|
||||
return related
|
||||
|
||||
def all_related_that_doc(self, relationship, related=None):
|
||||
if related is None:
|
||||
related = []
|
||||
rel = self.related_that_doc(relationship)
|
||||
for alias in rel:
|
||||
if not alias in related:
|
||||
related += [ alias ]
|
||||
related = alias.document.all_related_that_doc(relationship, related)
|
||||
return related
|
||||
|
||||
def telechat_date(self, e=None):
|
||||
if not e:
|
||||
e = self.latest_event(TelechatDocEvent, type="scheduled_for_telechat")
|
||||
|
|
Loading…
Reference in a new issue