equal
deleted
inserted
replaced
24 from zope.component.interfaces import IPossibleSite, ObjectEvent |
24 from zope.component.interfaces import IPossibleSite, ObjectEvent |
25 from zope.traversing.interfaces import ITraversable |
25 from zope.traversing.interfaces import ITraversable |
26 |
26 |
27 # import packages |
27 # import packages |
28 from persistent.dict import PersistentDict |
28 from persistent.dict import PersistentDict |
29 from pyams_utils.adapter import adapter_config, ContextAdapter |
29 from pyams_utils.adapter import adapter_config, ContextAdapter, get_annotation_adapter |
30 from pyams_utils.registry import get_utilities_for, query_utility |
30 from pyams_utils.registry import get_utilities_for, query_utility |
31 from pyramid.exceptions import NotFound |
31 from pyramid.exceptions import NotFound |
32 from pyramid.path import DottedNameResolver |
32 from pyramid.path import DottedNameResolver |
33 from pyramid.security import Allow, Everyone, ALL_PERMISSIONS |
33 from pyramid.security import Allow, Everyone, ALL_PERMISSIONS |
34 from pyramid.threadlocal import get_current_registry |
34 from pyramid.threadlocal import get_current_registry |
128 """ |
128 """ |
129 application = site_factory(request) |
129 application = site_factory(request) |
130 if application is not None: |
130 if application is not None: |
131 try: |
131 try: |
132 hooks.setSite(application) |
132 hooks.setSite(application) |
133 annotations = IAnnotations(application) |
133 generations = get_annotation_adapter(application, SITE_GENERATIONS_KEY, PersistentDict, |
134 generations = annotations.get(SITE_GENERATIONS_KEY) |
134 notify=False, locate=False) |
135 if generations is None: |
|
136 generations = annotations[SITE_GENERATIONS_KEY] = PersistentDict() |
|
137 for name, utility in sorted(get_utilities_for(ISiteGenerations), |
135 for name, utility in sorted(get_utilities_for(ISiteGenerations), |
138 key=lambda x: x[1].order): |
136 key=lambda x: x[1].order): |
139 if not name: |
137 if not name: |
140 name = '.'.join((utility.__module__, utility.__class__.__name__)) |
138 name = '.'.join((utility.__module__, utility.__class__.__name__)) |
141 current = generations.get(name) |
139 current = generations.get(name) |