[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