[Checkins] SVN: megrok.z3cform/branches/megrok.z3cfrom-layout/s move the z3c.wizard into a seperate megrok.z3cwizard package

Christian Klinger cklinger at novareto.de
Fri Jul 24 08:52:52 EDT 2009


Log message for revision 102235:
  move the z3c.wizard into a seperate megrok.z3cwizard package

Changed:
  U   megrok.z3cform/branches/megrok.z3cfrom-layout/setup.py
  U   megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/__init__.py
  U   megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/meta.py
  U   megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/meta.zcml
  D   megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_layout_wizard.py
  D   megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_wizard.py
  D   megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/wizard.py

-=-
Modified: megrok.z3cform/branches/megrok.z3cfrom-layout/setup.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/setup.py	2009-07-24 12:49:07 UTC (rev 102234)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/setup.py	2009-07-24 12:52:51 UTC (rev 102235)
@@ -10,7 +10,6 @@
     'grokcore.formlib',
     'z3c.form',
     'z3c.formui',
-    'z3c.wizard',
     'megrok.layout',
     ]
 

Modified: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/__init__.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/__init__.py	2009-07-24 12:49:07 UTC (rev 102234)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/__init__.py	2009-07-24 12:52:51 UTC (rev 102235)
@@ -5,7 +5,5 @@
 from directives import field
 from skin import FormLayer, TableLayer
 from utils import apply_data_event
-from wizard import WizardForm, Step, LayoutStep
 from z3c.form import widget, field, button, action
 from z3c.form.form import extends
-from z3c.wizard.interfaces import IWizard

Modified: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/meta.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/meta.py	2009-07-24 12:49:07 UTC (rev 102234)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/meta.py	2009-07-24 12:52:51 UTC (rev 102235)
@@ -6,11 +6,9 @@
 
 from z3c.form import field
 from martian.error import GrokError
-from megrok.z3cform import wizard
 from zope.interface import Interface
 from megrok.z3cform import directives
 from megrok.z3cform import components
-from z3c.wizard.zcml import wizardStepDirective
 from zope.interface.interfaces import IInterface
 from grokcore.view.meta.views import ViewGrokker, default_view_name
 from z3c.form.zcml import widgetTemplateDirective
@@ -81,15 +79,3 @@
         widgetTemplateDirective(config, template, context, layer,
                     view=view, field=field, widget=widget, mode=mode)
         return True
-
-
-class WizardStepGrokker(martian.ClassGrokker):
-    martian.component(wizard.BaseStep)
-    martian.directive(grokcore.component.context)
-    martian.directive(grokcore.component.name, get_default=default_view_name)
-
-    def execute(self, factory, config, context, name, **kw):
-
-        wizardStepDirective(config, factory, name,
-                            'zope.Public', wizard=context)
-        return True

Modified: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/meta.zcml
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/meta.zcml	2009-07-24 12:49:07 UTC (rev 102234)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/meta.zcml	2009-07-24 12:52:51 UTC (rev 102235)
@@ -11,7 +11,6 @@
   <include package="z3c.macro" file="meta.zcml" />
   <include package="z3c.formui"/>
   <include package="megrok.layout" file="meta.zcml" />
-  <include package="z3c.wizard"/>
 
   <grok:grok package=".meta" />
 

