[Checkins] SVN: z3ext.layout/trunk/ - Log errors in @@pagelet

Nikolay Kim fafhrd at datacom.kz
Tue Oct 14 06:17:57 EDT 2008


Log message for revision 92186:
  - Log errors in @@pagelet
  
  - Default css styles
  
  
  

Changed:
  U   z3ext.layout/trunk/CHANGES.txt
  U   z3ext.layout/trunk/src/z3ext/layout/configure.zcml
  U   z3ext.layout/trunk/src/z3ext/layout/interfaces.py
  U   z3ext.layout/trunk/src/z3ext/layout/layoutportal.pt
  U   z3ext.layout/trunk/src/z3ext/layout/pagelet.py
  U   z3ext.layout/trunk/src/z3ext/layout/pagelet.txt
  A   z3ext.layout/trunk/src/z3ext/layout/styles.css
  A   z3ext.layout/trunk/src/z3ext/layout/styles.zcml

-=-
Modified: z3ext.layout/trunk/CHANGES.txt
===================================================================
--- z3ext.layout/trunk/CHANGES.txt	2008-10-14 05:19:58 UTC (rev 92185)
+++ z3ext.layout/trunk/CHANGES.txt	2008-10-14 10:17:55 UTC (rev 92186)
@@ -2,14 +2,16 @@
 CHANGES
 =======
 
-1.5.1 (2008-10-??)
+1.5.1 (2008-10-14)
 ------------------
 
 - Fixed missing NotFount in @@pagelet 
 
 - Log errors in @@pagelet
 
+- Default css styles
 
+
 1.5.0 (2008-10-06)
 ------------------
 

Modified: z3ext.layout/trunk/src/z3ext/layout/configure.zcml
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/configure.zcml	2008-10-14 05:19:58 UTC (rev 92185)
+++ z3ext.layout/trunk/src/z3ext/layout/configure.zcml	2008-10-14 10:17:55 UTC (rev 92186)
@@ -2,13 +2,13 @@
    xmlns="http://namespaces.zope.org/zope"
    xmlns:zcml="http://namespaces.zope.org/zcml"
    xmlns:z3ext="http://namespaces.zope.org/z3ext"
-   i18n_domain="z3ext">
+   i18n_domain="z3ext.layout">
 
   <includeDependencies package="z3ext.layout" />
 
   <!-- adapter provides IPagelet for (context, request) -->
   <adapter factory=".pagelet.queryPagelet" />
-  
+
   <!-- @@pagelet view -->
   <adapter
      name="pagelet"
@@ -64,4 +64,6 @@
        parent="z3ext" />
   </configure>
 
+  <include file="styles.zcml" />
+
 </configure>

Modified: z3ext.layout/trunk/src/z3ext/layout/interfaces.py
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/interfaces.py	2008-10-14 05:19:58 UTC (rev 92185)
+++ z3ext.layout/trunk/src/z3ext/layout/interfaces.py	2008-10-14 10:17:55 UTC (rev 92186)
@@ -40,6 +40,10 @@
         """Render the pagelet content w/o o-wrap."""
 
 
+class IPageletType(interface.interfaces.IInterface):
+    """ pagelet interface type """
+
+
 class ILayout(IBrowserPage):
     """ layout """
 

Modified: z3ext.layout/trunk/src/z3ext/layout/layoutportal.pt
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/layoutportal.pt	2008-10-14 05:19:58 UTC (rev 92185)
+++ z3ext.layout/trunk/src/z3ext/layout/layoutportal.pt	2008-10-14 10:17:55 UTC (rev 92186)
@@ -1,13 +1,13 @@
 <metal:block metal:use-macro="context/@@standard_macros/page">
-  <div id="z3ext-portal" metal:fill-slot="columns">
+  <div id="z-portal" metal:fill-slot="columns">
     <tal:block tal:content="structure provider:statusMessage" />
     <tal:block tal:content="structure view/render" />
   </div>
