Added default renderer for paragraphs navigation portlet
authorThierry Florac <thierry.florac@onf.fr>
Thu, 13 Sep 2018 17:20:12 +0200
changeset 146 3cdc2e89fb1c
parent 145 b4ba3762cbd6
child 147 5a23b395ccef
Added default renderer for paragraphs navigation portlet
src/pyams_default_theme/component/paragraph/portlet/__init__.py
src/pyams_default_theme/component/paragraph/portlet/templates/content.pt
src/pyams_default_theme/component/paragraph/portlet/templates/navigation.pt
src/pyams_default_theme/locales/fr/LC_MESSAGES/pyams_default_theme.mo
src/pyams_default_theme/locales/fr/LC_MESSAGES/pyams_default_theme.po
src/pyams_default_theme/locales/pyams_default_theme.pot
--- a/src/pyams_default_theme/component/paragraph/portlet/__init__.py	Wed Sep 12 18:12:22 2018 +0200
+++ b/src/pyams_default_theme/component/paragraph/portlet/__init__.py	Thu Sep 13 17:20:12 2018 +0200
@@ -15,20 +15,20 @@
 
 # import standard library
 
+from zope.interface import Interface
+
 # import interfaces
 from pyams_content.component.paragraph.interfaces import IParagraphContainer
-from pyams_content.component.paragraph.portlet.interfaces import IParagraphContainerPortletSettings
+from pyams_content.component.paragraph.portlet.interfaces import IParagraphContainerPortletSettings, \
+    IParagraphNavigationPortletSettings
 from pyams_content.features.renderer.interfaces import ISharedContentRenderer
+from pyams_default_theme import _
 from pyams_portal.interfaces import IPortalContext, IPortletRenderer
-from pyams_skin.layer import IPyAMSLayer
-
 # import packages
 from pyams_portal.portlet import PortletRenderer
+from pyams_skin.layer import IPyAMSLayer
 from pyams_template.template import template_config
 from pyams_utils.adapter import adapter_config
-from zope.interface import Interface
-
-from pyams_default_theme import _
 
 
 @adapter_config(context=(IPortalContext, IPyAMSLayer, Interface, IParagraphContainerPortletSettings),
@@ -56,3 +56,22 @@
                                                              key=lambda x: x[1].weight)]
         self.renderers = list(filter(lambda x: x is not None, renderers))
         [renderer.update() for renderer in self.renderers]
+
+
+@adapter_config(context=(IPortalContext, IPyAMSLayer, Interface, IParagraphNavigationPortletSettings),
+                provides=IPortletRenderer)
+@template_config(template='templates/navigation.pt', layer=IPyAMSLayer)
+class ParagraphNavigationPortletRenderer(PortletRenderer):
+    """Paragraphs navigation default portlet renderer"""
+
+    label = _("Default paragraphs navigation")
+
+    paragraphs = ()
+
+    def update(self):
+        super(ParagraphNavigationPortletRenderer, self).update()
+        settings = self.settings
+        container = IParagraphContainer(self.context, None)
+        if container is not None:
+            self.paragraphs = container.get_visible_paragraphs(settings.paragraphs, settings.anchors_only,
+                                                               settings.factories)
--- a/src/pyams_default_theme/component/paragraph/portlet/templates/content.pt	Wed Sep 12 18:12:22 2018 +0200
+++ b/src/pyams_default_theme/component/paragraph/portlet/templates/content.pt	Thu Sep 13 17:20:12 2018 +0200
@@ -1,7 +1,9 @@
-<div class="edito"
+<div class="edito sticky-playground"
 	 tal:condition="view.renderers">
 	<tal:loop repeat="renderer view.renderers">
-		<tal:if condition="renderer"
-				content="structure renderer.render()">Renderer</tal:if>
+		<tal:if condition="renderer is not None">
+			<a id="part_${tales:cache_key(renderer.context)}"></a>
+			${structure:renderer.render()}
+		</tal:if>
 	</tal:loop>
 </div>
