[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