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) |