Binary file src/pyams_default_theme/locales/fr/LC_MESSAGES/pyams_default_theme.mo has changed
--- a/src/pyams_default_theme/locales/fr/LC_MESSAGES/pyams_default_theme.po	Wed Sep 12 18:12:22 2018 +0200
+++ b/src/pyams_default_theme/locales/fr/LC_MESSAGES/pyams_default_theme.po	Thu Sep 13 17:20:12 2018 +0200
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-09-12 16:49+0200\n"
+"POT-Creation-Date: 2018-09-13 17:19+0200\n"
 "PO-Revision-Date: 2017-06-07 12:41+0200\n"
 "Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
 "Language-Team: French\n"
@@ -20,6 +20,10 @@
 msgid "PyAMS default skin"
 msgstr "Skin par défaut (PyAMS)"
 
+#: src/pyams_default_theme/component/gallery/__init__.py:40
+msgid "Default gallery renderer"
+msgstr "Par défaut"
+
 #: src/pyams_default_theme/component/keynumber/__init__.py:53
 msgid "Default key numbers renderer"
 msgstr "Par défaut"
@@ -32,27 +36,75 @@
 msgid "Vertical list"
 msgstr "Liste verticale"
 
-#: src/pyams_default_theme/component/gallery/__init__.py:40
-msgid "Default gallery renderer"
+#: src/pyams_default_theme/component/illustration/__init__.py:76
+msgid "Centered illustration before text"
+msgstr "Illustration centrée avant le texte"
+
+#: src/pyams_default_theme/component/illustration/__init__.py:87
+msgid "Small illustration on the left"
+msgstr "Illustration sur la gauche"
+
+#: src/pyams_default_theme/component/illustration/__init__.py:99
+msgid "Small illustration on the right"
+msgstr "Illustration sur la droite"
+
+#: src/pyams_default_theme/component/illustration/__init__.py:111
+msgid "Centered illustration after text"
+msgstr "Illustration centrée après le texte"
+
+#: src/pyams_default_theme/component/illustration/interfaces/__init__.py:41
+msgid "Zoom on click?"
+msgstr "Zoom sur clic ?"
+
+#: src/pyams_default_theme/component/illustration/interfaces/__init__.py:42
+msgid "If 'yes', a click on illustration thumbnail is required to zoom"
+msgstr ""
+"Si 'oui', un clic sur la vignette de l'illustration est nécessaire pour "
+"zoomer sur l'image"
+
+#: src/pyams_default_theme/component/paragraph/milestone.py:38
+msgid "Default milestones renderer"
 msgstr "Par défaut"
 
+#: src/pyams_default_theme/component/paragraph/keypoint.py:40
+msgid "Default key points renderer"
+msgstr "Par défaut"
+
+#: src/pyams_default_theme/component/paragraph/map.py:96
+msgid "Default map renderer"
+msgstr "Par défaut"
+
+#: src/pyams_default_theme/component/paragraph/video.py:40
 #: src/pyams_default_theme/component/video/__init__.py:41
-#: src/pyams_default_theme/component/paragraph/video.py:40
 msgid "Default video renderer"
 msgstr "Par défaut"
 
-#: src/pyams_default_theme/component/paragraph/contact.py:85
-msgid "Default contact renderer"
-msgstr "Encadré en pleine largeur (par défaut)"
-
 #: src/pyams_default_theme/component/paragraph/pictogram.py:40
 msgid "Default pictograms renderer"
 msgstr "Par défaut"
 
-#: src/pyams_default_theme/component/paragraph/milestone.py:38
-msgid "Default milestones renderer"
+#: src/pyams_default_theme/component/paragraph/audio.py:40
+msgid "Default audio renderer"
 msgstr "Par défaut"
 
+#: src/pyams_default_theme/component/paragraph/frame.py:164
+msgid "Default frame renderer"
+msgstr "Encadré en pleine largeur (par défaut)"
+
+#: src/pyams_default_theme/component/paragraph/frame.py:175
+#: src/pyams_default_theme/component/paragraph/verbatim.py:114
+msgid "Small frame on the left"
+msgstr "Encadré placé sur la gauche"
+
+#: src/pyams_default_theme/component/paragraph/frame.py:186
+#: src/pyams_default_theme/component/paragraph/verbatim.py:125
+msgid "Small frame on the right"
+msgstr "Encadré placé sur la droite"
+
+#: src/pyams_default_theme/component/paragraph/verbatim.py:103
+msgid "Default verbatim renderer"
+msgstr "Encadré en pleine largeur (par défaut)"
+
 #: src/pyams_default_theme/component/paragraph/html.py:39
 msgid "Default raw HTML renderer"
 msgstr "Par défaut"
