[prev in list] [next in list] [prev in thread] [next in thread]
List: zope-cvs
Subject: [Zope-Checkins]
From: Philipp von Weitershausen <philikon () philikon ! de>
Date: 2007-07-30 21:10:42
Message-ID: 20070730211042.3815D20334A () mail ! zope ! org
[Download RAW message or body]
Log message for revision 78482:
Simplify by using more machinery from Zope 3 (which we can thanks to \
IBrowserPUblisher support since Zope 2.10)
Changed:
U Zope/branches/philikon-aq/lib/python/Products/Five/browser/metaconfigure.py
-=-
Modified: Zope/branches/philikon-aq/lib/python/Products/Five/browser/metaconfigure.py
===================================================================
--- Zope/branches/philikon-aq/lib/python/Products/Five/browser/metaconfigure.py 2007-07-30 \
20:59:22 UTC (rev 78481)
+++ Zope/branches/philikon-aq/lib/python/Products/Five/browser/metaconfigure.py 2007-07-30 \
21:10:41 UTC (rev 78482) @@ -29,10 +29,10 @@
from zope.publisher.interfaces.browser import IBrowserRequest, \
IDefaultBrowserLayer
-from zope.app.publisher.browser.viewmeta import pages as zope_app_pages
-from zope.app.publisher.browser.viewmeta import view as zope_app_view
-from zope.app.publisher.browser.viewmeta import providesCallable, \
- _handle_menu, _handle_for
+import zope.app.publisher.browser.viewmeta
+import zope.app.pagetemplate.simpleviewclass
+from zope.app.publisher.browser.viewmeta import (providesCallable,
+ _handle_menu, _handle_for)
from Products.Five.browser import BrowserView
from Products.Five.browser.resource import FileResourceFactory
@@ -159,7 +159,7 @@
args = (new_class,)
)
-class pages(zope_app_pages):
+class pages(zope.app.publisher.browser.viewmeta.pages):
def page(self, _context, name, attribute='__call__', template=None,
menu=None, title=None):
@@ -172,7 +172,7 @@
# view (named view with pages)
-class view(zope_app_view):
+class view(zope.app.publisher.browser.viewmeta.view):
def __call__(self):
(_context, name, for_, permission, layer, class_,
@@ -389,33 +389,23 @@
args = (new_class,)
)
-#
-# mixin classes / class factories
-#
+class ViewMixinForAttributes(BrowserView,
+ zope.app.publisher.browser.viewmeta.simple):
-class ViewMixinForAttributes(BrowserView):
+ # For some reason, the 'simple' baseclass doesn't implement this
+ # mandatory method (see https://bugs.launchpad.net/zope3/+bug/129296)
+ def browserDefault(self, request):
+ return getattr(self, self.__page_attribute__), ()
- # we have an attribute that we can simply tell ZPublisher to go to
- def __browser_default__(self, request):
- return self, (self.__page_attribute__,)
+ # __call__ should have the same signature as the original method
+ @property
+ def __call__(self):
+ return getattr(self, self.__page_attribute__)
- # this is technically not needed because ZPublisher finds our
- # attribute through __browser_default__; but we also want to be
- # able to call pages from python modules, PythonScripts or ZPT
- __call__ = property(lambda self: getattr(self, self.__page_attribute__))
+class ViewMixinForTemplates(BrowserView,
+ zope.app.pagetemplate.simpleviewclass.simple):
+ pass
-class ViewMixinForTemplates(BrowserView):
-
- # short cut to get to macros more easily
- def __getitem__(self, name):
- if name == 'macros':
- return self.index.macros
- return self.index.macros[name]
-
- # make the template publishable
- def __call__(self, *args, **kw):
- return self.index(self, *args, **kw)
-
def makeClassForTemplate(filename, globals=None, used_for=None,
bases=(), cdict=None, name=u''):
# XXX needs to deal with security from the bases?
_______________________________________________
Zope-Checkins maillist - Zope-Checkins@zope.org
http://mail.zope.org/mailman/listinfo/zope-checkins
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic