[Checkins] SVN: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/ Working a bit on the update render pattern this is a bit different form the original z3c.pagelet implementation.

Christian Klinger cklinger at novareto.de
Wed Feb 4 10:10:49 EST 2009


Log message for revision 96080:
  Working a bit on the update render pattern this is a bit different form the original z3c.pagelet implementation. 

Changed:
  U   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/component.py
  U   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/meta.py
  U   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet.py
  A   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet_templates/
  A   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet_templates/pageletwithtemplate.pt

-=-
Modified: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/component.py
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/component.py	2009-02-04 14:03:52 UTC (rev 96079)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/component.py	2009-02-04 15:10:49 UTC (rev 96080)
@@ -29,18 +29,34 @@
             interface.Interface,
             name=self.module_info.package_dotted_name
             )
-   
+  
+    def default_namespace(self):
+        namespace = {}
+        namespace['context'] = self.context
+        namespace['request'] = self.request
+        namespace['static'] = self.static
+        namespace['view'] = self
+        return namespace
+
+    def namespace(self):
+        return {}
+  
     def update(self):
         pass
 
     def render(self):
         # render content template
-        if self.template is None:
-            template = zope.component.getMultiAdapter(
-                (self, self.request), IContentTemplate)
-            return template(self)
-        return self.template()
+        #if self.template is None:
+        #    template = component.getMultiAdapter(
+        #        (self, self.request), IContentTemplate)
+        #    return template(self)
+        
+        # We don´t work with IContentTemplate for now
+        # We use instead our grok.View behavior with the associated
+        # Templates
 
+        return self.template.render(self)
+
     def __call__(self):
         """Calls update and returns the layout template which calls render."""
         self.update()

Modified: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/meta.py
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/meta.py	2009-02-04 14:03:52 UTC (rev 96079)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/meta.py	2009-02-04 15:10:49 UTC (rev 96080)
@@ -71,13 +71,20 @@
 
     def checkTemplates(self, templates, module_info, factory):
 
+        #def has_render(factory):
+        #    render = getattr(factory, 'render', None)
+        #    base_method = getattr(render, 'base_method', False)
+        #    return render and not base_method
+
+        #def has_no_render(factory):
+        #    return not getattr(factory, 'render', None)
+
         def has_render(factory):
-            render = getattr(factory, 'render', None)
-            base_method = getattr(render, 'base_method', False)
-            return render and not base_method
+            return factory.render != megrok.pagelet.component.Pagelet.render
+        def has_no_render(factory):
+            return not has_render(factory)
 
-        def has_no_render(factory):
-            return not getattr(factory, 'render', None)
+
         templates.checkTemplates(module_info, factory, 'view',
                                  has_render, has_no_render)
 

Modified: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet.py
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet.py	2009-02-04 14:03:52 UTC (rev 96079)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet.py	2009-02-04 15:10:49 UTC (rev 96080)
@@ -26,6 +26,18 @@
    ...
    ComponentLookupError: ...
 
+Now I want to see a Pagelet with a template in xxx_templates/xxx.pt
+
+   >>> viewt = getMultiAdapter((page, request), name='pageletwithtemplate')
+   >>> print viewt()
+   <html>
+    <body>
+      <div class="layout"><p> I am a renderd template of a pagelet </p>
+   </div>
+    </body>
+   </html>
+   >>> print viewt.render()
+   <p> I am a renderd template of a pagelet </p>
 """
 import grok
 import megrok.pagelet
@@ -41,6 +53,10 @@
     def render(self):
         return "<b> I am a MotherFucking  pagelet </b>"
 
+class PageletWithTemplate(megrok.pagelet.Pagelet):
+    grok.context(Page)
+
+
 class MyLayout(megrok.pagelet.LayoutView):
     grok.context(Page)
     megrok.pagelet.template('templates/playout.pt')
@@ -56,9 +72,11 @@
 	return "<b> Render without a Pagelet"
 
 
+
 def test_suite():
     from zope.testing import doctest
     from megrok.pagelet.tests import FunctionalLayer
+    import interlude
     suite = doctest.DocTestSuite(optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS)
     suite.layer = FunctionalLayer
     return suite

Added: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet_templates/pageletwithtemplate.pt
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet_templates/pageletwithtemplate.pt	                        (rev 0)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_pagelet_templates/pageletwithtemplate.pt	2009-02-04 15:10:49 UTC (rev 96080)
@@ -0,0 +1 @@
+<p> I am a renderd template of a pagelet </p>



More information about the Checkins mailing list