src/pyams_thesaurus/thesaurus.py
changeset 115 91b51d5e32e7
parent 108 06272e2e8bb5
equal deleted inserted replaced
114:e7e4b4146a91 115:91b51d5e32e7
   367     """Thesaurus extracts vocabulary"""
   367     """Thesaurus extracts vocabulary"""
   368 
   368 
   369     def __init__(self, context=None):
   369     def __init__(self, context=None):
   370         terms = []
   370         terms = []
   371         if context is not None:
   371         if context is not None:
   372             thesaurus = get_parent(context, IThesaurus)
   372             request = check_request()
   373             if thesaurus is None:
   373             thesaurus_name = request.headers.get('X-Thesaurus-Name')
   374                 context_manager = IThesaurusContextManager(context, None)
   374             if thesaurus_name is not None:
   375                 if (context_manager is not None) and context_manager.thesaurus_name:
   375                 thesaurus = query_utility(IThesaurus, name=thesaurus_name)
   376                     thesaurus = query_utility(IThesaurus, name=context_manager.thesaurus_name)
   376             else:
       
   377                 thesaurus = get_parent(context, IThesaurus)
       
   378                 if thesaurus is None:
       
   379                     context_manager = IThesaurusContextManager(context, None)
       
   380                     if (context_manager is not None) and context_manager.thesaurus_name:
       
   381                         thesaurus = query_utility(IThesaurus, name=context_manager.thesaurus_name)
   377             if thesaurus is not None:
   382             if thesaurus is not None:
   378                 extracts = IThesaurusExtracts(thesaurus)
   383                 extracts = IThesaurusExtracts(thesaurus)
   379                 terms = [SimpleTerm(extract.__name__, title=extract.name) for extract in extracts.values()]
   384                 terms = [SimpleTerm(extract.__name__, title=extract.name) for extract in extracts.values()]
   380                 terms.sort(key=lambda x: x.title)
   385                 terms.sort(key=lambda x: x.title)
   381         super(ThesaurusExtractsVocabulary, self).__init__(terms)
   386         super(ThesaurusExtractsVocabulary, self).__init__(terms)