# HG changeset patch # User Thierry Florac # Date 1542366351 -3600 # Node ID aee019c4058e1b25e58384cd8547e426d87ad55b # Parent 652a0f7b56c4be6ac46ba763a980e3b86bb8c3b3 Added "oid" TALES extension diff -r 652a0f7b56c4 -r aee019c4058e src/pyams_sequence/sequence.py --- a/src/pyams_sequence/sequence.py Tue Oct 30 14:26:01 2018 +0100 +++ b/src/pyams_sequence/sequence.py Fri Nov 16 12:05:51 2018 +0100 @@ -12,18 +12,14 @@ __docformat__ = 'restructuredtext' - -# import standard library - -# import interfaces -from pyams_sequence.interfaces import ISequentialIdInfo, ISequentialIdTarget, ISequentialIntIds +from persistent import Persistent +from zope.interface import Interface, implementer +from zope.schema.fieldproperty import FieldProperty -# import packages -from persistent import Persistent -from pyams_utils.adapter import adapter_config, get_annotation_adapter +from pyams_sequence.interfaces import ISequentialIdInfo, ISequentialIdTarget, ISequentialIntIds +from pyams_utils.adapter import ContextRequestViewAdapter, adapter_config, get_annotation_adapter +from pyams_utils.interfaces.tales import ITALESExtension from pyams_utils.registry import get_utility -from zope.interface import implementer -from zope.schema.fieldproperty import FieldProperty @implementer(ISequentialIdInfo) @@ -58,3 +54,14 @@ """Sequential ID info factory""" return get_annotation_adapter(context, SEQUENCE_INFO_KEY, SequentialIdInfo, notify=False, locate=False) + + +@adapter_config(name='oid', context=(Interface, Interface, Interface), provides=ITALESExtension) +class OidTalesExtension(ContextRequestViewAdapter): + """tales:oid(context) TALES extension""" + + @staticmethod + def render(context): + info = ISequentialIdInfo(context, None) + if info is not None: + return info.public_oid