src/pyams_content_es/site.py
changeset 52 5847f556da86
parent 46 e13ddd7964aa
child 80 f691b998d91d
equal deleted inserted replaced
51:d2f833a2ec62 52:5847f556da86
    17 import transaction
    17 import transaction
    18 
    18 
    19 # import interfaces
    19 # import interfaces
    20 from pyams_content_es.interfaces import IContentIndexerUtility, INDEXER_NAME, IDocumentIndexTarget
    20 from pyams_content_es.interfaces import IContentIndexerUtility, INDEXER_NAME, IDocumentIndexTarget
    21 from pyams_utils.interfaces.site import ISiteGenerations
    21 from pyams_utils.interfaces.site import ISiteGenerations
    22 from zope.site.interfaces import INewLocalSite
       
    23 
    22 
    24 # import packages
    23 # import packages
    25 from pyams_content_es.utility import ContentIndexerUtility
    24 from pyams_content_es.utility import ContentIndexerUtility
    26 from pyams_utils.container import find_objects_providing
    25 from pyams_utils.container import find_objects_providing
    27 from pyams_utils.registry import utility_config, set_local_registry, query_utility
    26 from pyams_utils.registry import utility_config, set_local_registry, query_utility
    28 from pyams_utils.site import check_required_utilities, site_factory
    27 from pyams_utils.site import check_required_utilities, site_factory
    29 from pyramid.events import subscriber
       
    30 
    28 
    31 
    29 
    32 REQUIRED_UTILITIES = ((IContentIndexerUtility, '', ContentIndexerUtility, INDEXER_NAME), )
    30 REQUIRED_UTILITIES = ((IContentIndexerUtility, '', ContentIndexerUtility, INDEXER_NAME), )
    33 
       
    34 
       
    35 @subscriber(INewLocalSite)
       
    36 def handle_new_local_site(event):
       
    37     """Create a new indexer utility when a site is created"""
       
    38     site = event.manager.__parent__
       
    39     check_required_utilities(site, REQUIRED_UTILITIES)
       
    40 
    31 
    41 
    32 
    42 @utility_config(name='PyAMS content indexer', provides=ISiteGenerations)
    33 @utility_config(name='PyAMS content indexer', provides=ISiteGenerations)
    43 class ContentIndexerGenerationsChecker(object):
    34 class ContentIndexerGenerationsChecker(object):
    44     """Content indexer utility generations checker"""
    35     """Content indexer utility generations checker"""
    45 
    36 
       
    37     order = 110
    46     generation = 1
    38     generation = 1
    47 
    39 
    48     def evolve(self, site, current=None):
    40     def evolve(self, site, current=None):
    49         """Check for required utilities"""
    41         """Check for required utilities"""
    50         check_required_utilities(site, REQUIRED_UTILITIES)
    42         check_required_utilities(site, REQUIRED_UTILITIES)