# HG changeset patch # User Thierry Florac # Date 1541611536 -3600 # Node ID 40bffafce365e78e96a45bb4713829b99d3c1bb6 # Parent b1854f5a7be60db9dd29d77af293dd62b44c1554 Moved skin related features from PyAMS_content package diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/features/search/__init__.py --- a/src/pyams_default_theme/features/search/__init__.py Wed Nov 07 17:49:55 2018 +0100 +++ b/src/pyams_default_theme/features/search/__init__.py Wed Nov 07 18:25:36 2018 +0100 @@ -12,9 +12,9 @@ __docformat__ = 'restructuredtext' -from pyams_content.features.search import ISearchFolder +from pyams_content.features.search.interfaces import ISearchFolder +from pyams_default_theme.interfaces import IContentSummaryInfo from pyams_content.shared.site import ISiteElementNavigation -from pyams_content.shared.site.interfaces import IContentSummaryInfo from pyams_i18n.interfaces import II18n from pyams_skin.layer import IPyAMSUserLayer from pyams_utils.adapter import ContextRequestAdapter, adapter_config diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/interfaces/__init__.py --- a/src/pyams_default_theme/interfaces/__init__.py Wed Nov 07 17:49:55 2018 +0100 +++ b/src/pyams_default_theme/interfaces/__init__.py Wed Nov 07 18:25:36 2018 +0100 @@ -12,7 +12,7 @@ __docformat__ = 'restructuredtext' -from zope.interface import Interface +from zope.interface import Interface, Attribute class IContentNavigationTitle(Interface): @@ -37,3 +37,15 @@ class IContentNavigationIllustration(Interface): """Content navigation illustration adapter interface""" + + +class IContentSummaryInfo(Interface): + """Content interface for site summary page""" + + context = Attribute("Link to adapted context") + + title = Attribute("Content's title") + + header = Attribute("Header") + + button_title = Attribute("Button's target") diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/locales/fr/LC_MESSAGES/pyams_default_theme.mo Binary file src/pyams_default_theme/locales/fr/LC_MESSAGES/pyams_default_theme.mo has changed diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/locales/fr/LC_MESSAGES/pyams_default_theme.po --- a/src/pyams_default_theme/locales/fr/LC_MESSAGES/pyams_default_theme.po Wed Nov 07 17:49:55 2018 +0100 +++ b/src/pyams_default_theme/locales/fr/LC_MESSAGES/pyams_default_theme.po Wed Nov 07 18:25:36 2018 +0100 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE 1.0\n" -"POT-Creation-Date: 2018-10-22 16:36+0200\n" +"POT-Creation-Date: 2018-11-07 18:22+0100\n" "PO-Revision-Date: 2017-06-07 12:41+0200\n" "Last-Translator: Thierry Florac \n" "Language-Team: French\n" @@ -20,10 +20,6 @@ msgid "PyAMS default skin" msgstr "Skin par défaut (PyAMS)" -#: src/pyams_default_theme/component/gallery/__init__.py:34 -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" @@ -36,75 +32,27 @@ msgid "Vertical list" msgstr "Liste verticale" -#: src/pyams_default_theme/component/illustration/__init__.py:171 -msgid "Centered illustration before text" -msgstr "Illustration centrée avant le texte" - -#: src/pyams_default_theme/component/illustration/__init__.py:182 -msgid "Small illustration on the left" -msgstr "Illustration sur la gauche" - -#: src/pyams_default_theme/component/illustration/__init__.py:194 -msgid "Small illustration on the right" -msgstr "Illustration sur la droite" - -#: src/pyams_default_theme/component/illustration/__init__.py:206 -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" +#: src/pyams_default_theme/component/gallery/__init__.py:34 +msgid "Default gallery renderer" msgstr "Par défaut" -#: src/pyams_default_theme/component/paragraph/keypoint.py:40 -msgid "Default key points renderer" +#: 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/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 -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:34 msgid "Default pictograms renderer" msgstr "Par défaut" -#: src/pyams_default_theme/component/paragraph/audio.py:40 -msgid "Default audio renderer" +#: src/pyams_default_theme/component/paragraph/milestone.py:38 +msgid "Default milestones renderer" msgstr "Par défaut" -#: src/pyams_default_theme/component/paragraph/frame.py:152 -msgid "Default frame renderer" -msgstr "Encadré en pleine largeur (par défaut)" - -#: src/pyams_default_theme/component/paragraph/frame.py:163 -#: src/pyams_default_theme/component/paragraph/verbatim.py:84 -msgid "Small frame on the left" -msgstr "Encadré placé sur la gauche" - -#: src/pyams_default_theme/component/paragraph/frame.py:174 -#: src/pyams_default_theme/component/paragraph/verbatim.py:95 -msgid "Small frame on the right" -msgstr "Encadré placé sur la droite" - -#: src/pyams_default_theme/component/paragraph/verbatim.py:75 -msgid "Default verbatim renderer" -msgstr "Encadré en pleine largeur (par défaut)" - #: src/pyams_default_theme/component/paragraph/html.py:35 msgid "Default raw HTML renderer" msgstr "Par défaut" @@ -113,88 +61,48 @@ msgid "Default rich text renderer" msgstr "Par défaut" -#: src/pyams_default_theme/component/paragraph/contact.py:85 -msgid "Default contact renderer" +#: src/pyams_default_theme/component/paragraph/verbatim.py:75 +msgid "Default verbatim renderer" msgstr "Encadré en pleine largeur (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/paragraph/verbatim.py:84 +#: src/pyams_default_theme/component/paragraph/frame.py:163 +msgid "Small frame on the left" +msgstr "Encadré placé sur la gauche" -#: src/pyams_default_theme/component/paragraph/portlet/__init__.py:40 -msgid "Default paragraphs renderer" +#: src/pyams_default_theme/component/paragraph/verbatim.py:95 +#: src/pyams_default_theme/component/paragraph/frame.py:174 +msgid "Small frame on the right" +msgstr "Encadré placé sur la droite" + +#: src/pyams_default_theme/component/paragraph/map.py:96 +msgid "Default map renderer" msgstr "Par défaut" -#: src/pyams_default_theme/component/paragraph/portlet/__init__.py:67 -msgid "Default paragraphs navigation" +#: src/pyams_default_theme/component/paragraph/keypoint.py:40 +msgid "Default key points renderer" msgstr "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/frame.py:152 +msgid "Default frame renderer" +msgstr "Encadré en pleine largeur (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/audio.py:40 +msgid "Default audio renderer" +msgstr "Par défaut" -#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:25 +#: src/pyams_default_theme/component/paragraph/interfaces/contact.py:29 #: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:22 -#: src/pyams_default_theme/component/paragraph/interfaces/contact.py:29 +#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:25 msgid "Left" msgstr "Gauche" -#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:26 +#: src/pyams_default_theme/component/paragraph/interfaces/contact.py:30 #: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:23 -#: src/pyams_default_theme/component/paragraph/interfaces/contact.py:30 +#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:26 msgid "Right" msgstr "Droite" -#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:27 -#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:24 -msgid "Center (full width)" -msgstr "Centré (pleine largeur)" - -#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:37 -msgid "Show associations?" -msgstr "Afficher les liens et pièces jointes ?" - -#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:38 -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:45 -msgid "Pictogram" -msgstr "Pictogramme" - -#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:46 -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:60 -#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:34 -msgid "Relative width" -msgstr "Largeur relative" - -#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:61 -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 bloc par rapport au bloc dans lequel il s'intègre. " -"Cette largeur est indiquée en nombre de colonnes, la largeur totale étant de " -"12 colonnes." - -#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:35 -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 bloc par rapport au bloc dans lequel il s'intègre. " -"Cette largeur est indiquée en nombre de colonnes, la largeur totale étant de " -"12 colonnes." - #: src/pyams_default_theme/component/paragraph/interfaces/contact.py:40 msgid "Show photo?" msgstr "Afficher la photo ?" @@ -223,6 +131,72 @@ msgid "Map position" msgstr "Position de la carte" +#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:24 +#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:27 +msgid "Center (full width)" +msgstr "Centré (pleine largeur)" + +#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:34 +#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:60 +msgid "Relative width" +msgstr "Largeur relative" + +#: src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:35 +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 bloc par rapport au bloc dans lequel il s'intègre. " +"Cette largeur est indiquée en nombre de colonnes, la largeur totale étant de " +"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:37 +msgid "Show associations?" +msgstr "Afficher les liens et pièces jointes ?" + +#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:38 +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:45 +msgid "Pictogram" +msgstr "Pictogramme" + +#: src/pyams_default_theme/component/paragraph/interfaces/frame.py:46 +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:61 +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 bloc par rapport au bloc dans lequel il s'intègre. " +"Cette largeur est indiquée en nombre de colonnes, la largeur totale étant de " +"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/portlet/__init__.py:67 +msgid "Default paragraphs navigation" +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:44 msgid "Default associations renderer" msgstr "Par défaut" @@ -269,47 +243,47 @@ "Si 'oui', seuls les blocs de contenu désignés comme ancres seront " "sélectionnés" -#: src/pyams_default_theme/shared/common/portlet/title.py:37 -msgid "Default title renderer" -msgstr "Par défaut" +#: src/pyams_default_theme/component/illustration/__init__.py:171 +msgid "Centered illustration before text" +msgstr "Illustration centrée avant le texte" -#: 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:182 +msgid "Small illustration on the left" +msgstr "Illustration sur la gauche" -#: 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:194 +msgid "Small illustration on the right" +msgstr "Illustration sur la droite" -#: 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/__init__.py:206 +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/portlet/__init__.py:38 -msgid "Simple vertical view" -msgstr "Liste verticale simple" +#: 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/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/features/footer/interfaces.py:31 +msgid "Copyright" +msgstr "Copyright" -#: src/pyams_default_theme/shared/site/portlet/__init__.py:34 -msgid "Site container summary" -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/logo/__init__.py:39 -msgid "Default logos renderer" -msgstr "Par défaut" +#: src/pyams_default_theme/features/footer/zmi/__init__.py:64 +msgid "Footer links" +msgstr "Liens du pied de page" -#: src/pyams_default_theme/viewlet/logo/templates/logo.pt:5 -msgid "Back home" -msgstr "Revenir à l'accueil" +#: 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/menu/portlet/navigation/__init__.py:49 msgid "Horizontal list with vertical illustrations" @@ -343,21 +317,10 @@ 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/search/__init__.py:64 +#: src/pyams_default_theme/shared/site/folder.py:54 +msgid "Consult folder" +msgstr "Consulter la rubrique" #: src/pyams_default_theme/features/header/interfaces.py:31 msgid "Banner image" @@ -383,6 +346,53 @@ 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/summary.py:38 +#: src/pyams_default_theme/shared/site/link.py:62 +msgid "Consult content" +msgstr "Accéder au contenu" + +#: src/pyams_default_theme/shared/common/portlet/title.py:37 +msgid "Default title renderer" +msgstr "Par défaut" + +#: src/pyams_default_theme/shared/common/portlet/head.py:38 +msgid "Default header renderer" +msgstr "Par défaut" + +#: src/pyams_default_theme/shared/site/portlet/__init__.py:35 +msgid "Site container summary" +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 "Show illustration?" #~ msgstr "Afficher l'illustration ?" diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/locales/pyams_default_theme.pot --- a/src/pyams_default_theme/locales/pyams_default_theme.pot Wed Nov 07 17:49:55 2018 +0100 +++ b/src/pyams_default_theme/locales/pyams_default_theme.pot Wed Nov 07 18:25:36 2018 +0100 @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE 1.0\n" -"POT-Creation-Date: 2018-10-22 16:36+0200\n" +"POT-Creation-Date: 2018-11-07 18:22+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" @@ -20,10 +20,6 @@ msgid "PyAMS default skin" msgstr "" -#: ./src/pyams_default_theme/component/gallery/__init__.py:34 -msgid "Default gallery renderer" -msgstr "" - #: ./src/pyams_default_theme/component/keynumber/__init__.py:53 msgid "Default key numbers renderer" msgstr "" @@ -36,71 +32,25 @@ msgid "Vertical list" msgstr "" -#: ./src/pyams_default_theme/component/illustration/__init__.py:171 -msgid "Centered illustration before text" -msgstr "" - -#: ./src/pyams_default_theme/component/illustration/__init__.py:182 -msgid "Small illustration on the left" -msgstr "" - -#: ./src/pyams_default_theme/component/illustration/__init__.py:194 -msgid "Small illustration on the right" -msgstr "" - -#: ./src/pyams_default_theme/component/illustration/__init__.py:206 -msgid "Centered illustration after text" -msgstr "" - -#: ./src/pyams_default_theme/component/illustration/interfaces/__init__.py:41 -msgid "Zoom on click?" +#: ./src/pyams_default_theme/component/gallery/__init__.py:34 +msgid "Default gallery renderer" msgstr "" -#: ./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" +#: ./src/pyams_default_theme/component/video/__init__.py:41 +#: ./src/pyams_default_theme/component/paragraph/video.py:40 +msgid "Default video renderer" msgstr "" -#: ./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" +#: ./src/pyams_default_theme/component/paragraph/contact.py:85 +msgid "Default contact renderer" msgstr "" #: ./src/pyams_default_theme/component/paragraph/pictogram.py:34 msgid "Default pictograms renderer" msgstr "" -#: ./src/pyams_default_theme/component/paragraph/audio.py:40 -msgid "Default audio renderer" -msgstr "" - -#: ./src/pyams_default_theme/component/paragraph/frame.py:152 -msgid "Default frame renderer" -msgstr "" - -#: ./src/pyams_default_theme/component/paragraph/frame.py:163 -#: ./src/pyams_default_theme/component/paragraph/verbatim.py:84 -msgid "Small frame on the left" -msgstr "" - -#: ./src/pyams_default_theme/component/paragraph/frame.py:174 -#: ./src/pyams_default_theme/component/paragraph/verbatim.py:95 -msgid "Small frame on the right" -msgstr "" - -#: ./src/pyams_default_theme/component/paragraph/verbatim.py:75 -msgid "Default verbatim renderer" +#: ./src/pyams_default_theme/component/paragraph/milestone.py:38 +msgid "Default milestones renderer" msgstr "" #: ./src/pyams_default_theme/component/paragraph/html.py:35 @@ -111,80 +61,48 @@ msgid "Default rich text renderer" msgstr "" -#: ./src/pyams_default_theme/component/paragraph/contact.py:85 -msgid "Default contact renderer" +#: ./src/pyams_default_theme/component/paragraph/verbatim.py:75 +msgid "Default verbatim renderer" msgstr "" -#: ./src/pyams_default_theme/component/paragraph/zmi/map.py:62 -msgid "Don't use default map configuration" +#: ./src/pyams_default_theme/component/paragraph/verbatim.py:84 +#: ./src/pyams_default_theme/component/paragraph/frame.py:163 +msgid "Small frame on the left" msgstr "" -#: ./src/pyams_default_theme/component/paragraph/portlet/__init__.py:40 -msgid "Default paragraphs renderer" +#: ./src/pyams_default_theme/component/paragraph/verbatim.py:95 +#: ./src/pyams_default_theme/component/paragraph/frame.py:174 +msgid "Small frame on the right" msgstr "" -#: ./src/pyams_default_theme/component/paragraph/portlet/__init__.py:67 -msgid "Default paragraphs navigation" +#: ./src/pyams_default_theme/component/paragraph/map.py:96 +msgid "Default map renderer" msgstr "" -#: ./src/pyams_default_theme/component/paragraph/interfaces/map.py:34 -msgid "Don't use default configuration?" +#: ./src/pyams_default_theme/component/paragraph/keypoint.py:40 +msgid "Default key points renderer" msgstr "" -#: ./src/pyams_default_theme/component/paragraph/interfaces/map.py:38 -msgid "Use default configuration?" +#: ./src/pyams_default_theme/component/paragraph/frame.py:152 +msgid "Default frame renderer" msgstr "" -#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:25 +#: ./src/pyams_default_theme/component/paragraph/audio.py:40 +msgid "Default audio renderer" +msgstr "" + +#: ./src/pyams_default_theme/component/paragraph/interfaces/contact.py:29 #: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:22 -#: ./src/pyams_default_theme/component/paragraph/interfaces/contact.py:29 +#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:25 msgid "Left" msgstr "" -#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:26 +#: ./src/pyams_default_theme/component/paragraph/interfaces/contact.py:30 #: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:23 -#: ./src/pyams_default_theme/component/paragraph/interfaces/contact.py:30 +#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:26 msgid "Right" msgstr "" -#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:27 -#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:24 -msgid "Center (full width)" -msgstr "" - -#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:37 -msgid "Show associations?" -msgstr "" - -#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:38 -msgid "If 'no', associations will not be displayed" -msgstr "" - -#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:45 -msgid "Pictogram" -msgstr "" - -#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:46 -msgid "Name of the pictogram associated with this frame paragraph" -msgstr "" - -#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:60 -#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:34 -msgid "Relative width" -msgstr "" - -#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:61 -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:35 -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 "" @@ -209,6 +127,64 @@ msgid "Map position" msgstr "" +#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:24 +#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:27 +msgid "Center (full width)" +msgstr "" + +#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:34 +#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:60 +msgid "Relative width" +msgstr "" + +#: ./src/pyams_default_theme/component/paragraph/interfaces/verbatim.py:35 +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:37 +msgid "Show associations?" +msgstr "" + +#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:38 +msgid "If 'no', associations will not be displayed" +msgstr "" + +#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:45 +msgid "Pictogram" +msgstr "" + +#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:46 +msgid "Name of the pictogram associated with this frame paragraph" +msgstr "" + +#: ./src/pyams_default_theme/component/paragraph/interfaces/frame.py:61 +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/portlet/__init__.py:67 +msgid "Default paragraphs navigation" +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:44 msgid "Default associations renderer" msgstr "" @@ -251,44 +227,44 @@ msgid "If 'yes', only paragraphs set as 'anchors' will be selected" msgstr "" -#: ./src/pyams_default_theme/shared/common/portlet/title.py:37 -msgid "Default title renderer" +#: ./src/pyams_default_theme/component/illustration/__init__.py:171 +msgid "Centered illustration before text" msgstr "" -#: ./src/pyams_default_theme/shared/common/portlet/head.py:38 -msgid "Default header renderer" +#: ./src/pyams_default_theme/component/illustration/__init__.py:182 +msgid "Small illustration on the left" msgstr "" -#: ./src/pyams_default_theme/shared/view/templates/render.pt:2 -msgid "View result items" +#: ./src/pyams_default_theme/component/illustration/__init__.py:194 +msgid "Small illustration on the right" msgstr "" -#: ./src/pyams_default_theme/shared/view/templates/render.pt:3 -msgid "WARNING: items displayed in this preview are out of context!!" +#: ./src/pyams_default_theme/component/illustration/__init__.py:206 +msgid "Centered illustration after text" msgstr "" -#: ./src/pyams_default_theme/shared/view/portlet/__init__.py:38 -msgid "Simple vertical view" +#: ./src/pyams_default_theme/component/illustration/interfaces/__init__.py:41 +msgid "Zoom on click?" msgstr "" -#: ./src/pyams_default_theme/shared/imagemap/__init__.py:58 -msgid "Default imagemap 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/shared/imagemap/templates/render.pt:2 -msgid "Image map preview" +#: ./src/pyams_default_theme/features/footer/interfaces.py:31 +msgid "Copyright" msgstr "" -#: ./src/pyams_default_theme/shared/site/portlet/__init__.py:34 -msgid "Site container summary" +#: ./src/pyams_default_theme/features/footer/interfaces.py:32 +msgid "Copyright mention displayed in page footer" msgstr "" -#: ./src/pyams_default_theme/shared/logo/__init__.py:39 -msgid "Default logos renderer" +#: ./src/pyams_default_theme/features/footer/zmi/__init__.py:64 +msgid "Footer links" msgstr "" -#: ./src/pyams_default_theme/viewlet/logo/templates/logo.pt:5 -msgid "Back home" +#: ./src/pyams_default_theme/features/footer/skin/__init__.py:50 +msgid "PyAMS simple footer with links" msgstr "" #: ./src/pyams_default_theme/features/menu/portlet/navigation/__init__.py:49 @@ -323,20 +299,9 @@ 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" +#: ./src/pyams_default_theme/features/search/__init__.py:64 +#: ./src/pyams_default_theme/shared/site/folder.py:54 +msgid "Consult folder" msgstr "" #: ./src/pyams_default_theme/features/header/interfaces.py:31 @@ -362,3 +327,48 @@ #: ./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/summary.py:38 +#: ./src/pyams_default_theme/shared/site/link.py:62 +msgid "Consult content" +msgstr "" + +#: ./src/pyams_default_theme/shared/common/portlet/title.py:37 +msgid "Default title renderer" +msgstr "" + +#: ./src/pyams_default_theme/shared/common/portlet/head.py:38 +msgid "Default header renderer" +msgstr "" + +#: ./src/pyams_default_theme/shared/site/portlet/__init__.py:35 +msgid "Site container summary" +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 "" diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/shared/common/__init__.py --- a/src/pyams_default_theme/shared/common/__init__.py Wed Nov 07 17:49:55 2018 +0100 +++ b/src/pyams_default_theme/shared/common/__init__.py Wed Nov 07 18:25:36 2018 +0100 @@ -14,9 +14,8 @@ from zope.interface import Interface -from pyams_content.interfaces import IBaseContent from pyams_content.shared.common.interfaces import IWfSharedContent -from pyams_default_theme.interfaces import IContentDate, IContentNavigationTitle, IContentTag +from pyams_default_theme.interfaces import IContentDate, IContentTag from pyams_i18n.interfaces import II18n from pyams_skin.interfaces.metas import IHTMLContentMetas from pyams_skin.layer import IPyAMSUserLayer @@ -44,24 +43,6 @@ yield ContentMeta('description', description) -@adapter_config(context=(IBaseContent, IPyAMSUserLayer), provides=IContentNavigationTitle) -def shared_content_navigation_title(context, request): - """Default content navigation title adapter""" - return II18n(context).query_attribute('title', request=request) - - -@adapter_config(name='pyams_title', - context=(Interface, Interface, Interface), - provides=ITALESExtension) -class PyAMSContentTitleTALESExtension(ContextRequestViewAdapter): - """PyAMS content title TALES extension""" - - def render(self, context=None): - if context is None: - context = self.context - return self.request.registry.queryMultiAdapter((context, self.request), IContentNavigationTitle) - - @adapter_config(context=(IWfSharedContent, IPyAMSUserLayer), provides=IContentTag) def shared_content_tag_adapter(context, request): """Default shared content tag adapter""" diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/shared/common/navigation.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_default_theme/shared/common/navigation.py Wed Nov 07 18:25:36 2018 +0100 @@ -0,0 +1,54 @@ +# +# Copyright (c) 2008-2018 Thierry Florac +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# + +__docformat__ = 'restructuredtext' + +from zope.interface import Interface + +from pyams_content.interfaces import IBaseContent +from pyams_content.shared.common import ISharedContent +from pyams_default_theme.interfaces import IContentNavigationTitle +from pyams_content.shared.site import ISiteElementNavigation +from pyams_i18n.interfaces import II18n +from pyams_skin.layer import IPyAMSUserLayer +from pyams_utils.adapter import ContextRequestAdapter, ContextRequestViewAdapter, adapter_config +from pyams_utils.interfaces.tales import ITALESExtension +from pyams_workflow.interfaces import IWorkflowPublicationInfo + + +@adapter_config(context=(IBaseContent, IPyAMSUserLayer), provides=IContentNavigationTitle) +def shared_content_navigation_title(context, request): + """Default content navigation title adapter""" + return II18n(context).query_attribute('title', request=request) + + +@adapter_config(name='pyams_title', + context=(Interface, Interface, Interface), + provides=ITALESExtension) +class PyAMSContentTitleTALESExtension(ContextRequestViewAdapter): + """PyAMS content title TALES extension""" + + def render(self, context=None): + if context is None: + context = self.context + return self.request.registry.queryMultiAdapter((context, self.request), IContentNavigationTitle) + + +@adapter_config(context=(ISharedContent, IPyAMSUserLayer), provides=ISiteElementNavigation) +class SharedContentNavigationAdapter(ContextRequestAdapter): + """Shared content navigation adapter""" + + @property + def visible(self): + version = self.context.published_version + if version is not None: + return IWorkflowPublicationInfo(version).is_visible(self.request) diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/shared/common/oid.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_default_theme/shared/common/oid.py Wed Nov 07 18:25:36 2018 +0100 @@ -0,0 +1,51 @@ +# +# Copyright (c) 2008-2018 Thierry Florac +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# + +__docformat__ = 'restructuredtext' + +from pyramid.exceptions import NotFound +from zope.interface import Interface +from zope.traversing.interfaces import ITraversable + +from pyams_sequence.interfaces import ISequentialIntIds +from pyams_sequence.reference import get_reference_target +from pyams_skin.layer import IPyAMSUserLayer +from pyams_utils.adapter import ContextRequestAdapter, adapter_config +from pyams_utils.interfaces.url import DISPLAY_CONTEXT +from pyams_utils.registry import get_utility +from pyams_workflow.interfaces import IWorkflow, IWorkflowVersions + + +@adapter_config(name='oid', context=(Interface, IPyAMSUserLayer), provides=ITraversable) +class OidTraverser(ContextRequestAdapter): + """++oid++ traverser""" + + def traverse(self, name, furtherpath=None): + if not name: + raise NotFound() + if '::' in name: + oid, label = name.split('::', 1) + else: + oid = name + sequence = get_utility(ISequentialIntIds) + reference = sequence.get_full_oid(oid) + target = get_reference_target(reference) + if target is not None: + workflow = IWorkflow(target, None) + if workflow is not None: + versions = IWorkflowVersions(target).get_versions(workflow.published_states, sort=True) + if versions: + target = versions[-1] + if target is not None: + self.request.annotations[DISPLAY_CONTEXT] = self.context + return target + raise NotFound() diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/shared/common/opengraph.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_default_theme/shared/common/opengraph.py Wed Nov 07 18:25:36 2018 +0100 @@ -0,0 +1,93 @@ +# +# Copyright (c) 2008-2018 Thierry Florac +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# + +__docformat__ = 'restructuredtext' + +from zope.dublincore.interfaces import IZopeDublinCore +from zope.interface import Interface + +from pyams_content.component.illustration import IIllustration, IIllustrationTarget +from pyams_content.component.theme import ITagsInfo +from pyams_content.shared.common import IWfSharedContent +from pyams_file.interfaces import IThumbnails +from pyams_i18n.interfaces import II18n, II18nManager, INegotiator +from pyams_skin.interfaces.configuration import IConfiguration +from pyams_skin.interfaces.metas import IHTMLContentMetas +from pyams_skin.layer import IPyAMSUserLayer +from pyams_skin.metas import PropertyMeta +from pyams_utils.adapter import ContextRequestViewAdapter, adapter_config +from pyams_utils.registry import get_utility +from pyams_utils.traversing import get_parent +from pyams_utils.url import absolute_url, canonical_url +from pyams_workflow.interfaces import IWorkflowPublicationInfo + + +@adapter_config(name='opengraph', context=(IWfSharedContent, IPyAMSUserLayer, Interface), provides=IHTMLContentMetas) +class OpengraphSharedContentMetasAdapter(ContextRequestViewAdapter): + """Opengraph shared content metas adapter""" + + order = 15 + + def get_metas(self): + context = self.context + i18n = II18n(context) + request = self.request + negotiator = get_utility(INegotiator) + lang = negotiator.server_language + # main properties + yield PropertyMeta('og:title', i18n.query_attribute('title', lang=lang, request=request)) + yield PropertyMeta('og:description', i18n.query_attribute('description', lang=lang, request=request) or '') + yield PropertyMeta('og:type', 'article') + # workflow informations + dc = IZopeDublinCore(context, None) + if (dc is not None) and dc.modified: + yield PropertyMeta('article:modified_time', dc.modified.isoformat()) + pub_info = IWorkflowPublicationInfo(context, None) + if pub_info is not None: + if pub_info.first_publication_date: + yield PropertyMeta('article:published_time', pub_info.first_publication_date.isoformat()) + if pub_info.publication_expiration_date: + yield PropertyMeta('article:expiration_time', pub_info.publication_expiration_date.isoformat()) + # tags + tags = ITagsInfo(context, None) + if tags is not None: + for tag in tags.tags or (): + yield PropertyMeta('article:tag', tag.label) + # URL and site name + yield PropertyMeta('og:url', canonical_url(context, request)) + configuration = IConfiguration(request.root) + yield PropertyMeta('og:site_name', configuration.title) + # illustration properties + registry = request.registry + illustration = None + target = context + while target is not None: + illustration = registry.queryAdapter(target, IIllustration, name='link') + if (illustration is None) or (not illustration.has_data()): + illustration = registry.queryAdapter(target, IIllustration) + if (illustration is not None) and illustration.has_data(): + break + target = get_parent(target, IIllustrationTarget, allow_context=False) + if (target is not None) and (illustration is not None): + data = II18n(illustration).query_attribute('data', lang=lang, request=request) + thumbnail = IThumbnails(data).get_thumbnail('800x600') + yield PropertyMeta('og:image:url', absolute_url(thumbnail, self.request)) + yield PropertyMeta('og:image:type', thumbnail.content_type) + image_size = thumbnail.image_size + yield PropertyMeta('og:image:width', image_size[0]) + yield PropertyMeta('og:image:height', image_size[1]) + yield PropertyMeta('og:image:alt', II18n(illustration).query_attribute('alt_title', lang=lang, + request=request)) + # locales properties + yield PropertyMeta('og:locale', lang) + for lang in II18nManager(context).languages or (): + yield PropertyMeta('og:locale:alternate', lang) diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/shared/common/summary.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_default_theme/shared/common/summary.py Wed Nov 07 18:25:36 2018 +0100 @@ -0,0 +1,46 @@ +# +# Copyright (c) 2008-2018 Thierry Florac +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# + +__docformat__ = 'restructuredtext' + +from pyams_content.shared.common import ISharedContent, IWfSharedContent +from pyams_default_theme.interfaces import IContentSummaryInfo +from pyams_i18n.interfaces import II18n +from pyams_skin.layer import IPyAMSUserLayer +from pyams_utils.adapter import ContextRequestAdapter, adapter_config + +from pyams_content import _ + + +@adapter_config(context=(IWfSharedContent, IPyAMSUserLayer), provides=IContentSummaryInfo) +class WfSharedContentSummaryInfo(ContextRequestAdapter): + """Shared content summary info adapter""" + + @property + def title(self): + return II18n(self.context).query_attribute('title', request=self.request) + + @property + def header(self): + return II18n(self.context).query_attribute('header', request=self.request) + + @property + def button_title(self): + return _("Consult content") + + +@adapter_config(context=(ISharedContent, IPyAMSUserLayer), provides=IContentSummaryInfo) +def shared_content_summary_adapter(context, request): + """Shared content summary adapter""" + version = context.published_version + if version is not None: + return request.registry.queryMultiAdapter((version, request), IContentSummaryInfo) diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/shared/common/url.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_default_theme/shared/common/url.py Wed Nov 07 18:25:36 2018 +0100 @@ -0,0 +1,43 @@ +# +# Copyright (c) 2008-2018 Thierry Florac +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# + +__docformat__ = 'restructuredtext' + +from pyams_content.shared.common import ISharedContent, IWfSharedContent +from pyams_sequence.interfaces import ISequentialIdInfo +from pyams_skin.layer import IPyAMSUserLayer +from pyams_utils.adapter import ContextRequestAdapter, adapter_config +from pyams_utils.interfaces.url import IRelativeURL +from pyams_utils.url import absolute_url, relative_url + + +@adapter_config(context=(IWfSharedContent, IPyAMSUserLayer), provides=IRelativeURL) +class WfSharedContentRelativeUrlAdapter(ContextRequestAdapter): + """Workflow managed shared content relative URL adapter""" + + def get_url(self, display_context=None, view_name=None, query=None): + return absolute_url(display_context, self.request, + '++oid++{0}::{1}{2}{3}'.format( + ISequentialIdInfo(self.context).get_base_oid().strip(), + self.context.content_url, + '/{}'.format(view_name) if view_name else '.html', + '?{}'.format(query) if query else '')) + + +@adapter_config(context=(ISharedContent, IPyAMSUserLayer), provides=IRelativeURL) +class SharedContentRelativeURLAdapter(ContextRequestAdapter): + """Shared content relative URL adapter""" + + def get_url(self, display_context=None, view_name=None, query=None): + version = self.context.published_version + if version is not None: + return relative_url(version, self.request, display_context, view_name, query) diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/shared/site/folder.py --- a/src/pyams_default_theme/shared/site/folder.py Wed Nov 07 17:49:55 2018 +0100 +++ b/src/pyams_default_theme/shared/site/folder.py Wed Nov 07 18:25:36 2018 +0100 @@ -12,8 +12,9 @@ __docformat__ = 'restructuredtext' +from pyams_content.shared.site.interfaces import ISiteFolder +from pyams_default_theme.interfaces import IContentSummaryInfo from pyams_content.shared.site import ISiteElementNavigation -from pyams_content.shared.site.interfaces import IContentSummaryInfo, ISiteFolder from pyams_i18n.interfaces import II18n from pyams_skin.layer import IPyAMSUserLayer from pyams_utils.adapter import ContextRequestAdapter, adapter_config diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/shared/site/link.py --- a/src/pyams_default_theme/shared/site/link.py Wed Nov 07 17:49:55 2018 +0100 +++ b/src/pyams_default_theme/shared/site/link.py Wed Nov 07 18:25:36 2018 +0100 @@ -12,7 +12,8 @@ __docformat__ = 'restructuredtext' -from pyams_content.shared.site.interfaces import IContentLink, IContentSummaryInfo +from pyams_content.shared.site.interfaces import IContentLink +from pyams_default_theme.interfaces import IContentSummaryInfo from pyams_i18n.interfaces import II18n from pyams_skin.layer import IPyAMSUserLayer from pyams_utils.adapter import ContextRequestAdapter, adapter_config diff -r b1854f5a7be6 -r 40bffafce365 src/pyams_default_theme/shared/site/portlet/__init__.py --- a/src/pyams_default_theme/shared/site/portlet/__init__.py Wed Nov 07 17:49:55 2018 +0100 +++ b/src/pyams_default_theme/shared/site/portlet/__init__.py Wed Nov 07 18:25:36 2018 +0100 @@ -14,7 +14,8 @@ from zope.interface import Interface -from pyams_content.shared.site.interfaces import IContentSummaryInfo, ISiteContainer +from pyams_content.shared.site.interfaces import ISiteContainer +from pyams_default_theme.interfaces import IContentSummaryInfo from pyams_content.shared.site.portlet import ISiteContainerSummaryPortletSettings from pyams_portal.interfaces import IPortalContext, IPortletRenderer from pyams_portal.portlet import PortletRenderer