-  <div id="z3ext-portal" metal:fill-slot="workspace">
+  <div id="z-portal" metal:fill-slot="workspace">
     <tal:block tal:content="structure provider:statusMessage" />
     <tal:block tal:content="structure view/render" />
   </div>
-  <div id="z3ext-portal" metal:fill-slot="body">
+  <div id="z-portal" metal:fill-slot="body">
     <tal:block tal:content="structure provider:statusMessage" />
     <tal:block tal:content="structure view/render" />
   </div>

Modified: z3ext.layout/trunk/src/z3ext/layout/pagelet.py
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/pagelet.py	2008-10-14 05:19:58 UTC (rev 92185)
+++ z3ext.layout/trunk/src/z3ext/layout/pagelet.py	2008-10-14 10:17:55 UTC (rev 92186)
@@ -17,6 +17,7 @@
 """
 import logging, sys
 from zope import interface, component
+from zope.component import queryUtility
 from zope.component import queryMultiAdapter
 from zope.publisher.browser import BrowserPage
 from zope.publisher.interfaces import NotFound
@@ -25,7 +26,7 @@
 from zope.pagetemplate.interfaces import IPageTemplate
 from zope.app.publisher.browser import queryDefaultViewName
 
-from z3ext.layout.interfaces import IPagelet, ILayout
+from z3ext.layout.interfaces import IPagelet, IPageletType, ILayout
 
 
 @interface.implementer(IPagelet)
@@ -107,16 +108,20 @@
     def publishTraverse(self, request, name):
         try:
             return self[name]
-        except Exception, err:
-            log = logging.getLogger('z3ext.content')
-            log.exception(err)
+        except KeyError:
+            pass
 
         raise NotFound(self.context, name, request)
 
     def __getitem__(self, name):
         if name:
-            iface, name = name.rsplit('.', 1)
-            iface = getattr(self.modules[iface], name)
+            iface = queryUtility(IPageletType, name)
+            if iface is None:
+                try:
+                    iface, iname = name.rsplit('.', 1)
+                    iface = getattr(self.modules[iface], iname)
+                except:
+                    raise KeyError(name)
         else:
             iface = IPagelet
 
@@ -126,7 +131,7 @@
                 view.update()
                 return view.render()
         except Exception, err:
-            log = logging.getLogger('z3ext.content')
+            log = logging.getLogger('z3ext.layout')
             log.exception(err)
 
         raise KeyError(name)

Modified: z3ext.layout/trunk/src/z3ext/layout/pagelet.txt
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/pagelet.txt	2008-10-14 05:19:58 UTC (rev 92185)
+++ z3ext.layout/trunk/src/z3ext/layout/pagelet.txt	2008-10-14 10:17:55 UTC (rev 92186)
@@ -246,8 +246,11 @@
   ...       template="%s"
   ...       provides="z3ext.layout.TESTS.IMyPagelet2"
   ...       permission="zope.Public" />
+  ...   <z3ext:pagelet
+  ...       template="%s"
+  ...       permission="zope.Public" />
   ... </configure>
-  ... """%(template, template2), context)
+  ... """%(template, template2, template2), context)
 
   >>> pagelet = component.queryMultiAdapter(
   ...     (object(), TestRequest()), ITestPagelet)
@@ -264,10 +267,34 @@
   >>> pagelet.render()
   u'<div>My pagelet2</div>'
 
+
 Access nameless pagelet from view
 
   >>> pagelet = component.getMultiAdapter((object(), request), name='pagelet')
 
   >>> print pagelet.publishTraverse(
+  ...     request, 'test.unknown')
+  Traceback (most recent call last):
+  ...
+  NotFound: Object: ..., name: 'test.unknown'
+
+  >>> pagelet.browserDefault(request)
+  (..., ('',))
+
+by default IPagelet
+
+  >>> print pagelet.publishTraverse(request, '')
+  <div>My pagelet2</div>
+
+  >>> print pagelet.publishTraverse(
   ...     request, 'z3ext.layout.tests.ITestPagelet')
   <div>My pagelet</div>
+
+We can register our marker interface as named utility and use name
+instead of full module path
+
+  >>> component.provideUtility(
+  ...     ITestPagelet, z3ext.layout.interfaces.IPageletType, name='testPageletType')
+
+  >>> print pagelet.publishTraverse(request, 'testPageletType')
+  <div>My pagelet</div>

Added: z3ext.layout/trunk/src/z3ext/layout/styles.css
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/styles.css	                        (rev 0)
+++ z3ext.layout/trunk/src/z3ext/layout/styles.css	2008-10-14 10:17:55 UTC (rev 92186)
@@ -0,0 +1,88 @@
+/* zrt-cssregistry: */
+
+ at media all {
+
+  .z-page, .page {
+    padding: 1.5em;
+    border: borderWidth borderStyle globalBorderColor;
+    border-top: borderWidth borderStyle globalBorderColor;
+    background-color: globalBackgroundColor;
+    font-size: 100%;
+  }
+
+  .z-page h1 {
+    padding-top: 0;
+  }
+
+  .z-page h4 {
+    border-bottom: borderWidth borderStyle globalBorderColor;
+  }
+
+  .z-page legend {
+    background-color: transparent;
+  }
+
+  .z-page-description,
+  .pageDescription {
+    color: discreetColor;
+    font-size: fontSmallSize;
+    font-weight: normal;
+    margin-bottom: 1.5em;
+  }
+
+  .z-frame, .z-topframe,
+  .frame, .topframe {
+    padding: 1em;
+    margin-top: 1em;
+    background: contentBackgroundColor;
+    border: borderWidth borderStyle globalExtraBorderColor;
+  }
+
+  .z-topframe, .topframe {
+    margin-top: 0em;
+  }
+
+  .z-frame h4 {
+    border-bottom: borderWidth borderStyle globalExtraBorderColor;
+    font-weight: normal;
+  }
+
+  #z-portal {
+    background-color: contentBackgroundColor;
+  }
+
+  #z-portal-workspace {
+    margin: 2em 1.5em 1.5em 1.5em;
+  }
+
+  #z-portal-workspace {
+    font-size: 110%;
+    background: contentBackgroundColor;
+  }
+  
+  #z-portal-workspace h1 {
+    font-size: 120%;
+    font-weight: bold;
+  }
+  
+  #z-portal-workspace h2 {
+    font-size: 110%;
+  }
+  
+  #z-portal-workspace h3 {
+    font-size: 100%;
+  }
+  
+  #z-portal-workspace h5,
+  #z-portal-workspace h6 {
+    color: discreetColor;
+  }
+
+}
+
+ at media print {
+  .z-page-description,
+  .pageDescription {
+    font-weight: normal;
+  }
+}

Added: z3ext.layout/trunk/src/z3ext/layout/styles.zcml
===================================================================
--- z3ext.layout/trunk/src/z3ext/layout/styles.zcml	                        (rev 0)
+++ z3ext.layout/trunk/src/z3ext/layout/styles.zcml	2008-10-14 10:17:55 UTC (rev 92186)
@@ -0,0 +1,17 @@
+<configure
+   xmlns="http://namespaces.zope.org/zope"
+   xmlns:zcml="http://namespaces.zope.org/zcml"
+   xmlns:z3ext="http://namespaces.zope.org/z3ext"
+   zcml:condition="installed z3ext.resourcepackage">
+
+  <include package="z3ext.resourcepackage" file="meta.zcml" />
+  <include package="z3ext.resourcepackage" />
+
+  <!-- styles -->
+  <z3ext:resourceinclude
+     name="z3ext-layout.css"
+     library="z3ext"
+     type="stylesheet"
+     file="styles.css" filetype="zrt" />
+
+</configure>



More information about the Checkins mailing list