From 101c84d80192b1a2438d6464f8ce15b60967e19a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Mon, 31 Mar 2014 11:08:05 +0200 Subject: [PATCH] helper function to build the recursive list of broader keywords (#4570) --- src/collective/dms/thesaurus/dmskeyword.py | 10 ++++++++++ 1 file changed, 10 insertions(+) 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):