11 # |
11 # |
12 |
12 |
13 __docformat__ = 'restructuredtext' |
13 __docformat__ = 'restructuredtext' |
14 |
14 |
15 from persistent import Persistent |
15 from persistent import Persistent |
16 from zope.interface import Interface, implementer |
16 from zope.interface import Interface |
17 from zope.schema.fieldproperty import FieldProperty |
17 from zope.schema.fieldproperty import FieldProperty |
18 |
18 |
19 from pyams_sequence.interfaces import ISequentialIdInfo, ISequentialIdTarget, ISequentialIntIds |
19 from pyams_sequence.interfaces import ISequentialIdInfo, ISequentialIdTarget, ISequentialIntIds |
20 from pyams_utils.adapter import ContextRequestViewAdapter, adapter_config, get_annotation_adapter |
20 from pyams_utils.adapter import ContextRequestViewAdapter, adapter_config, get_annotation_adapter |
|
21 from pyams_utils.factory import factory_config |
21 from pyams_utils.interfaces.tales import ITALESExtension |
22 from pyams_utils.interfaces.tales import ITALESExtension |
22 from pyams_utils.registry import get_utility |
23 from pyams_utils.registry import get_utility |
23 |
24 |
24 |
25 |
25 @implementer(ISequentialIdInfo) |
26 @factory_config(ISequentialIdInfo) |
26 class SequentialIdInfo(Persistent): |
27 class SequentialIdInfo(Persistent): |
27 """Sequential ID info""" |
28 """Sequential ID info""" |
28 |
29 |
29 oid = FieldProperty(ISequentialIdInfo['oid']) |
30 oid = FieldProperty(ISequentialIdInfo['oid']) |
30 hex_oid = FieldProperty(ISequentialIdInfo['hex_oid']) |
31 hex_oid = FieldProperty(ISequentialIdInfo['hex_oid']) |
50 |
51 |
51 |
52 |
52 @adapter_config(context=ISequentialIdTarget, provides=ISequentialIdInfo) |
53 @adapter_config(context=ISequentialIdTarget, provides=ISequentialIdInfo) |
53 def sequential_id_info_factory(context): |
54 def sequential_id_info_factory(context): |
54 """Sequential ID info factory""" |
55 """Sequential ID info factory""" |
55 return get_annotation_adapter(context, SEQUENCE_INFO_KEY, SequentialIdInfo, |
56 return get_annotation_adapter(context, SEQUENCE_INFO_KEY, ISequentialIdInfo, |
56 notify=False, locate=False) |
57 notify=False, locate=False) |
57 |
58 |
58 |
59 |
59 @adapter_config(name='oid', context=(Interface, Interface, Interface), provides=ITALESExtension) |
60 @adapter_config(name='oid', context=(Interface, Interface, Interface), provides=ITALESExtension) |
60 class OidTalesExtension(ContextRequestViewAdapter): |
61 class OidTalesExtension(ContextRequestViewAdapter): |