@@ -61,48 +113,99 @@
 msgid "Default rich text renderer"
 msgstr "Par défaut"
 
-#: src/pyams_default_theme/component/paragraph/verbatim.py:103
-msgid "Default verbatim renderer"
+#: src/pyams_default_theme/component/paragraph/contact.py:85
+msgid "Default contact renderer"
 msgstr "Encadré en pleine largeur (par défaut)"
 
-#: src/pyams_default_theme/component/paragraph/verbatim.py:114
-#: src/pyams_default_theme/component/paragraph/frame.py:175
-msgid "Small frame on the left"
-msgstr "Encadré placé sur la gauche"
+#: src/pyams_default_theme/component/paragraph/zmi/map.py:62
+msgid "Don't use default map configuration"
+msgstr "Ne pas utiliser la configuration de carte par défaut"
 
-#: src/pyams_default_theme/component/paragraph/verbatim.py:125
-#: src/pyams_default_theme/component/paragraph/frame.py:186
-msgid "Small frame on the right"
-msgstr "Encadré placé sur la droite"
+#: src/pyams_default_theme/component/paragraph/portlet/__init__.py:41
+msgid "Default paragraphs renderer"
+msgstr "Par défaut"
 
-#: src/pyams_default_theme/component/paragraph/map.py:96
-msgid "Default map renderer"
+#: src/pyams_default_theme/component/paragraph/portlet/__init__.py:68
+msgid "Default paragraphs navigation"
 msgstr "Par défaut"
 
-#: src/pyams_default_theme/component/paragraph/keypoint.py:40
-msgid "Default key points renderer"
-msgstr "Par défaut"
-
-#: src/pyams_default_theme/component/paragraph/frame.py:164
-msgid "Default frame renderer"
-msgstr "Encadré en pleine largeur (par défaut)"
+#: src/pyams_default_theme/component/paragraph/interfaces/map.py:34
+msgid "Don't use default configuration?"
+msgstr "Ne pas utiliser la configuration par défaut ?"
 
-#: src/pyams_default_theme/component/paragraph/audio.py:40
-msgid "Default audio renderer"
-msgstr "Par défaut"
+#: src/pyams_default_theme/component/paragraph/interfaces/map.py:38
+msgid "Use default configuration?"
+msgstr "Utiliser la configuration par défaut ?"
 
-#: src/pyams_default_theme/component/paragraph/interfaces/contact.py:29
+#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:30
 #: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:28
-#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:30
+#: src/pyams_default_theme/component/paragraph/interfaces/contact.py:29
 msgid "Left"
 msgstr "Gauche"
 
-#: src/pyams_default_theme/component/paragraph/interfaces/contact.py:30
+#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:31
 #: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:29
-#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:31
+#: src/pyams_default_theme/component/paragraph/interfaces/contact.py:30
 msgid "Right"
 msgstr "Droite"
 
+#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:32
+#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:30
+msgid "Center (full width)"
+msgstr "Centré (pleine largeur)"
+
+#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:42
+#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:40
+msgid "Show illustration?"
+msgstr "Afficher l'illustration ?"
+
+#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:43
+#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:41
+msgid "If 'no', illustration will not be displayed"
+msgstr ""
+"Si 'non', l'illustration ne sera pas affichée même si un contenu a été fourni"
+
+#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:50
+msgid "Show associations?"
+msgstr "Afficher les liens et pièces jointes ?"
+
+#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:51
+msgid "If 'no', associations will not be displayed"
+msgstr ""
+"Si 'non', les liens et pièces jointes ne seront pas affichés même s'il "
+"existe des éléments visibles"
+
+#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:58
+msgid "Pictogram"
+msgstr "Pictogramme"
+
+#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:59
+msgid "Name of the pictogram associated with this frame paragraph"
+msgstr "Nom du pictogramme associé à cet encadré"
+
+#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:73
+#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:56
+msgid "Relative width"
+msgstr "Largeur relative"
+
+#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:74
+msgid ""
+"Relative width used by this frame, relative to it's parent, given as columns "
+"count; full width counts for 12 columns"
+msgstr ""
+"Largeur relative de ce paragraphe par rapport à son parent. Cette largeur "
+"est indiquée en nombre de colonnes, la largeur totale correspondant à 12 "
+"colonnes."
+
+#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:57
+msgid ""
+"Relative width used by this paragraph, relative to it's parent, given as "
+"columns count; full width counts for 12 columns"
+msgstr ""
+"Largeur relative de ce paragraphe par rapport à son parent. Cette largeur "
+"est indiquée en nombre de colonnes, la largeur totale correspondant à 12 "
+"colonnes."
+
 #: src/pyams_default_theme/component/paragraph/interfaces/contact.py:40
 msgid "Show photo?"
 msgstr "Afficher la photo ?"
