src/pyams_catalog/site.py
changeset 36 c56c44855000
parent 26 4f3937b02ba5
child 47 4c18d6292e42
equal deleted inserted replaced
35:95208835857e 36:c56c44855000
    21 from hypatia.interfaces import ICatalog
    21 from hypatia.interfaces import ICatalog
    22 from persistent.interfaces import IPersistent
    22 from persistent.interfaces import IPersistent
    23 from pyams_utils.interfaces.site import ISiteGenerations
    23 from pyams_utils.interfaces.site import ISiteGenerations
    24 from zope.intid.interfaces import IIntIds, IIntIdRemovedEvent
    24 from zope.intid.interfaces import IIntIds, IIntIdRemovedEvent
    25 from zope.lifecycleevent.interfaces import IObjectAddedEvent, IObjectModifiedEvent
    25 from zope.lifecycleevent.interfaces import IObjectAddedEvent, IObjectModifiedEvent
    26 from zope.site.interfaces import INewLocalSite
       
    27 
    26 
    28 # import packages
    27 # import packages
    29 from hypatia.catalog import Catalog
    28 from hypatia.catalog import Catalog
    30 from pyams_catalog.utils import index_object, reindex_object, unindex_object
    29 from pyams_catalog.utils import index_object, reindex_object, unindex_object
    31 from pyams_utils.registry import utility_config, get_utilities_for
    30 from pyams_utils.registry import utility_config, get_utilities_for
    37 
    36 
    38 REQUIRED_UTILITIES = ((IIntIds, '', IntIds, 'Internal IDs'),
    37 REQUIRED_UTILITIES = ((IIntIds, '', IntIds, 'Internal IDs'),
    39                       (ICatalog, '', Catalog, 'Catalog'),)
    38                       (ICatalog, '', Catalog, 'Catalog'),)
    40 
    39 
    41 
    40 
    42 @subscriber(INewLocalSite)
       
    43 def handle_new_local_site(event):
       
    44     """Create a new catalog when a site is created"""
       
    45     site = event.manager.__parent__
       
    46     check_required_utilities(site, REQUIRED_UTILITIES)
       
    47 
       
    48 
       
    49 @utility_config(name='PyAMS catalog', provides=ISiteGenerations)
    41 @utility_config(name='PyAMS catalog', provides=ISiteGenerations)
    50 class CatalogGenerationsChecker(object):
    42 class CatalogGenerationsChecker(object):
    51     """Catalog generations checker"""
    43     """Catalog generations checker"""
    52 
    44 
       
    45     order = 40
    53     generation = 1
    46     generation = 1
    54 
    47 
    55     def evolve(self, site, current=None):
    48     def evolve(self, site, current=None):
    56         """Check for required utilities"""
    49         """Check for required utilities"""
    57         check_required_utilities(site, REQUIRED_UTILITIES)
    50         check_required_utilities(site, REQUIRED_UTILITIES)