# HG changeset patch # User Thierry Florac # Date 1539864731 -7200 # Node ID 209f64c845d37759ff15b776a554ccce9519da33 # Parent 29615ca72ab79429463dd21986801166f8c04dbd Added "display_context" property to request diff -r 29615ca72ab7 -r 209f64c845d3 src/pyams_utils/include.py --- a/src/pyams_utils/include.py Fri Oct 05 15:47:00 2018 +0200 +++ b/src/pyams_utils/include.py Thu Oct 18 14:12:11 2018 +0200 @@ -26,6 +26,7 @@ from pyams_utils.request import RequestSelector, get_annotations, get_debug from pyams_utils.site import site_factory from pyams_utils.tales import ExtensionExpr +from pyams_utils.url import get_display_context from pyams_utils.traversing import NamespaceTraverser @@ -44,6 +45,7 @@ # add request annotations config.add_request_method(get_annotations, 'annotations', reify=True) config.add_request_method(get_debug, 'debug', reify=True) + config.add_request_method(get_display_context, 'display_context', property=True) # add traverser handling namespaces via "++ns++(options)" URLs config.add_traverser(NamespaceTraverser) diff -r 29615ca72ab7 -r 209f64c845d3 src/pyams_utils/url.py --- a/src/pyams_utils/url.py Fri Oct 05 15:47:00 2018 +0200 +++ b/src/pyams_utils/url.py Thu Oct 18 14:12:11 2018 +0200 @@ -15,16 +15,14 @@ # import standard library -# import interfaces -from pyams_utils.interfaces.tales import ITALESExtension -from pyams_utils.interfaces.url import ICanonicalURL, IRelativeURL, DISPLAY_CONTEXT +from pyramid.encode import url_quote, urlencode +from pyramid.url import QUERY_SAFE, resource_url +from zope.interface import Interface -# import packages -from pyams_utils.adapter import ContextRequestViewAdapter, adapter_config, ContextRequestAdapter +from pyams_utils.adapter import ContextRequestAdapter, ContextRequestViewAdapter, adapter_config +from pyams_utils.interfaces.tales import ITALESExtension +from pyams_utils.interfaces.url import DISPLAY_CONTEXT, ICanonicalURL, IRelativeURL from pyams_utils.unicode import translate_string -from pyramid.encode import url_quote, urlencode -from pyramid.url import resource_url, QUERY_SAFE -from zope.interface import Interface def generate_url(title): @@ -39,6 +37,14 @@ # +# Request display context +# + +def get_display_context(request): + return request.annotations.get(DISPLAY_CONTEXT, request.context) + + +# # Absolute URLs management #