Deleted: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_layout_wizard.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_layout_wizard.py	2009-07-24 12:49:07 UTC (rev 102234)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_layout_wizard.py	2009-07-24 12:52:51 UTC (rev 102235)
@@ -1,269 +0,0 @@
-"""
-megrok layout wizard
-====================
-
-basic setup
------------
-
-  >>> from zope.app.testing.functional import getRootFolder
-  >>> root = getRootFolder()
-
-  >>> from zope import component
-  >>> from zope.interface import alsoProvides
-  >>> from zope.publisher.browser import TestRequest
-  >>> request = TestRequest() 
-  >>> alsoProvides(request, FormWizardPage)
-
-  >>> christian = Person()
-  >>> root['christian'] = christian
-  >>> christian.__parent__ = root
-  >>> christian.__name__ = u'christian'
-
-  >>> from zope.component import getMultiAdapter
-  >>> pw = getMultiAdapter((christian, request), name=u"personwizardpage")
-  >>> pw
-  <PersonWizardPage 'personwizardpage'>  
-
-  >>> obj, names = pw.browserDefault(request)
-  >>> obj
-  <PersonWizardPage 'personwizardpage'>  
-
-  >>> names
-  ('personstepp',)
-
-Render the personStep
----------------------
-
-  >>> personStep = obj.publishTraverse(request, names[0])
-  >>> personStep.update()
-  >>> page = personStep.render()
-  >>> print page
-  <div class="wizard">
-      <div class="header">Person Wizard</div>
-      <div class="wizardMenu">
-        <span class="selected">
-            <span>Person</span>
-        </span>
-        <span>
-            <a href="http://127.0.0.1/christian/personwizardpage/addressstepp">Address</a>
-        </span>
-      </div>
-    <form action="http://127.0.0.1" method="post"
-          enctype="multipart/form-data" class="edit-form"
-          id="form">
-        <div class="viewspace">
-            <div class="label">Person</div>
-            <div class="required-info">
-               <span class="required">*</span>
-               &ndash; required
-            </div>
-          <div class="step">
-            <div id="form-widgets-firstName-row" class="row">
-                <div class="label">
-                  <label for="form-widgets-firstName">
-                    <span>First Name</span>
-                    <span class="required">*</span>
-                  </label>
-                </div>
-                <div class="widget">
-      <input id="form-widgets-firstName"
-             name="form.widgets.firstName"
-             class="text-widget required textline-field"
-             value="" type="text" />
-    </div>
-            </div>
-            <div id="form-widgets-lastName-row" class="row">
-                <div class="label">
-                  <label for="form-widgets-lastName">
-                    <span>Last Name</span>
-                    <span class="required">*</span>
-                  </label>
-                </div>
-                <div class="widget">
-      <input id="form-widgets-lastName"
-             name="form.widgets.lastName"
-             class="text-widget required textline-field"
-             value="" type="text" />
-    </div>
-            </div>
-          </div>
-            <div>
-              <div class="buttons">
-                <span class="back">
-                </span>
-                <span class="step">
-  <input id="form-buttons-apply" name="form.buttons.apply"
-         class="submit-widget button-field" value="Apply"
-         type="submit" />
-                </span>
-                <span class="forward">
-  <input id="form-buttons-next" name="form.buttons.next"
-         class="submit-widget button-field" value="Next"
-         type="submit" />
-                </span>
-              </div>
-            </div>
-        </div>
-    </form>
-  </div>
-
-Call the PersonStep
--------------------
-
-  >>> print personStep()
-  <html>
-   <body>
-     <div class="layout"><div class="wizard">
-      <div class="header">Person Wizard</div>
-      <div class="wizardMenu">
-        <span class="selected">
-            <span>Person</span>
-        </span>
-        <span>
-            <a href="http://127.0.0.1/christian/personwizardpage/addressstepp">Address</a>
-        </span>
-      </div>
-    <form action="http://127.0.0.1" method="post"
-          enctype="multipart/form-data" class="edit-form"
-          id="form">
-        <div class="viewspace">
-           <div class="label">Person</div>
-            <div class="required-info">
-               <span class="required">*</span>
-               &ndash; required
-            </div>
-          <div class="step">
-            <div id="form-widgets-firstName-row" class="row">
-                <div class="label">
-                  <label for="form-widgets-firstName">
-                    <span>First Name</span>
-                    <span class="required">*</span>
-                  </label>
-                </div>
-                <div class="widget">
-      <input id="form-widgets-firstName"
-             name="form.widgets.firstName"
-             class="text-widget required textline-field"
-             value="" type="text" />
-  </div>
-            </div>
-            <div id="form-widgets-lastName-row" class="row">
-                <div class="label">
-                  <label for="form-widgets-lastName">
-                    <span>Last Name</span>
-                    <span class="required">*</span>
-                  </label>
-                </div>
-                <div class="widget">
-      <input id="form-widgets-lastName"
-             name="form.widgets.lastName"
-             class="text-widget required textline-field"
-             value="" type="text" />
-  </div>
-            </div>
-          </div>
-            <div>
-              <div class="buttons">
-                <span class="back">
-                </span>
-                <span class="step">
-  <input id="form-buttons-apply" name="form.buttons.apply"
-         class="submit-widget button-field" value="Apply"
-         type="submit" />
-                </span>
-                <span class="forward">
-  <input id="form-buttons-next" name="form.buttons.next"
-         class="submit-widget button-field" value="Next"
-         type="submit" />
-                </span>
-              </div>
-            </div>
-        </div>
-    </form>
-  </div>
-  </div>
-   </body>
-  </html>
-
-"""
-
-import grok
-import zope.schema
-import zope.interface
-import megrok.layout
-
-from megrok import z3cform
-from z3c.wizard import wizard, step
-from zope.location.interfaces import ILocation
-from zope.schema.fieldproperty import FieldProperty
-
-
-class FormWizardPage(z3cform.FormLayer):
-    grok.skin('formwizardpage')
-
-
-grok.layer(FormWizardPage)
-
-
-class IPerson(ILocation):
-    """Person interface."""
-
-    firstName = zope.schema.TextLine(title=u'First Name')
-    lastName = zope.schema.TextLine(title=u'Last Name')
-    street = zope.schema.TextLine(title=u'Street')
-    city = zope.schema.TextLine(title=u'City')
-
-
-class Person(object):
-    """Person content."""
-    grok.implements(IPerson)
-
-    __name__ = __parent__ = None
-
-    firstName = FieldProperty(IPerson['firstName'])
-    lastName = FieldProperty(IPerson['lastName'])
-    street = FieldProperty(IPerson['street'])
-    city = FieldProperty(IPerson['city'])
-
-
-class Layout(megrok.layout.Layout):
-    grok.context(Person)
-
-
-class IPersonWizard(z3cform.IWizard):
-    """Person wizard marker."""
-
-class PersonWizardPage(z3cform.WizardForm):
-    """ Wizard form."""
-    grok.implements(IPersonWizard)
-    grok.context(Person)
-
-    label = u'Person Wizard'
-
-    def setUpSteps(self):
-        return [
-            step.addStep(self, 'personstepp', weight=1),
-            step.addStep(self, 'addressstepp', weight=2),
-            ]
-
-
-class PersonStepP(z3cform.LayoutStep):
-    grok.context(PersonWizardPage)
-    label = u'Person'
-    fields = z3cform.field.Fields(IPerson).select('firstName', 'lastName')
-
-
-class AddressStepP(z3cform.LayoutStep):
-    grok.context(PersonWizardPage)
-    label = u'Address'
-    fields = z3cform.field.Fields(IPerson).select('street', 'city')
-
-
-def test_suite():
-    from zope.testing import doctest
-    from megrok.z3cform.tests import FunctionalLayer
-    suite = doctest.DocTestSuite(
-          optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS)
-    suite.layer = FunctionalLayer
-    return suite
-

