Added script meta base class
authorThierry Florac <tflorac@ulthar.net>
Fri, 31 Jan 2020 12:08:47 +0100
changeset 4 7561b24c28c1
parent 3 40834e55f1d1
child 5 eefb1df54405
Added script meta base class
src/ztfy/baseskin/interfaces/metas.py
src/ztfy/baseskin/locales/fr/LC_MESSAGES/ztfy.baseskin.po
src/ztfy/baseskin/metas.py
--- a/src/ztfy/baseskin/interfaces/metas.py	Wed Nov 25 10:38:26 2015 +0100
+++ b/src/ztfy/baseskin/interfaces/metas.py	Fri Jan 31 12:08:47 2020 +0100
@@ -71,6 +71,10 @@
     href = Attribute(_("Meta link target"))
 
 
+class IScriptMetaHeader(IBaseMeta):
+    """Script meta header interface"""
+
+
 class IContentMetasHeaders(Interface):
     """Content metas headers interface"""
 
--- a/src/ztfy/baseskin/locales/fr/LC_MESSAGES/ztfy.baseskin.po	Wed Nov 25 10:38:26 2015 +0100
+++ b/src/ztfy/baseskin/locales/fr/LC_MESSAGES/ztfy.baseskin.po	Fri Jan 31 12:08:47 2020 +0100
@@ -1,4 +1,4 @@
-##############################################################################
+# #############################################################################
 #
 # Copyright (c) 2003-2004 Zope Foundation and Contributors.
 # All Rights Reserved.
@@ -10,7 +10,7 @@
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
 #
-##############################################################################
+# #############################################################################
 msgid ""
 msgstr ""
 "Project-Id-Version: Meaningless\n"
@@ -18,6 +18,7 @@
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Zope 3 Developers <zope-dev@zope.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -51,8 +52,8 @@
 "Name of the default view matching object, request and (optionally) current "
 "view"
 msgstr ""
-"Nom de la vue par défaut correspondant à l'objet, à la requête et (éventuellement) "
-"à la vue en cours"
+"Nom de la vue par défaut correspondant à l'objet, à la requête et "
+"(éventuellement) à la vue en cours"
 
 #: ztfy/baseskin/interfaces/__init__.py:73
 msgid "Default dialog CSS class"
@@ -136,8 +137,9 @@
 
 #: ztfy/baseskin/interfaces/form.py:158
 msgid "Set to true when form handle uploads to get progress bar"
-msgstr "Positionné à la valeur 'True' lorsque le formulaire dispose de contrôles de dépôt "
-"de fichiers de façon à afficher une barre d'avancement"
+msgstr ""
+"Positionné à la valeur 'True' lorsque le formulaire dispose de contrôles de "
+"dépôt de fichiers de façon à afficher une barre d'avancement"
 
 #: ztfy/baseskin/interfaces/form.py:162
 msgid "Widgets validation callbacks"
@@ -240,8 +242,8 @@
 "If 'Yes', a switchable group containing only widgets with default values is "
 "hidden"
 msgstr ""
-"Si 'Oui', un groupe 'basculable' ne contenant que des widgets avec des valeurs par "
-"défaut est masqué"
+"Si 'Oui', un groupe 'basculable' ne contenant que des widgets avec des "
+"valeurs par défaut est masqué"
 
 #: ztfy/baseskin/interfaces/metas.py:43
 msgid "HTTP equiv header"
--- a/src/ztfy/baseskin/metas.py	Wed Nov 25 10:38:26 2015 +0100
+++ b/src/ztfy/baseskin/metas.py	Fri Jan 31 12:08:47 2020 +0100
@@ -14,21 +14,14 @@
 ##############################################################################
 
 
-# import standard packages
-
-# import Zope3 interfaces
-
-# import local interfaces
-from ztfy.baseskin.interfaces.metas import IContentMetasHeaders, IContentMetaHeader, \
-    IHTTPEquivMetaHeader, IPropertyMetaHeader, \
-    ILinkMetaHeader, IPageMetasHeaders
-
-# import Zope3 packages
+from z3c.template.interfaces import IPageTemplate
+from z3c.template.template import getPageTemplate
 from zope.component import adapts, getAdapters
-from zope.interface import implements, Interface
-
-# import local packages
+from zope.component._api import getMultiAdapter
+from zope.interface import Interface, implements
 from ztfy.base.interfaces import IBaseContent
+from ztfy.baseskin.interfaces.metas import IContentMetaHeader, IContentMetasHeaders, \
+    IHTTPEquivMetaHeader, ILinkMetaHeader, IPageMetasHeaders, IPropertyMetaHeader, IScriptMetaHeader
 
 
 class ContentMeta(object):
@@ -89,6 +82,24 @@
                                                                                'href': self.href}
 
 
+class ScriptMeta(object):
+    """Script meta header, based on a template"""
+
+    implements(IScriptMetaHeader)
+
+    template = getPageTemplate()
+
+    def __init__(self, context, request):
+        self.context = context
+        self.request = request
+
+    def render(self):
+        if self.template is None:
+            template = getMultiAdapter((self, self.request), IPageTemplate)
+            return template(self)
+        return self.template()
+
+
 class ContentMetasAdapter(object):
     """Generic content metas adapter"""