[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