Deleted: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_wizard.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_wizard.py	2009-07-24 12:49:07 UTC (rev 102234)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_wizard.py	2009-07-24 12:52:51 UTC (rev 102235)
@@ -1,220 +0,0 @@
-"""
-megrok wizard
-=============
-
-basic setup
------------
-
-  >>> from zope.app.testing.functional import getRootFolder
-  >>> root = getRootFolder()
-
-  >>> from zope import component
-  >>> from zope.interface import alsoProvides
-  >>> from zope.publisher.browser import TestRequest
-  >>> request = TestRequest() 
-  >>> alsoProvides(request, FormWizardLayer)
-
-  >>> person = Person()
-  >>> root['person'] = person
-  >>> person.__parent__ = root
-  >>> person.__name__ = u'person'
-
-  >>> from zope.component import getMultiAdapter
-  >>> pw = getMultiAdapter((person, request), name=u"personwizard")
-  >>> pw
-  <PersonWizard 'personwizard'>
-
-  >>> obj, names = pw.browserDefault(request)
-  >>> obj
-  <PersonWizard 'personwizard'>
-
-  >>> names
-  ('personstep',)
-
-Render the personStep
-
-  >>> personStep = obj.publishTraverse(request, names[0])
-  >>> personStep.update()
-  >>> page = personStep.render()
-  >>> print page
-  <div class="wizard">
-      <div class="header">Person Wizard</div>
-      <div class="wizardMenu">
-        <span class="selected">
-            <span>Person</span>
-        </span>
-        <span>
-            <a href="http://127.0.0.1/person/personwizard/addressstep">Address</a>
-        </span>
-      </div>
-    <form action="http://127.0.0.1" method="post"
-          enctype="multipart/form-data" class="edit-form"
-          id="form">
-        <div class="viewspace">
-            <div class="label">Person</div>
-            <div class="required-info">
-               <span class="required">*</span>
-               &ndash; required
-            </div>
-          <div class="step">
-            <div id="form-widgets-firstName-row" class="row">
-                <div class="label">
-                  <label for="form-widgets-firstName">
-                    <span>First Name</span>
-                    <span class="required">*</span>
-                  </label>
-                </div>
-                <div class="widget">
-      <input id="form-widgets-firstName"
-             name="form.widgets.firstName"
-             class="text-widget required textline-field"
-             value="" type="text" />
-    </div>
-            </div>
-            <div id="form-widgets-lastName-row" class="row">
-                <div class="label">
-                  <label for="form-widgets-lastName">
-                    <span>Last Name</span>
-                    <span class="required">*</span>
-                  </label>
-                </div>
-                <div class="widget">
-      <input id="form-widgets-lastName"
-             name="form.widgets.lastName"
-             class="text-widget required textline-field"
-             value="" type="text" />
-    </div>
-            </div>
-          </div>
-            <div>
-              <div class="buttons">
-                <span class="back">
-                </span>
-                <span class="step">
-  <input id="form-buttons-apply" name="form.buttons.apply"
-         class="submit-widget button-field" value="Apply"
-         type="submit" />
-                </span>
-                <span class="forward">
-  <input id="form-buttons-next" name="form.buttons.next"
-         class="submit-widget button-field" value="Next"
-         type="submit" />
-                </span>
-              </div>
-            </div>
-        </div>
-    </form>
-  </div>
-
-Sending an request but with no data
-
-  >>> request = TestRequest(form={'form.buttons.next': 'Next'})
-  >>> alsoProvides(request, FormWizardLayer)
-  >>> personWizard = PersonWizard(person, request)
-  >>> personWizard.__parent__ = person
-  >>> personWizard.__name__ = u'wizard'
-  >>> personStep = personWizard.publishTraverse(request, names[0])
-  >>> personStep.update()
-  >>> print personStep.render()
-  <div class="wizard">
-  ...
-    <div class="summary">There were some errors.</div>
-  ...
-    <div class="error">Required input is missing.</div>
-  ...
-    <div class="error">Required input is missing.</div>
-  ...
-  
-Sending an request with a working data set...
-
-  >>> request = TestRequest(form={'form.widgets.firstName': u'Roger',
-  ...                             'form.widgets.lastName': u'Ineichen',
-  ...                             'form.buttons.next': 'Next'})
-  >>> alsoProvides(request, FormWizardLayer)
-  >>> personWizard = PersonWizard(person, request)
-  >>> personWizard.__parent__ = person
-  >>> personWizard.__name__ = u'wizard'
-  >>> personStep = personWizard.publishTraverse(request, names[0])
-  >>> personStep.update()
-  >>> print personStep.render()
-
-  >>> print personWizard.nextURL
-  http://127.0.0.1/person/wizard/addressstep
-
-"""
-
-import grok
-import zope.schema
-import zope.interface
-
-from megrok import z3cform
-from z3c.wizard import wizard, step
-from zope.location.interfaces import ILocation
-from zope.schema.fieldproperty import FieldProperty
-
-
-class FormWizardLayer(z3cform.FormLayer):
-    grok.skin('formwizardlayer')
-
-
-grok.layer(FormWizardLayer)
-
-
-class IPerson(ILocation):
-    """Person interface."""
-
-    firstName = zope.schema.TextLine(title=u'First Name')
-    lastName = zope.schema.TextLine(title=u'Last Name')
-    street = zope.schema.TextLine(title=u'Street')
-    city = zope.schema.TextLine(title=u'City')
-
-
-class Person(object):
-    """Person content."""
-    grok.implements(IPerson)
-
-    __name__ = __parent__ = None
-
-    firstName = FieldProperty(IPerson['firstName'])
-    lastName = FieldProperty(IPerson['lastName'])
-    street = FieldProperty(IPerson['street'])
-    city = FieldProperty(IPerson['city'])
-
-
-class IPersonWizard(z3cform.IWizard):
-    """Person wizard marker."""
-
-class PersonWizard(z3cform.WizardForm):
-    """ Wizard form."""
-    grok.implements(IPersonWizard)
-    grok.context(Person)
-
-    label = u'Person Wizard'
-
-    def setUpSteps(self):
-        return [
-            step.addStep(self, 'personstep', weight=1),
-            step.addStep(self, 'addressstep', weight=2),
-            ]
-
-
-class PersonStep(z3cform.Step):
-    grok.context(PersonWizard)
-    label = u'Person'
-    fields = z3cform.field.Fields(IPerson).select('firstName', 'lastName')
-
-
-class AddressStep(z3cform.Step):
-    grok.context(PersonWizard)
-    label = u'Address'
-    fields = z3cform.field.Fields(IPerson).select('street', 'city')
-
-
-def test_suite():
-    from zope.testing import doctest
-    from megrok.z3cform.tests import FunctionalLayer
-    suite = doctest.DocTestSuite(
-          optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS)
-    suite.layer = FunctionalLayer
-    return suite
-

