diff --git a/src/collective/dms/thesaurus/dmskeyword.py b/src/collective/dms/thesaurus/dmskeyword.py index 6b72217..d67fa39 100644 --- a/src/collective/dms/thesaurus/dmskeyword.py +++ b/src/collective/dms/thesaurus/dmskeyword.py @@ -76,6 +76,16 @@ class DmsKeyword(Item): words.append(keyword.get_words_for_indexation(limit=limit-1)) return ' '.join(words) + def get_keyword_tree(self, limit=5): + thesaurus = aq_parent(self) + l = [self.id] + for broader_keyword in self.broader or []: + try: + keyword = thesaurus[broader_keyword] + except KeyError: + continue + l.extend(keyword.get_keyword_tree(limit=limit-1)) + return l class DmsKeywordSchemaPolicy(DexteritySchemaPolicy):