diff -r 094d9b11bc83 -r d900ecb7c6f6 src/pyams_default_theme/shared/common/__init__.py --- a/src/pyams_default_theme/shared/common/__init__.py Fri Nov 13 13:24:29 2020 +0100 +++ b/src/pyams_default_theme/shared/common/__init__.py Fri Nov 13 13:29:12 2020 +0100 @@ -15,8 +15,10 @@ from pyams_content.interfaces import IBaseContent from pyams_content.shared.common.interfaces import IWfSharedContent from pyams_content.shared.common.interfaces.types import IWfTypedSharedContent -from pyams_default_theme.interfaces import IContentDate, IContentTag, IContentTitle +from pyams_default_theme.interfaces import IContentDate, IContentHeader, IContentTag, \ + IContentTitle from pyams_i18n.interfaces import II18n +from pyams_sequence.interfaces import IInternalReference from pyams_skin.interfaces.metas import IHTMLContentMetas from pyams_skin.layer import IPyAMSUserLayer from pyams_skin.metas import ContentMeta, HTMLTagMeta @@ -59,7 +61,8 @@ return data_type.name -@adapter_config(name='title', context=(IWfSharedContent, IPyAMSUserLayer, Interface), +@adapter_config(name='title', + context=(IWfSharedContent, IPyAMSUserLayer, Interface), provides=IHTMLContentMetas) class SharedContentTitleMetasAdapter(ContextRequestViewAdapter): """Title metas adapter""" @@ -77,20 +80,38 @@ yield ContentMeta('description', description) -@adapter_config(context=(IBaseContent, IPyAMSUserLayer), provides=IContentTitle) +@adapter_config(context=(IBaseContent, IPyAMSUserLayer), + provides=IContentTitle) def base_content_title_adapter(context, request): """Base content title adapter""" return II18n(context).query_attribute('title', request=request) -@adapter_config(context=(IWfSharedContent, IPyAMSUserLayer), provides=IContentTag) +@adapter_config(context=(IInternalReference, IPyAMSUserLayer), + provides=IContentTitle) +def internal_link_content_title_adapter(context, request): + """Internal link content title adapter""" + registry = request.registry + return registry.queryMultiAdapter((context.target, request), IContentTitle) + + +@adapter_config(context=(IWfSharedContent, IPyAMSUserLayer), + provides=IContentHeader) +def shared_content_header_adapter(context, request): + """Default shared content header adapter""" + return II18n(context).query_attribute('header', request=request) + + +@adapter_config(context=(IWfSharedContent, IPyAMSUserLayer), + provides=IContentTag) def shared_content_tag_adapter(context, request): """Default shared content tag adapter""" translate = request.localizer.translate return translate(context.content_name) -@adapter_config(context=(IWfTypedSharedContent, IPyAMSUserLayer), provides=IContentTag) +@adapter_config(context=(IWfTypedSharedContent, IPyAMSUserLayer), + provides=IContentTag) def typed_shared_content_tag_adapter(context, request): """Typed shared content tag adapter""" data_type = context.get_data_type() @@ -112,7 +133,8 @@ return self.request.registry.queryMultiAdapter((context, self.request), IContentTag) -@adapter_config(context=(IWfSharedContent, IPyAMSUserLayer), provides=IContentDate) +@adapter_config(context=(IWfSharedContent, IPyAMSUserLayer), + provides=IContentDate) def shared_content_date_adapter(context, request): """Default shared content date adapter""" publication_info = IWorkflowPublicationInfo(context, None)