src/pyams_content/generations/evolve2.py
changeset 1389 1485db1e2b5e
parent 1208 0ec8963e088e
equal deleted inserted replaced
1388:8c757af2fc50 1389:1485db1e2b5e
       
     1 #
       
     2 # Copyright (c) 2008-2018 Thierry Florac <tflorac AT ulthar.net>
       
     3 # All Rights Reserved.
       
     4 #
       
     5 # This software is subject to the provisions of the Zope Public License,
       
     6 # Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
       
     7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
       
     8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
       
     9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
       
    10 # FOR A PARTICULAR PURPOSE.
       
    11 #
       
    12 
       
    13 from zope.annotation import IAnnotations
       
    14 
       
    15 from pyams_content.component.theme import COLLECTIONS_MANAGER_KEY, ICollectionsManager, \
       
    16     ITagsManager
       
    17 from pyams_content.features.search.interfaces import ISearchManagerInfo
       
    18 from pyams_content.shared.resource.interfaces import IResourceManager
       
    19 from pyams_utils.registry import get_local_registry, query_utility, set_local_registry
       
    20 
       
    21 __docformat__ = 'restructuredtext'
       
    22 
       
    23 
       
    24 def evolve(site):
       
    25     """Evolve 3: update search settings"""
       
    26     registry = get_local_registry()
       
    27     try:
       
    28         set_local_registry(site.getSiteManager())
       
    29         # tags search updates
       
    30         tags_info = ITagsManager(site)
       
    31         search_info = ISearchManagerInfo(site)
       
    32         if getattr(tags_info, 'enable_tags_search', None) is not None:
       
    33             print("Updating tags search settings...")
       
    34             search_info.enable_tags_search = tags_info.enable_tags_search
       
    35             search_info.tags_search_target = tags_info.tags_search_target
       
    36             del tags_info.tags_search_target
       
    37             del tags_info.enable_tags_search
       
    38         # collections settings updates from resources settings
       
    39         resources = query_utility(IResourceManager)
       
    40         if resources is not None:
       
    41             annotations = IAnnotations(resources)
       
    42             res_collections_info = annotations.get(COLLECTIONS_MANAGER_KEY)
       
    43             if res_collections_info is not None:
       
    44                 print("Updating collections settings...")
       
    45                 root_collections_info = ICollectionsManager(site)
       
    46                 if getattr(res_collections_info, 'thesaurus_name', None) is not None:
       
    47                     root_collections_info.thesaurus_name = res_collections_info.thesaurus_name
       
    48                     root_collections_info.extract_name = getattr(res_collections_info,
       
    49                                                                  'extract_name', None)
       
    50                 del annotations[COLLECTIONS_MANAGER_KEY]
       
    51     finally:
       
    52         set_local_registry(registry)