@@ -131,79 +234,6 @@
 msgid "Map position"
 msgstr "Position de la carte"
 
-#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:30
-#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:32
-msgid "Center (full width)"
-msgstr "Centré (pleine largeur)"
-
-#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:40
-#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:42
-msgid "Show illustration?"
-msgstr "Afficher l'illustration ?"
-
-#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:41
-#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:43
-msgid "If 'no', illustration will not be displayed"
-msgstr ""
-"Si 'non', l'illustration ne sera pas affichée même si un contenu a été fourni"
-
-#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:56
-#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:73
-msgid "Relative width"
-msgstr "Largeur relative"
-
-#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:57
-msgid ""
-"Relative width used by this paragraph, relative to it's parent, given as "
-"columns count; full width counts for 12 columns"
-msgstr ""
-"Largeur relative de ce paragraphe par rapport à son parent. Cette largeur "
-"est indiquée en nombre de colonnes, la largeur totale correspondant à 12 "
-"colonnes."
-
-#: src/pyams_default_theme/component/paragraph/interfaces/map.py:34
-msgid "Don't use default configuration?"
-msgstr "Ne pas utiliser la configuration par défaut ?"
-
-#: src/pyams_default_theme/component/paragraph/interfaces/map.py:38
-msgid "Use default configuration?"
-msgstr "Utiliser la configuration par défaut ?"
-
-#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:50
-msgid "Show associations?"
-msgstr "Afficher les liens et pièces jointes ?"
-
-#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:51
-msgid "If 'no', associations will not be displayed"
-msgstr ""
-"Si 'non', les liens et pièces jointes ne seront pas affichés même s'il "
-"existe des éléments visibles"
-
-#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:58
-msgid "Pictogram"
-msgstr "Pictogramme"
-
-#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:59
-msgid "Name of the pictogram associated with this frame paragraph"
-msgstr "Nom du pictogramme associé à cet encadré"
-
-#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:74
-msgid ""
-"Relative width used by this frame, relative to it's parent, given as columns "
-"count; full width counts for 12 columns"
-msgstr ""
-"Largeur relative de ce paragraphe par rapport à son parent. Cette largeur "
-"est indiquée en nombre de colonnes, la largeur totale correspondant à 12 "
-"colonnes."
-
-#: src/pyams_default_theme/component/paragraph/portlet/__init__.py:40
-msgid "Default paragraphs renderer"
-msgstr "Par défaut"
-
-#: src/pyams_default_theme/component/paragraph/zmi/map.py:62
-msgid "Don't use default map configuration"
-msgstr "Ne pas utiliser la configuration de carte par défaut"
-
 #: src/pyams_default_theme/component/association/__init__.py:47
 msgid "Default associations renderer"
 msgstr "Par défaut"
@@ -250,47 +280,39 @@
 "Si 'oui', seuls les blocs de contenu désignés comme ancres seront "
 "sélectionnés"
 
-#: src/pyams_default_theme/component/illustration/__init__.py:76
-msgid "Centered illustration before text"
-msgstr "Illustration centrée avant le texte"
-
-#: src/pyams_default_theme/component/illustration/__init__.py:87
-msgid "Small illustration on the left"
-msgstr "Illustration sur la gauche"
+#: src/pyams_default_theme/shared/common/portlet/head.py:38
+msgid "Default header renderer"
+msgstr "Par défaut"
 
