src/pyams_sequence/sequence.py
changeset 87 ff5591442ac3
parent 77 aee019c4058e
equal deleted inserted replaced
86:767542a815b1 87:ff5591442ac3
    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):