equal
deleted
inserted
replaced
15 |
15 |
16 # import standard library |
16 # import standard library |
17 |
17 |
18 # import interfaces |
18 # import interfaces |
19 from pyams_gis.interfaces.configuration import IMapConfiguration, IMapConfigurationTarget |
19 from pyams_gis.interfaces.configuration import IMapConfiguration, IMapConfigurationTarget |
20 from zope.annotation.interfaces import IAnnotations |
|
21 |
20 |
22 # import packages |
21 # import packages |
23 from persistent import Persistent |
22 from persistent import Persistent |
24 from pyams_utils.adapter import adapter_config |
23 from pyams_utils.adapter import adapter_config, get_annotation_adapter |
25 from pyramid.threadlocal import get_current_registry |
|
26 from zope.container.contained import Contained |
24 from zope.container.contained import Contained |
27 from zope.interface import implementer |
25 from zope.interface import implementer |
28 from zope.lifecycleevent import ObjectCreatedEvent |
|
29 from zope.location import locate |
|
30 from zope.schema.fieldproperty import FieldProperty |
26 from zope.schema.fieldproperty import FieldProperty |
31 |
27 |
32 |
28 |
33 @implementer(IMapConfiguration) |
29 @implementer(IMapConfiguration) |
34 class MapConfiguration(Persistent, Contained): |
30 class MapConfiguration(Persistent, Contained): |
84 |
80 |
85 |
81 |
86 @adapter_config(context=IMapConfigurationTarget, provides=IMapConfiguration) |
82 @adapter_config(context=IMapConfigurationTarget, provides=IMapConfiguration) |
87 def map_configuration_factory(context): |
83 def map_configuration_factory(context): |
88 """Map configuration factory""" |
84 """Map configuration factory""" |
89 annotations = IAnnotations(context) |
85 return get_annotation_adapter(context, MAP_CONFIGURATION_KEY, MapConfiguration) |
90 configuration = annotations.get(MAP_CONFIGURATION_KEY) |
|
91 if configuration is None: |
|
92 configuration = annotations[MAP_CONFIGURATION_KEY] = MapConfiguration() |
|
93 get_current_registry().notify(ObjectCreatedEvent(configuration)) |
|
94 locate(configuration, context) |
|
95 return configuration |
|