Deleted: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/wizard.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/wizard.py	2009-07-24 12:49:07 UTC (rev 102234)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/wizard.py	2009-07-24 12:52:51 UTC (rev 102235)
@@ -1,57 +0,0 @@
-import martian
-import grokcore.view
-import megrok.layout
-
-from z3c.form import form 
-from zope import component
-from z3c.wizard import wizard, step
-from zope.publisher.publish import mapply
-from megrok.z3cform.components import PageGrokForm, GrokForm
-
-class WizardForm(GrokForm, wizard.Wizard, grokcore.view.View):
-    """Base Class for a z3c.wizdard.
-    """
-    martian.baseclass()
-
-    def update(self):
-	self.updateForm()
-
-class BaseStep(step.EditStep):
-    """ Base Step
-    """
-
-class Step(BaseStep):
-    """A Step for the Witzard
-    """
-    def __call__(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
-        return self.render()
-
-
-class LayoutStep(BaseStep):
-    """A Step for the Witzard
-    """
-
-    def _render_template(self):
-        assert not (self.template is None)
-        if IGrokTemplate.providedBy(self.template):
-            return super(GrokForm, self)._render_template()
-        return self.template(self)
-
-    def __call__(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
-        #self.updateForm()
-        if self.layout is None:
-            layout = component.getMultiAdapter(
-                (self.context, self.request), megrok.layout.ILayout)
-            return layout(self)
-        return self.layout()
-    



More information about the Checkins mailing list