-#: src/pyams_default_theme/component/illustration/__init__.py:99
-msgid "Small illustration on the right"
-msgstr "Illustration sur la droite"
+#: src/pyams_default_theme/shared/view/templates/render.pt:2
+msgid "View result items"
+msgstr "Aperçu du contenu de la vue"
 
-#: src/pyams_default_theme/component/illustration/__init__.py:111
-msgid "Centered illustration after text"
-msgstr "Illustration centrée après le texte"
-
-#: src/pyams_default_theme/component/illustration/interfaces/__init__.py:41
-msgid "Zoom on click?"
-msgstr "Zoom sur clic ?"
+#: src/pyams_default_theme/shared/view/templates/render.pt:3
+msgid "WARNING: items displayed in this preview are out of context!!"
+msgstr ""
+"ATTENTION : la sélection des éléments affichés dans cet aperçu ne tient pas "
+"compte du contexte éventuellement paramétré dans la vue"
 
-#: src/pyams_default_theme/component/illustration/interfaces/__init__.py:42
-msgid "If 'yes', a click on illustration thumbnail is required to zoom"
-msgstr ""
-"Si 'oui', un clic sur la vignette de l'illustration est nécessaire pour "
-"zoomer sur l'image"
+#: src/pyams_default_theme/shared/view/portlet/__init__.py:38
+msgid "Simple vertical view"
+msgstr "Liste verticale simple"
 
-#: src/pyams_default_theme/features/footer/interfaces.py:31
-msgid "Copyright"
-msgstr "Copyright"
+#: src/pyams_default_theme/shared/imagemap/__init__.py:58
+msgid "Default imagemap renderer"
+msgstr "Par défaut"
 
-#: src/pyams_default_theme/features/footer/interfaces.py:32
-msgid "Copyright mention displayed in page footer"
-msgstr "Mention affichée dans le pied de page"
+#: src/pyams_default_theme/shared/imagemap/templates/render.pt:2
+msgid "Image map preview"
+msgstr "Aperçu des zones cliquables"
 
-#: src/pyams_default_theme/features/footer/zmi/__init__.py:64
-msgid "Footer links"
-msgstr "Liens du pied de page"
+#: src/pyams_default_theme/shared/logo/__init__.py:39
+msgid "Default logos renderer"
+msgstr "Par défaut"
 
-#: src/pyams_default_theme/features/footer/skin/__init__.py:50
-msgid "PyAMS simple footer with links"
-msgstr "PyAMS: pied de page simple avec liens"
+#: src/pyams_default_theme/viewlet/logo/templates/logo.pt:5
+msgid "Back home"
+msgstr "Revenir à l'accueil"
 
 #: src/pyams_default_theme/features/menu/portlet/navigation/__init__.py:49
 msgid "Horizontal list with vertical illustrations"
@@ -324,6 +346,22 @@
 msgid "Label associated with second level options menu"
 msgstr "Libellé associé au second niveau de sélection"
 
+#: src/pyams_default_theme/features/footer/interfaces.py:31
+msgid "Copyright"
+msgstr "Copyright"
+
+#: src/pyams_default_theme/features/footer/interfaces.py:32
+msgid "Copyright mention displayed in page footer"
+msgstr "Mention affichée dans le pied de page"
+
+#: src/pyams_default_theme/features/footer/zmi/__init__.py:64
+msgid "Footer links"
+msgstr "Liens du pied de page"
+
+#: src/pyams_default_theme/features/footer/skin/__init__.py:50
+msgid "PyAMS simple footer with links"
+msgstr "PyAMS: pied de page simple avec liens"
+
 #: src/pyams_default_theme/features/header/interfaces.py:31
 msgid "Banner image"
 msgstr "Bandeau"
@@ -348,40 +386,6 @@
 msgid "PyAMS simple header with banner and tabs"
 msgstr "PyAMS: en-tête simple avec bandeau et onglets de navigation"
 
