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