--- a/.hgtags Fri Oct 05 14:13:25 2018 +0200
+++ b/.hgtags Tue Oct 09 16:37:24 2018 +0200
@@ -8,3 +8,5 @@
ca0bd32ae2f16385e77d9eb913a8af16e7614464 0.1.7
85907babe16b8cd8cfb64dadfb7203f23450d493 0.1.8
461fa3beb4386cf6764d60d59c4854fbba01833b 0.1.9
+d02350fa13e7d76393c414edecef40cd18cbb837 0.1.10
+9264287735a6f0538eb4580567e914cfb91383f2 0.1.11
--- a/buildout.cfg Fri Oct 05 14:13:25 2018 +0200
+++ b/buildout.cfg Tue Oct 09 16:37:24 2018 +0200
@@ -79,4 +79,4 @@
eggs = pyams_default_theme [test]
[versions]
-pyams_default_theme = 0.1.10
+pyams_default_theme = 0.1.11
--- a/docs/HISTORY.txt Fri Oct 05 14:13:25 2018 +0200
+++ b/docs/HISTORY.txt Tue Oct 09 16:37:24 2018 +0200
@@ -1,6 +1,17 @@
History
=======
+0.1.11
+------
+ - added method to pictograms paragraph renderer
+ - added internal link illustration adapter
+ - added interfaces and default adapters for banner and header illustrations
+
+0.1.10
+------
+ - added base alerts content provider
+ - added and updated illustrations interfaces and adapters
+
0.1.9
-----
- updated templates and renderers
--- a/setup.py Fri Oct 05 14:13:25 2018 +0200
+++ b/setup.py Tue Oct 09 16:37:24 2018 +0200
@@ -22,7 +22,7 @@
README = os.path.join(DOCS, 'README.txt')
HISTORY = os.path.join(DOCS, 'HISTORY.txt')
-version = '0.1.10'
+version = '0.1.11'
long_description = open(README).read() + '\n\n' + open(HISTORY).read()
tests_require = []
--- a/src/pyams_default_theme.egg-info/PKG-INFO Fri Oct 05 14:13:25 2018 +0200
+++ b/src/pyams_default_theme.egg-info/PKG-INFO Tue Oct 09 16:37:24 2018 +0200
@@ -1,17 +1,27 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
Name: pyams-default-theme
-Version: 0.1.9
+Version: 0.1.11
Summary: PyAMS default theme
Home-page: http://hg.ztfy.org/pyams/pyams_default_theme
Author: Thierry Florac
Author-email: tflorac@ulthar.net
License: ZPL
-Description-Content-Type: UNKNOWN
Description:
History
=======
+ 0.1.11
+ ------
+ - added method to pictograms paragraph renderer
+ - added internal link illustration adapter
+ - added interfaces and default adapters for banner and header illustrations
+
+ 0.1.10
+ ------
+ - added base alerts content provider
+ - added and updated illustrations interfaces and adapters
+
0.1.9
-----
- updated templates and renderers
@@ -68,3 +78,4 @@
Classifier: Programming Language :: Python
Classifier: Framework :: Pyramid
Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Provides-Extra: test
--- a/src/pyams_default_theme.egg-info/SOURCES.txt Fri Oct 05 14:13:25 2018 +0200
+++ b/src/pyams_default_theme.egg-info/SOURCES.txt Tue Oct 09 16:37:24 2018 +0200
@@ -74,6 +74,8 @@
src/pyams_default_theme/component/video/templates/external-video-default.pt
src/pyams_default_theme/doctests/README.txt
src/pyams_default_theme/features/__init__.py
+src/pyams_default_theme/features/alert/__init__.py
+src/pyams_default_theme/features/alert/templates/alerts.pt
src/pyams_default_theme/features/footer/__init__.py
src/pyams_default_theme/features/footer/interfaces.py
src/pyams_default_theme/features/footer/skin/__init__.py
--- a/src/pyams_default_theme/component/illustration/__init__.py Fri Oct 05 14:13:25 2018 +0200
+++ b/src/pyams_default_theme/component/illustration/__init__.py Tue Oct 09 16:37:24 2018 +0200
@@ -24,22 +24,25 @@
from pyams_content.features.renderer.skin import BaseContentRenderer
from pyams_content.interfaces import IBaseContent
from pyams_content.root import ISiteRoot
-from pyams_default_theme import _
from pyams_default_theme.component.illustration.interfaces import IIllustrationRenderer, IIllustrationWithZoomSettings, \
ILLUSTRATION_AFTER_BODY, ILLUSTRATION_BEFORE_BODY
-from pyams_default_theme.interfaces import IContentHeaderIllustration, IContentNavigationIllustration
+from pyams_default_theme.interfaces import IContentHeaderIllustration, IContentNavigationIllustration, \
+ IContentBannerIllustration
from pyams_skin.layer import IPyAMSLayer
from pyams_template.template import template_config
from pyams_utils.adapter import ContextRequestViewAdapter, adapter_config, get_annotation_adapter
from pyams_utils.interfaces.tales import ITALESExtension
+from pyams_default_theme import _
+
#
# Illustrations adapters
#
+@adapter_config(context=(IInternalLink, IPyAMSLayer), provides=IContentNavigationIllustration)
@adapter_config(context=(IBasicIllustrationTarget, IPyAMSLayer), provides=IContentNavigationIllustration)
-def base_content_navigation_illustration_adapter(context, request):
+def base_content_navigation_illustration_factory(context, request):
"""Default content navigation illustration adapter"""
illustration = ILinkIllustration(context, None)
if not (illustration and illustration.has_data()):
@@ -55,11 +58,27 @@
return illustration
+@adapter_config(context=(ISiteRoot, IPyAMSLayer), provides=IContentBannerIllustration)
+@adapter_config(context=(IBaseContent, IPyAMSLayer), provides=IContentBannerIllustration)
+def base_content_banner_illustration_factory(context, request):
+ """Base content banner illustration adapter"""
+ illustration = IIllustration(context, None)
+ if illustration and illustration.has_data():
+ return illustration
+
+
+@adapter_config(context=(ISiteRoot, IPyAMSLayer), provides=IContentHeaderIllustration)
+@adapter_config(context=(IBaseContent, IPyAMSLayer), provides=IContentHeaderIllustration)
+def base_content_header_illustration_factory(context, request):
+ """Base content header illustration adapter"""
+ return None
+
+
@adapter_config(name='pyams_illustration',
context=(Interface, Interface, Interface),
provides=ITALESExtension)
-class PyAMSContentIllustrationTALESExtension(ContextRequestViewAdapter):
- """PyAMS content illustration TALES extension"""
+class PyAMSIllustrationTALESExtension(ContextRequestViewAdapter):
+ """PyAMS illustration TALES extension"""
def render(self, context=None):
if context is None:
@@ -67,13 +86,28 @@
return self.request.registry.queryMultiAdapter((context, self.request), IContentNavigationIllustration)
-@adapter_config(context=(ISiteRoot, IPyAMSLayer), provides=IContentHeaderIllustration)
-@adapter_config(context=(IBaseContent, IPyAMSLayer), provides=IContentHeaderIllustration)
-def base_content_header_illustration_adapter(context, request):
- """Base content header illustration adapter"""
- illustration = IIllustration(context, None)
- if illustration and illustration.has_data():
- return illustration
+@adapter_config(name='pyams_banner_illustration',
+ context=(Interface, Interface, Interface),
+ provides=ITALESExtension)
+class PyAMSBannerIllustrationTALESExtension(ContextRequestViewAdapter):
+ """PyAMS banner illustration TALES extension"""
+
+ def render(self, context=None):
+ if context is None:
+ context = self.context
+ return self.request.registry.queryMultiAdapter((context, self.request), IContentBannerIllustration)
+
+
+@adapter_config(name='pyams_header_illustration',
+ context=(Interface, Interface, Interface),
+ provides=ITALESExtension)
+class PyAMSHeaderIllustrationTALESExtension(ContextRequestViewAdapter):
+ """PyAMS header illustration TALES extension"""
+
+ def render(self, context=None):
+ if context is None:
+ context = self.context
+ return self.request.registry.queryMultiAdapter((context, self.request), IContentHeaderIllustration)
#
--- a/src/pyams_default_theme/component/paragraph/interfaces/frame.py Fri Oct 05 14:13:25 2018 +0200
+++ b/src/pyams_default_theme/component/paragraph/interfaces/frame.py Tue Oct 09 16:37:24 2018 +0200
@@ -12,16 +12,11 @@
__docformat__ = 'restructuredtext'
-
-# import standard library
+from zope.interface import Attribute, Interface
+from zope.schema import Bool, Choice
+from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
-# import interfaces
-from pyams_content.reference.pictograms.interfaces import PICTOGRAM_VOCABULARY
-
-# import packages
-from zope.interface import Interface, Attribute
-from zope.schema import Bool, Choice
-from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
+from pyams_content.reference.pictograms.interfaces import SELECTED_PICTOGRAM_VOCABULARY
from pyams_default_theme import _
@@ -58,7 +53,7 @@
pictogram_name = Choice(title=_("Pictogram"),
description=_("Name of the pictogram associated with this frame paragraph"),
required=False,
- vocabulary=PICTOGRAM_VOCABULARY)
+ vocabulary=SELECTED_PICTOGRAM_VOCABULARY)
pictogram = Attribute("Selected pictogram object")
--- a/src/pyams_default_theme/component/paragraph/pictogram.py Fri Oct 05 14:13:25 2018 +0200
+++ b/src/pyams_default_theme/component/paragraph/pictogram.py Tue Oct 09 16:37:24 2018 +0200
@@ -12,16 +12,10 @@
__docformat__ = 'restructuredtext'
-
-# import standard library
-
-# import interfaces
-from pyams_content.component.paragraph.interfaces.pictogram import IPictogramParagraph, IPictogramContainer
+from pyams_content.component.paragraph.interfaces.pictogram import IPictogramContainer, IPictogramParagraph
from pyams_content.features.renderer.interfaces import IContentRenderer
+from pyams_content.features.renderer.skin import BaseContentRenderer
from pyams_skin.layer import IPyAMSLayer
-
-# import packages
-from pyams_content.features.renderer.skin import BaseContentRenderer
from pyams_template.template import template_config
from pyams_utils.adapter import adapter_config
@@ -42,4 +36,4 @@
@property
def pictograms(self):
- return IPictogramContainer(self.context)
+ yield from IPictogramContainer(self.context).get_visible_items()
--- a/src/pyams_default_theme/component/paragraph/templates/html-default.pt Fri Oct 05 14:13:25 2018 +0200
+++ b/src/pyams_default_theme/component/paragraph/templates/html-default.pt Tue Oct 09 16:37:24 2018 +0200
@@ -1,8 +1,8 @@
<tal:var define="renderer view.illustration_renderer;
- position renderer.position if renderer is not None else None;"
+ position getattr(renderer, 'position', None) if renderer is not None else None;"
switch="position">
<tal:var case="'before-title'">${structure:view.render_illustration()}</tal:var>
- <h2 tal:condition="position != 'before-title'">${view.title}</h2>
+ <h2 tal:condition="view.title and (position != 'before-title')">${view.title}</h2>
<tal:var case="'before-body'">${structure:view.render_illustration()}</tal:var>
<div>${structure:tales:html(view.body, 'oid_to_href')}</div>
<tal:var case="'after-body'">${structure:view.render_illustration()}</tal:var>
--- a/src/pyams_default_theme/interfaces/__init__.py Fri Oct 05 14:13:25 2018 +0200
+++ b/src/pyams_default_theme/interfaces/__init__.py Tue Oct 09 16:37:24 2018 +0200
@@ -27,6 +27,10 @@
"""Content date interface"""
+class IContentBannerIllustration(Interface):
+ """Content banner illustration adapter interface"""
+
+
class IContentHeaderIllustration(Interface):
"""Content header illustration adapter interface"""