[Checkins] SVN: grok/branches/jw-conditional-features/ sync with grok trunk

Jan Wijbrand Kolman cvs-admin at zope.org
Wed May 2 10:21:59 UTC 2012


Log message for revision 125603:
  sync with grok trunk

Changed:
  U   grok/branches/jw-conditional-features/CHANGES.txt
  U   grok/branches/jw-conditional-features/setup.py
  U   grok/branches/jw-conditional-features/src/grok/__init__.py
  U   grok/branches/jw-conditional-features/src/grok/components.py
  U   grok/branches/jw-conditional-features/src/grok/ftests/test_grok_functional.py

-=-
Modified: grok/branches/jw-conditional-features/CHANGES.txt
===================================================================
--- grok/branches/jw-conditional-features/CHANGES.txt	2012-05-02 09:52:11 UTC (rev 125602)
+++ grok/branches/jw-conditional-features/CHANGES.txt	2012-05-02 10:21:54 UTC (rev 125603)
@@ -1,9 +1,19 @@
 Grok changes
 ************
 
-1.10 (unreleased)
+1.11 (unreleased)
 =================
 
+- Nothing changed yet.
+
+1.10.1 (2012-05-02)
+===================
+
+- Update version requirements.
+
+1.10 (2012-05-02)
+=================
+
 - Split off the Application component and the local_utility directive to
   grokcore.site. A backwards compatibility import for Application is left
   in place.

Modified: grok/branches/jw-conditional-features/setup.py
===================================================================
--- grok/branches/jw-conditional-features/setup.py	2012-05-02 09:52:11 UTC (rev 125602)
+++ grok/branches/jw-conditional-features/setup.py	2012-05-02 10:21:54 UTC (rev 125603)
@@ -14,6 +14,7 @@
     )
 
 classic_require = [
+    'grokcore.annotation >= 1.3',
     'grokcore.catalog',
     'grokcore.formlib >= 1.4',
     'grokcore.json >= 1.2dev',
@@ -24,10 +25,13 @@
     'grokcore.xmlrpc >= 1.2dev',
     'simplejson',
     'zc.catalog',
+    'zope.annotation',
+    'zope.catalog',
     'zope.errorview [browser]',
     'zope.i18n',
     'zope.i18nmessageid',
     'zope.login',
+    'zope.securitypolicy',
     'zope.password',
     'zope.principalregistry',
     ]
