[Checkins] SVN: grokui.base/trunk/src/grokui/base/ Adding the viewlets and templates

Souheil CHELFOUH souheil at chelfouh.com
Fri Sep 18 06:29:19 EDT 2009


Log message for revision 104292:
  Adding the viewlets and templates
  

Changed:
  A   grokui.base/trunk/src/grokui/base/messages.py
  A   grokui.base/trunk/src/grokui/base/templates/
  A   grokui.base/trunk/src/grokui/base/templates/administrationauthors.pt
  A   grokui.base/trunk/src/grokui/base/templates/administrationbanner.pt
  A   grokui.base/trunk/src/grokui/base/templates/administrationmenuviewlet.pt
  A   grokui.base/trunk/src/grokui/base/templates/adminlayout.pt
  A   grokui.base/trunk/src/grokui/base/templates/grokrelax.pt
  A   grokui.base/trunk/src/grokui/base/templates/logininformation.pt
  A   grokui.base/trunk/src/grokui/base/viewlets.py

-=-
Added: grokui.base/trunk/src/grokui/base/messages.py
===================================================================
--- grokui.base/trunk/src/grokui/base/messages.py	                        (rev 0)
+++ grokui.base/trunk/src/grokui/base/messages.py	2009-09-18 10:29:18 UTC (rev 104292)
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+
+import grok
+
+from zope.interface import Interface
+from zope.component import getUtility
+from z3c.flashmessage.message import PersistentMessage
+from z3c.flashmessage.sources import SessionMessageSource
+from z3c.flashmessage.receiver import GlobalMessageReceiver
+from z3c.flashmessage.interfaces import IMessageReceiver, IMessageSource
+
+
+class AdminMessageSource(grok.GlobalUtility):
+    """Source for the administration messages
+    """
+    grok.name('admin')
+    grok.implements(IMessageSource)
+
+    message = None
+
+    def send(self, message, type='admin'):
+        self.message = PersistentMessage(message, type)
+
+    def list(self, type=None):
+        if self.message is None:
+            return
+        if type is None or self.message.type == type:
+            yield self.message
+
+    def delete(self, message):
+        if message is self.message:
+            self.message = None
+        else:
+            raise KeyError(message)
+
+
+class Messages(grok.View):
+    """Messages render.
+    """
+    grok.context(Interface)
+
+    @property
+    def messages(self):
+        receiver = getUtility(IMessageReceiver)
+        return receiver.receive()
+
+
+grok.global_utility(GlobalMessageReceiver)
+grok.global_utility(SessionMessageSource, name='session')
+

Added: grokui.base/trunk/src/grokui/base/templates/administrationauthors.pt
===================================================================
--- grokui.base/trunk/src/grokui/base/templates/administrationauthors.pt	                        (rev 0)
+++ grokui.base/trunk/src/grokui/base/templates/administrationauthors.pt	2009-09-18 10:29:18 UTC (rev 104292)
@@ -0,0 +1,3 @@
+      <div>
+	<p id="footer-copyright">&copy; Copyright 2007, The Zope Foundation<br />Design inspired by Sebastian Ware</p>
+      </div>
\ No newline at end of file

Added: grokui.base/trunk/src/grokui/base/templates/administrationbanner.pt
===================================================================
--- grokui.base/trunk/src/grokui/base/templates/administrationbanner.pt	                        (rev 0)
+++ grokui.base/trunk/src/grokui/base/templates/administrationbanner.pt	2009-09-18 10:29:18 UTC (rev 104292)
@@ -0,0 +1,6 @@
+<div id="banner">
+  <a href="/" id="logo">
+    <img alt="Grok" src="images/grok-admin.jpg" height="40"
+	 tal:attributes="src view/static/grok-admin.jpg" />
+  </a>
+</div>

Added: grokui.base/trunk/src/grokui/base/templates/administrationmenuviewlet.pt
===================================================================
--- grokui.base/trunk/src/grokui/base/templates/administrationmenuviewlet.pt	                        (rev 0)
+++ grokui.base/trunk/src/grokui/base/templates/administrationmenuviewlet.pt	2009-09-18 10:29:18 UTC (rev 104292)
@@ -0,0 +1,12 @@
+<dl class="display-menu incontext-action" tal:condition="viewlet/actions">
+  <dd>
+    <ul>
+      <li tal:repeat="action viewlet/actions">
+	<a href="" tal:content="action/title"
+	   tal:attributes="href string:${viewlet/contexturl}/${action/action};
+			   title action/title;"
+	   />
+      </li>
+    </ul>
+  </dd>
+</dl>

