[Checkins] SVN: grok/branches/ksmith_mcweekly-layers/ remove
viewlet code, all tests pass
Kevin Smith
kevin at mcweekly.com
Sat Apr 28 19:04:13 EDT 2007
Log message for revision 74885:
remove viewlet code, all tests pass
Changed:
U grok/branches/ksmith_mcweekly-layers/buildout.cfg
U grok/branches/ksmith_mcweekly-layers/src/grok/__init__.py
U grok/branches/ksmith_mcweekly-layers/src/grok/components.py
U grok/branches/ksmith_mcweekly-layers/src/grok/directive.py
U grok/branches/ksmith_mcweekly-layers/src/grok/interfaces.py
U grok/branches/ksmith_mcweekly-layers/src/grok/meta.py
U grok/branches/ksmith_mcweekly-layers/src/grok/tests/test_grok.py
-=-
Modified: grok/branches/ksmith_mcweekly-layers/buildout.cfg
===================================================================
--- grok/branches/ksmith_mcweekly-layers/buildout.cfg 2007-04-28 22:38:05 UTC (rev 74884)
+++ grok/branches/ksmith_mcweekly-layers/buildout.cfg 2007-04-28 23:04:12 UTC (rev 74885)
@@ -1,11 +1,10 @@
[buildout]
develop = . grokwiki ldapaddressbook
-parts = data instance testdata testinstance test
+parts = zope3 data instance testdata testinstance test
[zope3]
-location = /root/Zope-3.3.1
-#recipe = zc.recipe.zope3checkout
-#url = svn://svn.zope.org/repos/main/Zope3/branches/3.3
+recipe = zc.recipe.zope3checkout
+url = svn://svn.zope.org/repos/main/Zope3/branches/3.3
[data]
recipe = zc.recipe.filestorage
@@ -55,7 +54,7 @@
[test]
recipe = zc.recipe.testrunner
eggs = grok
-extra-paths = /root/Zope-3.3.1/lib/python
+extra-paths = parts/zope3/src
working-directory = parts/testinstance
defaults = ['--tests-pattern', '^f?tests$',
'-v'
Modified: grok/branches/ksmith_mcweekly-layers/src/grok/__init__.py
===================================================================
--- grok/branches/ksmith_mcweekly-layers/src/grok/__init__.py 2007-04-28 22:38:05 UTC (rev 74884)
+++ grok/branches/ksmith_mcweekly-layers/src/grok/__init__.py 2007-04-28 23:04:12 UTC (rev 74885)
@@ -34,11 +34,10 @@
from grok.components import PageTemplate, PageTemplateFile, Container, Traverser
from grok.components import Site, GlobalUtility, LocalUtility, Annotation
from grok.components import Application, Form, AddForm, EditForm, DisplayForm
-from grok.components import Indexes, Skin, ILayer, ViewletManager, Viewlet
-from grok.components import OrderedViewletManager
+from grok.components import Indexes, Skin, ILayer
from grok.directive import (context, name, template, templatedir, provides,
baseclass, global_utility, local_utility,
- define_permission, require, site, layer, viewletmanager)
+ define_permission, require, site, layer)
from grok._grok import do_grok as grok # Avoid name clash within _grok
from grok._grok import SubscribeDecorator as subscribe
Modified: grok/branches/ksmith_mcweekly-layers/src/grok/components.py
===================================================================
--- grok/branches/ksmith_mcweekly-layers/src/grok/components.py 2007-04-28 22:38:05 UTC (rev 74884)
+++ grok/branches/ksmith_mcweekly-layers/src/grok/components.py 2007-04-28 23:04:12 UTC (rev 74885)
@@ -40,8 +40,6 @@
from zope.traversing.browser.absoluteurl import AbsoluteURL
from zope.traversing.browser.absoluteurl import _safe as SAFE_URL_CHARACTERS
from zope.annotation.interfaces import IAttributeAnnotatable
-from zope.viewlet.manager import ViewletManagerBase
-from zope.viewlet.viewlet import ViewletBase
from zope.app.pagetemplate.engine import TrustedAppPT
from zope.app.publisher.browser import getDefaultViewName
@@ -515,81 +513,3 @@
pass
-class ViewletManager(ViewletManagerBase):
- template = None
-
-
-class OrderedViewletManager(ViewletManager):
- def sort(self, viewlets):
- # sort by viewlet class name as default
- return sorted(viewlets, lambda x,y: cmp(x[0], y[0]))
-
-
-class Viewlet(ViewletBase):
- """ Batteries included viewlet """
-
-
- def __init__(self, context, request, view, manager):
- super(Viewlet, self).__init__(context, request, view, manager)
- self.static = component.queryAdapter(
- self.request,
- interface.Interface,
- name=self.module_info.package_dotted_name
- )
-
-
- @property
- def response(self):
- return self.request.response
-
-
- def render(self):
- mapply(self.update, (), self.request)
- if self.request.response.getStatus() in (302, 303):
- # A redirect was triggered somewhere in update(). Don't
- # continue rendering the template or doing anything else.
- return
-
- template = getattr(self, 'template', None)
- if template is not None:
- return self._render_template()
-
- def _render_template(self):
- namespace = self.template.pt_getContext()
- namespace['request'] = self.request
- namespace['view'] = self
- namespace['context'] = self.context
- # XXX need to check whether we really want to put None here if missing
- namespace['static'] = self.static
- return self.template.pt_render(namespace)
-
- def __getitem__(self, key):
- # XXX give nice error message if template is None
- return self.template.macros[key]
-
- def url(self, obj=None, name=None):
- # if the first argument is a string, that's the name. There should
- # be no second argument
- if isinstance(obj, basestring):
- if name is not None:
- raise TypeError(
- 'url() takes either obj argument, obj, string arguments, '
- 'or string argument')
- name = obj
- obj = None
-
- if name is None and obj is None:
- # create URL to view itself
- obj = self
- elif name is not None and obj is None:
- # create URL to view on context
- obj = self.context
- return util.url(self.request, obj, name)
-
- def redirect(self, url):
- return self.request.response.redirect(url)
-
- def update(self):
- pass
-
-
Modified: grok/branches/ksmith_mcweekly-layers/src/grok/directive.py
===================================================================
--- grok/branches/ksmith_mcweekly-layers/src/grok/directive.py 2007-04-28 22:38:05 UTC (rev 74884)
+++ grok/branches/ksmith_mcweekly-layers/src/grok/directive.py 2007-04-28 23:04:12 UTC (rev 74885)
@@ -283,6 +283,3 @@
layer = InterfaceOrClassDirective('grok.layer',
ClassOrModuleDirectiveContext())
-
-viewletmanager = InterfaceOrClassDirective('grok.viewletmanager',
- ClassDirectiveContext())
Modified: grok/branches/ksmith_mcweekly-layers/src/grok/interfaces.py
===================================================================
--- grok/branches/ksmith_mcweekly-layers/src/grok/interfaces.py 2007-04-28 22:38:05 UTC (rev 74884)
+++ grok/branches/ksmith_mcweekly-layers/src/grok/interfaces.py 2007-04-28 23:04:12 UTC (rev 74885)
@@ -43,8 +43,6 @@
DisplayForm = interface.Attribute("Base class for display forms.")
ILayer = interface.Attribute("Base interface for layers.")
Skin = interface.Attribute("Base class for skin.")
- ViewletManager = interface.Attribute("Base class for viewletmanager.")
- Viewlet = interface.Attribute("Base class for viewlet.")
class IGrokErrors(interface.Interface):
@@ -134,8 +132,6 @@
The site should in this case be a container.
name_in_container - the name to use for storing the utility
"""
- def register_skin(name, iface):
- """Register skin name for layer."""
def define_permission(permission):
"""Defines a new permission with the id ``permission``."""
Modified: grok/branches/ksmith_mcweekly-layers/src/grok/meta.py
===================================================================
--- grok/branches/ksmith_mcweekly-layers/src/grok/meta.py 2007-04-28 22:38:05 UTC (rev 74884)
+++ grok/branches/ksmith_mcweekly-layers/src/grok/meta.py 2007-04-28 23:04:12 UTC (rev 74885)
@@ -8,10 +8,7 @@
IBrowserSkinType)
from zope.publisher.interfaces.xmlrpc import IXMLRPCRequest
from zope.publisher.browser import IBrowserView
-from zope.viewlet.interfaces import IViewletManager, IViewlet
from zope.security.permission import Permission
-from zope.security.interfaces import IPermission
-from zope.security.checker import NamesChecker, defineChecker
from zope.annotation.interfaces import IAnnotations
from zope.app.publisher.xmlrpc import MethodPublisher
@@ -592,106 +589,3 @@
None) or grok.IDefaultBrowserLayer
name = grok.util.class_annotation(factory, 'grok.name', factory.__name__.lower())
zope.component.interface.provideInterface(name, layer, IBrowserSkinType)
-
-
-class ViewletManagerGrokker(grok.ClassGrokker):
- component_class = (grok.ViewletManager, grok.OrderedViewletManager)
-
- def register(self, context, name, factory, module_info, templates):
-
- name = grok.util.class_annotation(factory, 'grok.name', factory.__name__.lower())
- view_layer = util.class_annotation(factory, 'grok.layer',
- None) or module_info.getAnnotation('grok.layer',
- None) or IDefaultBrowserLayer
-
- view_context = util.determine_class_context(factory, context)
- component.provideAdapter(factory,
- adapts=(None, # TODO: Make configurable
- view_layer, # TODO: Make configurable
- view_context),
- provides=IViewletManager,
- name=name)
-
-
-class ViewletGrokker(grok.ClassGrokker):
- component_class = grok.Viewlet
-
- def register(self, context, name, factory, module_info, templates):
- # Try to set up permissions (copied from the View grokker)
-
- factory.module_info = module_info # to make /static available
- factory_name = factory.__name__.lower()
-
- permissions = grok.util.class_annotation(factory, 'grok.require', [])
- if not permissions:
- checker = NamesChecker(['update', 'render'])
- elif len(permissions) > 1:
- raise GrokError('grok.require was called multiple times in viewlet '
- '%r. It may only be called once.' % factory,
- factory)
- elif permissions[0] == 'zope.Public':
- checker = NamesChecker(['update','render'])
- else:
- perm = permissions[0]
- if component.queryUtility(IPermission, name=perm) is None:
- raise GrokError('Undefined permission %r in view %r. Use '
- 'grok.define_permission first.'
- % (perm, factory), factory)
- checker = NamesChecker(['update','render'], permissions[0])
-
- defineChecker(factory, checker)
-
-
- # find templates
- template_name = util.class_annotation(factory, 'grok.template',
- factory_name)
- template = templates.get(template_name)
-
- if factory_name != template_name:
- # grok.template is being used
- if templates.get(factory_name):
- raise GrokError("Multiple possible templates for view %r. It "
- "uses grok.template('%s'), but there is also "
- "a template called '%s'."
- % (factory, template_name, factory_name),
- factory)
-
- factory_template = getattr(factory,'template', None)
-
- if template:
- if (getattr(factory, 'render', None) and not
- util.check_subclass(factory, components.GrokForm) and not
- util.check_subclass(factory, components.Viewlet)):
- # we do not accept render and template both for a view
- # (unless it's a form, they happen to have render.)
- # Forms currently not implemented in viewlets.
- raise GrokError(
- "Multiple possible ways to render view %r. "
- "It has both a 'render' method as well as "
- "an associated template." % factory, factory)
-
- templates.markAssociated(template_name)
- factory.template = template
- elif factory_template and isinstance(factory_template, (components.PageTemplate, components.PageTemplateFile)):
- pass
- else:
- if not getattr(factory, 'render', None):
- # we do not accept a view without any way to render it
- raise GrokError("View %r has no associated template or "
- "'render' method." % factory, factory)
-
-
- # New directive
- viewletmanager = grok.util.class_annotation(factory, 'grok.viewletmanager', [])
- layer = util.class_annotation(factory, 'grok.layer',
- None) or module_info.getAnnotation('grok.layer',
- None) or IDefaultBrowserLayer
-
- component.provideAdapter(factory,
- adapts=(None, # TODO: Make configurable
- layer,
- IBrowserView,
- viewletmanager),
- provides=IViewlet,
- name=name)
-
Modified: grok/branches/ksmith_mcweekly-layers/src/grok/tests/test_grok.py
===================================================================
--- grok/branches/ksmith_mcweekly-layers/src/grok/tests/test_grok.py 2007-04-28 22:38:05 UTC (rev 74884)
+++ grok/branches/ksmith_mcweekly-layers/src/grok/tests/test_grok.py 2007-04-28 23:04:12 UTC (rev 74885)
@@ -2,13 +2,12 @@
from pkg_resources import resource_listdir
from zope.testing import doctest, cleanup
import zope.component.eventtesting
-import zope.viewlet.tests
def setUpZope(test):
zope.component.eventtesting.setUp(test)
- zope.viewlet.tests.setUp(test)
+
def cleanUpZope(test):
cleanup.cleanUp()
More information about the Checkins
mailing list