@@ -42,7 +46,7 @@
 
 setup(
     name='grok',
-    version='1.10dev',
+    version='1.11.dev0',
     author='Grok Team',
     author_email='grok-dev at zope.org',
     url='http://grok.zope.org',
@@ -62,28 +66,27 @@
     include_package_data = True,
     zip_safe=False,
     install_requires=[
-        'grokcore.annotation >= 1.3dev',
-        'grokcore.component >= 2.5dev',
-        'grokcore.content',
-        'grokcore.security >= 1.6dev',
-        'grokcore.site >= 1.6dev',
-        'grokcore.traverser >= 1.1dev',
-        'grokcore.view >= 2.7dev',
+        'grokcore.component >= 2.5',
+        'grokcore.content >= 1.1',
+        'grokcore.security >= 1.6',
+        'grokcore.site >= 1.6.1',
+        'grokcore.traverser >= 1.1',
+        'grokcore.view >= 2.7',
         'grokcore.view [security_publication]',
         'martian >= 0.14',
         'pytz',
         'setuptools',
         'z3c.autoinclude',
+        'zc.catalog',
         'ZODB3',
-        'zope.annotation',
         'zope.app.appsetup',
         'zope.app.publication',
         'zope.app.wsgi',
         'zope.browserpage',
-        'zope.catalog',
         'zope.component',
         'zope.container',
         'zope.contentprovider',
+        'zope.errorview[browser]',
         'zope.event',
         'zope.exceptions',
         'zope.interface',
@@ -91,10 +94,12 @@
         'zope.keyreference',
         'zope.lifecycleevent',
         'zope.location',
+        'zope.login',
+        'zope.password',
+        'zope.principalregistry',
         'zope.publisher',
         'zope.schema',
         'zope.security',
-        'zope.securitypolicy',
         'zope.site',
         'zope.traversing',
         ],

Modified: grok/branches/jw-conditional-features/src/grok/__init__.py
===================================================================
--- grok/branches/jw-conditional-features/src/grok/__init__.py	2012-05-02 09:52:11 UTC (rev 125602)
+++ grok/branches/jw-conditional-features/src/grok/__init__.py	2012-05-02 10:21:54 UTC (rev 125603)
@@ -27,7 +27,9 @@
 from grokcore.component import querySubscriptions, queryMultiSubscriptions
 from grokcore.component import queryOrderedSubscriptions
 from grokcore.component import queryOrderedMultiSubscriptions
+
 from grokcore.component.decorators import subscribe, adapter, implementer
+
 from grokcore.component.directive import context, name, title, description
 from grokcore.component.directive import provides, direct
 from grokcore.component.directive import global_utility, global_adapter
@@ -66,53 +68,68 @@
 
 from grokcore.annotation import Annotation
 
-from grokcore.site.interfaces import IApplication
-from grokcore.site.interfaces import IApplicationInitializedEvent
-from grokcore.site.interfaces import ApplicationInitializedEvent
+from grokcore.site import IApplication
+from grokcore.site import IApplicationInitializedEvent
 from grokcore.site import Application
+from grokcore.site import ApplicationInitializedEvent
 from grokcore.site import getApplication
+from grokcore.site import getSite
 from grokcore.site import local_utility
 from grokcore.site import LocalUtility
 from grokcore.site import site
 from grokcore.site import Site
-from grokcore.site import getSite
 
 from zope.event import notify
-from zope.lifecycleevent import (
-    IObjectCreatedEvent, ObjectCreatedEvent,
-    IObjectModifiedEvent, ObjectModifiedEvent,
-    IObjectCopiedEvent, ObjectCopiedEvent)
+
+from zope.lifecycleevent import IObjectCopiedEvent
+from zope.lifecycleevent import IObjectCreatedEvent
+from zope.lifecycleevent import IObjectModifiedEvent
+from zope.lifecycleevent import ObjectCopiedEvent
+from zope.lifecycleevent import ObjectCreatedEvent
+from zope.lifecycleevent import ObjectModifiedEvent
+
 from zope.app.publication.interfaces import IBeforeTraverseEvent
 
 from zope.publisher.interfaces.browser import IBrowserRequest
 from zope.publisher.interfaces.browser import IDefaultBrowserLayer
 
-from zope.container.interfaces import (
-    IObjectAddedEvent,
-    IObjectMovedEvent,
-    IObjectRemovedEvent,
-    IContainerModifiedEvent)
-from zope.container.contained import (
-    ObjectAddedEvent,
-    ObjectMovedEvent,
-    ObjectRemovedEvent,
-    ContainerModifiedEvent)
+from zope.container.interfaces import IContainerModifiedEvent
+from zope.container.interfaces import IObjectAddedEvent
+from zope.container.interfaces import IObjectMovedEvent
+from zope.container.interfaces import IObjectRemovedEvent
+from zope.container.contained import ContainerModifiedEvent
+from zope.container.contained import ObjectAddedEvent
+from zope.container.contained import ObjectMovedEvent
+from zope.container.contained import ObjectRemovedEvent
 
-from grok.components import View, Form, AddForm, EditForm, DisplayForm
-from grok.components import Layout, Page, FormPage
-from grok.components import AddFormPage, EditFormPage, DisplayFormPage
-from grok.components import ExceptionView, NotFoundView, UnauthorizedView
-from grok.components import XMLRPC, REST, JSON
+from grok.components import AddForm
+from grok.components import AddFormPage
+from grok.components import DisplayForm
+from grok.components import DisplayFormPage
+from grok.components import EditForm
+from grok.components import EditFormPage
+from grok.components import ExceptionView
+from grok.components import Form
+from grok.components import FormPage
+from grok.components import Layout
+from grok.components import NotFoundView
+from grok.components import Page
+from grok.components import UnauthorizedView
+from grok.components import View
 
+from grokcore.json import JSON
+from grokcore.xmlrpc import XMLRPC
+
 from grokcore.catalog import Indexes
 from grokcore.catalog import index
 
 from grokcore.traverser import Traverser
+from grokcore.traverser import traversable
 
-from grok.interfaces import IRESTSkinType, IRESTLayer
-
+from grokcore.rest import IRESTLayer
+from grokcore.rest import IRESTSkinType
+from grokcore.rest import REST
 from grokcore.rest import restskin
-from grokcore.traverser import traversable
 
 # BBB These two functions are meant for test fixtures and should be
 # imported from grok.testing, not from grok.

Modified: grok/branches/jw-conditional-features/src/grok/components.py
===================================================================
--- grok/branches/jw-conditional-features/src/grok/components.py	2012-05-02 09:52:11 UTC (rev 125602)
+++ grok/branches/jw-conditional-features/src/grok/components.py	2012-05-02 10:21:54 UTC (rev 125603)
@@ -19,10 +19,11 @@
 
 """
 import simplejson
-
+import os.path
 import zope.location
+import zope.errorview.browser
+import zope.component
 from zope.container.interfaces import IReadContainer
-import zope.errorview.browser
 from zope import component
 from zope import interface
 from zope.interface.common.interfaces import IException
@@ -40,14 +41,18 @@
 
 import grokcore.view
 import grokcore.site
+import grokcore.message
 import grokcore.layout
+import grokcore.layout.components
 from grok import interfaces, util
 
 # BBB this is for import backward compatibility.
 from grokcore.xmlrpc import XMLRPC
 from grokcore.rest import REST
 from grokcore.json import JSON
-from grokcore.content import Model, Container, OrderedContainer
+from grokcore.content import Container
+from grokcore.content import Model
+from grokcore.content import OrderedContainer
 from grokcore.site import Application
 
 
@@ -280,22 +285,80 @@
 class Layout(ViewSupportMixin, grokcore.layout.Layout):
     grok.baseclass()
 
-
 class Page(ViewSupportMixin, grokcore.layout.Page):
     grok.baseclass()
 
+# Default forms for form without the html and body tags
+default_form_template = grokcore.view.PageTemplateFile(
+    os.path.join('templates', 'default_edit_form.pt'))
 
-class FormPage(ViewSupportMixin, grokcore.layout.FormPage):
+default_form_template.__grok_name__ = 'default_edit_form'
+
+default_display_template = grokcore.view.PageTemplateFile(
+    os.path.join('templates', 'default_display_form.pt'))
+
+default_display_template.__grok_name__ = 'default_display_form'
+
+class LayoutAwareFormPage(grokcore.layout.components.LayoutAware):
+    """A mixin to make form aware of layouts.
+    """
+    def __call__(self):
+        """Calls update and returns the layout template which calls render.
+        """
+        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
+        # update_form() is what make a layout-aware form different from
+        # 'regular" layout-aware component.
+        self.update_form()
+        if self.request.response.getStatus() in (302, 303):
+            return
+        self.layout = zope.component.getMultiAdapter(
+            (self.request, self.context), grokcore.layout.ILayout)
+        return self.layout(self)
+
+
+class FormPage(
+    ViewSupportMixin,
+    LayoutAwareFormPage,
+    grokcore.formlib.Form
+    ):
+    """A form base class.
+    """
     grok.baseclass()
+    template = default_form_template
 
 
-class AddFormPage(ViewSupportMixin, grokcore.layout.AddFormPage):
+class AddFormPage(
+    ViewSupportMixin,
+    LayoutAwareFormPage,
+    grokcore.formlib.AddForm
+    ):
+    """Base add form.
+    """
     grok.baseclass()
+    template = default_form_template
 
 
-class EditFormPage(ViewSupportMixin, grokcore.layout.EditFormPage):
+class EditFormPage(
+    ViewSupportMixin,
+    LayoutAwareFormPage,
+    grokcore.formlib.EditForm
+    ):
+    """Base edit form.
+    """
     grok.baseclass()
+    template = default_form_template
 
 
-class DisplayFormPage(ViewSupportMixin, grokcore.layout.DisplayFormPage):
+class DisplayFormPage(
+    ViewSupportMixin,
+    LayoutAwareFormPage,
+    grokcore.formlib.DisplayForm
+    ):
+    """Base display form.
+    """
     grok.baseclass()
+    template = default_display_template

Modified: grok/branches/jw-conditional-features/src/grok/ftests/test_grok_functional.py
===================================================================
--- grok/branches/jw-conditional-features/src/grok/ftests/test_grok_functional.py	2012-05-02 09:52:11 UTC (rev 125602)
+++ grok/branches/jw-conditional-features/src/grok/ftests/test_grok_functional.py	2012-05-02 10:21:54 UTC (rev 125603)
@@ -64,6 +64,7 @@
         'chameleon',
         'errorviews',
         'form',
+        'forms',
         'lifecycle',
         'security',
         'site',



More information about the checkins mailing list