-#: src/pyams_default_theme/shared/view/portlet/__init__.py:38
-msgid "Simple vertical view"
-msgstr "Liste verticale simple"
-
-#: src/pyams_default_theme/shared/view/templates/render.pt:2
-msgid "View result items"
-msgstr "Aperçu du contenu de la vue"
-
-#: src/pyams_default_theme/shared/view/templates/render.pt:3
-msgid "WARNING: items displayed in this preview are out of context!!"
-msgstr ""
-"ATTENTION : la sélection des éléments affichés dans cet aperçu ne tient pas "
-"compte du contexte éventuellement paramétré dans la vue"
-
-#: src/pyams_default_theme/shared/common/portlet/head.py:38
-msgid "Default header renderer"
-msgstr "Par défaut"
-
-#: src/pyams_default_theme/shared/imagemap/__init__.py:58
-msgid "Default imagemap renderer"
-msgstr "Par défaut"
-
-#: src/pyams_default_theme/shared/imagemap/templates/render.pt:2
-msgid "Image map preview"
-msgstr "Aperçu des zones cliquables"
-
-#: src/pyams_default_theme/shared/logo/__init__.py:39
-msgid "Default logos renderer"
-msgstr "Par défaut"
-
-#: src/pyams_default_theme/viewlet/logo/templates/logo.pt:5
-msgid "Back home"
-msgstr "Revenir à l'accueil"
-
 #~ msgid "Search..."
 #~ msgstr "Chercher..."
 
--- a/src/pyams_default_theme/locales/pyams_default_theme.pot	Wed Sep 12 18:12:22 2018 +0200
+++ b/src/pyams_default_theme/locales/pyams_default_theme.pot	Thu Sep 13 17:20:12 2018 +0200
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-09-12 16:49+0200\n"
+"POT-Creation-Date: 2018-09-13 17:19+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,6 +20,10 @@
 msgid "PyAMS default skin"
 msgstr ""
 
+#: ./src/pyams_default_theme/component/gallery/__init__.py:40
+msgid "Default gallery renderer"
+msgstr ""
+
 #: ./src/pyams_default_theme/component/keynumber/__init__.py:53
 msgid "Default key numbers renderer"
 msgstr ""
@@ -32,25 +36,71 @@
 msgid "Vertical list"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/gallery/__init__.py:40
-msgid "Default gallery renderer"
+#: ./src/pyams_default_theme/component/illustration/__init__.py:76
+msgid "Centered illustration before text"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/illustration/__init__.py:87
+msgid "Small illustration on the left"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/illustration/__init__.py:99
+msgid "Small illustration on the right"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/illustration/__init__.py:111
+msgid "Centered illustration after text"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/illustration/interfaces/__init__.py:41
+msgid "Zoom on click?"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/video/__init__.py:41
-#: ./src/pyams_default_theme/component/paragraph/video.py:40
-msgid "Default video renderer"
+#: ./src/pyams_default_theme/component/illustration/interfaces/__init__.py:42
+msgid "If 'yes', a click on illustration thumbnail is required to zoom"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/milestone.py:38
+msgid "Default milestones renderer"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/paragraph/contact.py:85
-msgid "Default contact renderer"
+#: ./src/pyams_default_theme/component/paragraph/keypoint.py:40
+msgid "Default key points renderer"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/map.py:96
+msgid "Default map renderer"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/video.py:40
+#: ./src/pyams_default_theme/component/video/__init__.py:41
+msgid "Default video renderer"
 msgstr ""
 
 #: ./src/pyams_default_theme/component/paragraph/pictogram.py:40
 msgid "Default pictograms renderer"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/paragraph/milestone.py:38
-msgid "Default milestones renderer"
+#: ./src/pyams_default_theme/component/paragraph/audio.py:40
+msgid "Default audio renderer"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/frame.py:164
+msgid "Default frame renderer"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/frame.py:175
+#: ./src/pyams_default_theme/component/paragraph/verbatim.py:114
+msgid "Small frame on the left"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/frame.py:186
+#: ./src/pyams_default_theme/component/paragraph/verbatim.py:125
+msgid "Small frame on the right"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/verbatim.py:103
+msgid "Default verbatim renderer"
 msgstr ""
 
 #: ./src/pyams_default_theme/component/paragraph/html.py:39
@@ -61,48 +111,90 @@
 msgid "Default rich text renderer"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/paragraph/verbatim.py:103
-msgid "Default verbatim renderer"
+#: ./src/pyams_default_theme/component/paragraph/contact.py:85
+msgid "Default contact renderer"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/paragraph/verbatim.py:114
-#: ./src/pyams_default_theme/component/paragraph/frame.py:175
-msgid "Small frame on the left"
+#: ./src/pyams_default_theme/component/paragraph/zmi/map.py:62
+msgid "Don't use default map configuration"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/paragraph/verbatim.py:125
-#: ./src/pyams_default_theme/component/paragraph/frame.py:186
-msgid "Small frame on the right"
+#: ./src/pyams_default_theme/component/paragraph/portlet/__init__.py:41
+msgid "Default paragraphs renderer"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/paragraph/map.py:96
-msgid "Default map renderer"
+#: ./src/pyams_default_theme/component/paragraph/portlet/__init__.py:68
+msgid "Default paragraphs navigation"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/paragraph/keypoint.py:40
-msgid "Default key points renderer"
+#: ./src/pyams_default_theme/component/paragraph/interfaces/map.py:34
+msgid "Don't use default configuration?"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/paragraph/frame.py:164
-msgid "Default frame renderer"
+#: ./src/pyams_default_theme/component/paragraph/interfaces/map.py:38
+msgid "Use default configuration?"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/paragraph/audio.py:40
-msgid "Default audio renderer"
-msgstr ""
-
+#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:30
+#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:28
 #: ./src/pyams_default_theme/component/paragraph/interfaces/contact.py:29
-#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:28
-#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:30
 msgid "Left"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/paragraph/interfaces/contact.py:30
+#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:31
 #: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:29
-#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:31
+#: ./src/pyams_default_theme/component/paragraph/interfaces/contact.py:30
 msgid "Right"
 msgstr ""
 
+#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:32
+#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:30
+msgid "Center (full width)"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:42
+#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:40
+msgid "Show illustration?"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:43
+#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:41
+msgid "If 'no', illustration will not be displayed"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:50
+msgid "Show associations?"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:51
+msgid "If 'no', associations will not be displayed"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:58
+msgid "Pictogram"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:59
+msgid "Name of the pictogram associated with this frame paragraph"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:73
+#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:56
+msgid "Relative width"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:74
+msgid ""
+"Relative width used by this frame, relative to it's parent, given as columns "
+"count; full width counts for 12 columns"
+msgstr ""
+
+#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:57
+msgid ""
+"Relative width used by this paragraph, relative to it's parent, given as "
+"columns count; full width counts for 12 columns"
+msgstr ""
+
 #: ./src/pyams_default_theme/component/paragraph/interfaces/contact.py:40
 msgid "Show photo?"
 msgstr ""
@@ -127,70 +219,6 @@
 msgid "Map position"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:30
-#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:32
-msgid "Center (full width)"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:40
-#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:42
-msgid "Show illustration?"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:41
-#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:43
-msgid "If 'no', illustration will not be displayed"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:56
-#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:73
-msgid "Relative width"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:57
-msgid ""
-"Relative width used by this paragraph, relative to it's parent, given as "
-"columns count; full width counts for 12 columns"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/paragraph/interfaces/map.py:34
-msgid "Don't use default configuration?"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/paragraph/interfaces/map.py:38
-msgid "Use default configuration?"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:50
-msgid "Show associations?"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:51
-msgid "If 'no', associations will not be displayed"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:58
-msgid "Pictogram"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:59
-msgid "Name of the pictogram associated with this frame paragraph"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:74
-msgid ""
-"Relative width used by this frame, relative to it's parent, given as columns "
-"count; full width counts for 12 columns"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/paragraph/portlet/__init__.py:40
-msgid "Default paragraphs renderer"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/paragraph/zmi/map.py:62
-msgid "Don't use default map configuration"
-msgstr ""
-
 #: ./src/pyams_default_theme/component/association/__init__.py:47
 msgid "Default associations renderer"
 msgstr ""
@@ -233,44 +261,36 @@
 msgid "If 'yes', only paragraphs set as 'anchors' will be selected"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/illustration/__init__.py:76
