[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">© 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