Added: grokui.base/trunk/src/grokui/base/templates/adminlayout.pt
===================================================================
--- grokui.base/trunk/src/grokui/base/templates/adminlayout.pt	                        (rev 0)
+++ grokui.base/trunk/src/grokui/base/templates/adminlayout.pt	2009-09-18 10:29:18 UTC (rev 104292)
@@ -0,0 +1,21 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+      i18n:domain="zope"
+      metal:define-macro="gaia-page">
+  <head>
+    <title
+      metal:define-slot="title"
+      >grok administration interface</title>
+    <link metal:define-slot="header"
+      rel="stylesheet" type="text/css" href="static/grok.css"
+      tal:on-error="nothing"
+      tal:attributes="href view/static/grok.css" />
+
+  </head>
+
+  <body>
+    <tal:header replace="structure provider:grokui_admin_header" />
+    <div id="content"
+	 tal:content="structure view/content" />
+    <tal:header replace="structure provider:grokui_admin_footer" />
+  </body>
+</html>

Added: grokui.base/trunk/src/grokui/base/templates/grokrelax.pt
===================================================================
--- grokui.base/trunk/src/grokui/base/templates/grokrelax.pt	                        (rev 0)
+++ grokui.base/trunk/src/grokui/base/templates/grokrelax.pt	2009-09-18 10:29:18 UTC (rev 104292)
@@ -0,0 +1,4 @@
+<div id="fireplace">
+  <img alt="grok_relax_image" src="images/grok-relax5.gif"
+       tal:attributes="src view/static/grok-relax5.gif" />
+</div>

Added: grokui.base/trunk/src/grokui/base/templates/logininformation.pt
===================================================================
--- grokui.base/trunk/src/grokui/base/templates/logininformation.pt	                        (rev 0)
+++ grokui.base/trunk/src/grokui/base/templates/logininformation.pt	2009-09-18 10:29:18 UTC (rev 104292)
@@ -0,0 +1,8 @@
+<div id="logout" metal:define-macro="logged_user">
+  <span tal:condition="viewlet/is_authenticated">
+    <span i18n:translate="">User:
+    <span tal:replace="request/principal/title"
+	  i18n:name="user_title">User</span>
+    </span>
+  </span>
+</div>

Added: grokui.base/trunk/src/grokui/base/viewlets.py
===================================================================
--- grokui.base/trunk/src/grokui/base/viewlets.py	                        (rev 0)
+++ grokui.base/trunk/src/grokui/base/viewlets.py	2009-09-18 10:29:18 UTC (rev 104292)
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+
+import grok
+from zope.app.folder.interfaces import IRootFolder
+from grokui.base.contentproviders import AdministrationHeader, AdministrationFooter
+from zope.component import getUtility
+from zope.traversing.browser.absoluteurl import absoluteURL
+from zope.app.publisher.interfaces.browser import IBrowserMenu
+from zope.app.security.interfaces import IUnauthenticatedPrincipal
+
+grok.context(IRootFolder)
+grok.templatedir("templates")
+grok.viewletmanager(AdministrationHeader)
+
+
+class AdministrationMenuViewlet(grok.Viewlet):
+    grok.order(40)
+    grok.name("admin_menu")
+
+    def update(self):
+        self.contexturl = absoluteURL(self.context, self.request)
+        menu = getUtility(IBrowserMenu, 'grokui_admin_menu')
+        self.actions = menu.getMenuItems(self.context, self.request)
+    
+
+class AdministrationBanner(grok.Viewlet):
+    grok.order(10)
+    grok.name('admin_banner')
+
+    
+class GrokRelax(grok.Viewlet):
+    grok.order(20)
+    grok.name('admin_decoration')
+
+
+class Messages(grok.Viewlet):
+    grok.order(40)
+    grok.name('admin_messages')
+
+
+class LoginInformation(grok.Viewlet):
+    grok.order(30)
+    grok.name('admin_login')
+
+    @property
+    def is_authenticated(self):
+        """Check, wether we are authenticated.
+        """
+        return not IUnauthenticatedPrincipal.providedBy(self.request.principal)
+
+    
+class AdministrationAuthors(grok.Viewlet):
+    grok.order(10)
+    grok.name('admin_authors')
+    grok.viewletmanager(AdministrationFooter)



More information about the checkins mailing list