-msgid "Centered illustration before text"
+#: ./src/pyams_default_theme/shared/common/portlet/head.py:38
+msgid "Default header renderer"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/illustration/__init__.py:87
-msgid "Small illustration on the left"
+#: ./src/pyams_default_theme/shared/view/templates/render.pt:2
+msgid "View result items"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/illustration/__init__.py:99
-msgid "Small illustration on the right"
-msgstr ""
-
-#: ./src/pyams_default_theme/component/illustration/__init__.py:111
-msgid "Centered illustration after text"
+#: ./src/pyams_default_theme/shared/view/templates/render.pt:3
+msgid "WARNING: items displayed in this preview are out of context!!"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/illustration/interfaces/__init__.py:41
-msgid "Zoom on click?"
+#: ./src/pyams_default_theme/shared/view/portlet/__init__.py:38
+msgid "Simple vertical view"
 msgstr ""
 
-#: ./src/pyams_default_theme/component/illustration/interfaces/__init__.py:42
-msgid "If 'yes', a click on illustration thumbnail is required to zoom"
+#: ./src/pyams_default_theme/shared/imagemap/__init__.py:58
+msgid "Default imagemap renderer"
 msgstr ""
 
-#: ./src/pyams_default_theme/features/footer/interfaces.py:31
-msgid "Copyright"
+#: ./src/pyams_default_theme/shared/imagemap/templates/render.pt:2
+msgid "Image map preview"
 msgstr ""
 
-#: ./src/pyams_default_theme/features/footer/interfaces.py:32
-msgid "Copyright mention displayed in page footer"
+#: ./src/pyams_default_theme/shared/logo/__init__.py:39
+msgid "Default logos renderer"
 msgstr ""
 
-#: ./src/pyams_default_theme/features/footer/zmi/__init__.py:64
-msgid "Footer links"
-msgstr ""
-
-#: ./src/pyams_default_theme/features/footer/skin/__init__.py:50
-msgid "PyAMS simple footer with links"
+#: ./src/pyams_default_theme/viewlet/logo/templates/logo.pt:5
+msgid "Back home"
 msgstr ""
 
 #: ./src/pyams_default_theme/features/menu/portlet/navigation/__init__.py:49
@@ -305,6 +325,22 @@
 msgid "Label associated with second level options menu"
 msgstr ""
 
+#: ./src/pyams_default_theme/features/footer/interfaces.py:31
+msgid "Copyright"
+msgstr ""
+
+#: ./src/pyams_default_theme/features/footer/interfaces.py:32
+msgid "Copyright mention displayed in page footer"
+msgstr ""
+
+#: ./src/pyams_default_theme/features/footer/zmi/__init__.py:64
+msgid "Footer links"
+msgstr ""
+
+#: ./src/pyams_default_theme/features/footer/skin/__init__.py:50
+msgid "PyAMS simple footer with links"
+msgstr ""
+
 #: ./src/pyams_default_theme/features/header/interfaces.py:31
 msgid "Banner image"
 msgstr ""
@@ -328,35 +364,3 @@
 #: ./src/pyams_default_theme/features/header/skin/__init__.py:52
 msgid "PyAMS simple header with banner and tabs"
 msgstr ""
-
-#: ./src/pyams_default_theme/shared/view/portlet/__init__.py:38
-msgid "Simple vertical view"
-msgstr ""
-
-#: ./src/pyams_default_theme/shared/view/templates/render.pt:2
-msgid "View result items"
-msgstr ""
-
-#: ./src/pyams_default_theme/shared/view/templates/render.pt:3
-msgid "WARNING: items displayed in this preview are out of context!!"
-msgstr ""
-
-#: ./src/pyams_default_theme/shared/common/portlet/head.py:38
-msgid "Default header renderer"
-msgstr ""
-
-#: ./src/pyams_default_theme/shared/imagemap/__init__.py:58
-msgid "Default imagemap renderer"
-msgstr ""
-
-#: ./src/pyams_default_theme/shared/imagemap/templates/render.pt:2
-msgid "Image map preview"
-msgstr ""
-
-#: ./src/pyams_default_theme/shared/logo/__init__.py:39
-msgid "Default logos renderer"
-msgstr ""
-
-#: ./src/pyams_default_theme/viewlet/logo/templates/logo.pt:5
-msgid "Back home"
-msgstr ""