[Checkins] SVN: Sandbox/cklinger/megrok.z3cwizard/trunk/ Creating Project Space for megrok.z3cwizard

Christian Klinger cklinger at novareto.de
Fri Jul 24 09:16:15 EDT 2009


Log message for revision 102239:
  Creating Project Space for megrok.z3cwizard

Changed:
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/HISTORY.txt
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/README.txt
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/bootstrap.py
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/buildout.cfg
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/__init__.py
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/__init__.py
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/components.py
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/configure.zcml
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/ftesting.zcml
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/meta.py
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/meta.zcml
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/__init__.py
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/test_layout_wizard_templates/
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/test_layout_wizard_templates/layout.pt
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/test_wizard.py
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/setup.py
  A   Sandbox/cklinger/megrok.z3cwizard/trunk/versions.cfg

-=-
Added: Sandbox/cklinger/megrok.z3cwizard/trunk/HISTORY.txt
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/HISTORY.txt	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/HISTORY.txt	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,8 @@
+Changelog
+=========
+
+0.1 - Unreleased
+----------------
+
+* Initial release
+

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/README.txt
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/README.txt	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/README.txt	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,4 @@
+Introduction
+============
+
+

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/bootstrap.py
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/bootstrap.py	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/bootstrap.py	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,84 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Bootstrap a buildout-based project
+
+Simply run this script in a directory containing a buildout.cfg.
+The script accepts buildout command-line options, so you can
+use the -c option to specify an alternate configuration file.
+
+$Id$
+"""
+
+import os, shutil, sys, tempfile, urllib2
+
+tmpeggs = tempfile.mkdtemp()
+
+is_jython = sys.platform.startswith('java')
+
+try:
+    import pkg_resources
+except ImportError:
+    ez = {}
+    exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
+                         ).read() in ez
+    ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
+
+    import pkg_resources
+
+if sys.platform == 'win32':
+    def quote(c):
+        if ' ' in c:
+            return '"%s"' % c # work around spawn lamosity on windows
+        else:
+            return c
+else:
+    def quote (c):
+        return c
+
+cmd = 'from setuptools.command.easy_install import main; main()'
+ws  = pkg_resources.working_set
+
+if len(sys.argv) > 2 and sys.argv[1] == '--version':
+    VERSION = '==%s' % sys.argv[2]
+    args = sys.argv[3:] + ['bootstrap']
+else:
+    VERSION = ''
+    args = sys.argv[1:] + ['bootstrap']
+
+if is_jython:
+    import subprocess
+
+    assert subprocess.Popen([sys.executable] + ['-c', quote(cmd), '-mqNxd',
+           quote(tmpeggs), 'zc.buildout' + VERSION],
+           env=dict(os.environ,
+               PYTHONPATH=
+               ws.find(pkg_resources.Requirement.parse('setuptools')).location
+               ),
+           ).wait() == 0
+
+else:
+    assert os.spawnle(
+        os.P_WAIT, sys.executable, quote (sys.executable),
+        '-c', quote (cmd), '-mqNxd', quote (tmpeggs), 'zc.buildout' + VERSION,
+        dict(os.environ,
+            PYTHONPATH=
+            ws.find(pkg_resources.Requirement.parse('setuptools')).location
+            ),
+        ) == 0
+
+ws.add_entry(tmpeggs)
+ws.require('zc.buildout' + VERSION)
+import zc.buildout.buildout
+zc.buildout.buildout.main(args)
+shutil.rmtree(tmpeggs)

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/buildout.cfg
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/buildout.cfg	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/buildout.cfg	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,21 @@
+[buildout]
+develop = .
+parts = sources test
+extends = versions.cfg
+versions = versions
+newest = false
+
+[versions]
+z3c.pagelet = 1.0.3
+zope.container = 3.8.1
+
+[sources]
+recipe = infrae.subversion
+as_eggs = True
+urls = 
+    svn://svn.zope.org/repos/main/megrok.z3cform/branches/megrok.z3cfrom-layout megrok.z3cform
+
+[test]
+recipe = zc.recipe.testrunner
+eggs = megrok.z3cwizard 
+defaults = ['--tests-pattern', '^f?tests$', '-v', '-c', '--package=megrok.z3cwizard']

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/__init__.py
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/__init__.py	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/__init__.py	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__)

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/__init__.py
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/__init__.py	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/__init__.py	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,3 @@
+from components import WizardForm, Step, LayoutStep
+from z3c.wizard.interfaces import IWizard
+

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/components.py
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/components.py	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/components.py	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,55 @@
+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
+        if self.layout is None:
+            layout = component.getMultiAdapter(
+                (self.context, self.request), megrok.layout.ILayout)
+            return layout(self)
+        return self.layout()

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/configure.zcml
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/configure.zcml	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/configure.zcml	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,6 @@
+<configure
+   xmlns="http://namespaces.zope.org/zope">
+
+  <include package="megrok.z3cform" />
+
+</configure>

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/ftesting.zcml
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/ftesting.zcml	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/ftesting.zcml	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,37 @@
+<configure
+   xmlns="http://namespaces.zope.org/zope"
+   xmlns:grok="http://namespaces.zope.org/grok">
+
+  <include package="grok" />
+  <include package="grok" file="meta.zcml" />
+
+  <include package="megrok.z3cwizard" file="meta.zcml" />
+  <include package="megrok.z3cwizard" />
+  <grok:grok package="megrok.z3cwizard.tests" />
+
+  <securityPolicy
+      component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy"
+      />
+
+  <unauthenticatedPrincipal
+      id="zope.anybody"
+      title="Unauthenticated User"
+      />
+  <grant
+      permission="zope.View"
+      principal="zope.anybody"
+      />
+
+  <principal
+      id="zope.mgr"
+      title="Manager"
+      login="mgr"
+      password="mgrpw"
+      />
+
+  <role id="zope.Manager" title="Site Manager" />
+  <grantAll role="zope.Manager" />
+  <grant role="zope.Manager" principal="zope.mgr" />
+
+</configure>
+

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/meta.py
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/meta.py	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/meta.py	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,19 @@
+import martian
+import grokcore.component
+
+from megrok.z3cwizard import components
+from z3c.wizard.zcml import wizardStepDirective
+from grokcore.view.meta.views import default_view_name
+
+
+class WizardStepGrokker(martian.ClassGrokker):
+    martian.component(components.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
+

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/meta.zcml
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/meta.zcml	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/meta.zcml	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,12 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    xmlns:grok="http://namespaces.zope.org/grok">
+
+
+    <include package="megrok.z3cform" file="meta.zcml"/>
+    <include package="z3c.wizard"/>
+
+    <grok:grok package=".meta" />
+
+</configure>
+

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/__init__.py
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/__init__.py	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/__init__.py	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,9 @@
+import os.path
+import megrok.z3cwizard
+from zope.app.testing.functional import ZCMLLayer
+
+ftesting_zcml = os.path.join(os.path.dirname(megrok.z3cwizard.__file__),
+                             'ftesting.zcml')
+FunctionalLayer = ZCMLLayer(ftesting_zcml, __name__, 'FunctionalLayer',
+                            allow_teardown=True)
+

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/test_layout_wizard_templates/layout.pt
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/test_layout_wizard_templates/layout.pt	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/test_layout_wizard_templates/layout.pt	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,7 @@
+<html>
+ <body>
+   <div class="layout" tal:content="structure view/render">
+         here comes the content
+   </div>
+ </body>
+</html>

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/test_wizard.py
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/test_wizard.py	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/megrok/z3cwizard/tests/test_wizard.py	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,221 @@
+"""
+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 megrok import z3cwizard
+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(z3cwizard.IWizard):
+    """Person wizard marker."""
+
+class PersonWizard(z3cwizard.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(z3cwizard.Step):
+    grok.context(PersonWizard)
+    label = u'Person'
+    fields = z3cform.field.Fields(IPerson).select('firstName', 'lastName')
+
+
+class AddressStep(z3cwizard.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.z3cwizard.tests import FunctionalLayer
+    suite = doctest.DocTestSuite(
+          optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS)
+    suite.layer = FunctionalLayer
+    return suite
+

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/setup.py
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/setup.py	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/setup.py	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,33 @@
+from setuptools import setup, find_packages
+import os
+
+version = '0.1'
+
+setup(name='megrok.z3cwizard',
+      version=version,
+      description="grok add on for createing an Wizard",
+      long_description=open("README.txt").read() + "\n" +
+                       open("HISTORY.txt").read(),
+      # Get more strings from http://www.python.org/pypi?%3Aaction=list_classifiers
+      classifiers=[
+        "Programming Language :: Python",
+        "Topic :: Software Development :: Libraries :: Python Modules",
+        ],
+      keywords='grok z3c.form megrok.z3cform wizard',
+      author='Christian Klinger',
+      author_email='cklinger at novareto.de',
+      url='',
+      license='GPL',
+      packages=find_packages(exclude=['ez_setup']),
+      namespace_packages=['megrok'],
+      include_package_data=True,
+      zip_safe=False,
+      install_requires=[
+          'setuptools',
+	  'z3c.wizard',
+	  'megrok.z3cform',
+      ],
+      entry_points="""
+      # -*- Entry points: -*-
+      """,
+      )

Added: Sandbox/cklinger/megrok.z3cwizard/trunk/versions.cfg
===================================================================
--- Sandbox/cklinger/megrok.z3cwizard/trunk/versions.cfg	                        (rev 0)
+++ Sandbox/cklinger/megrok.z3cwizard/trunk/versions.cfg	2009-07-24 13:16:15 UTC (rev 102239)
@@ -0,0 +1,110 @@
+[versions]
+ClientForm = 0.2.9
+grokcore.component = 1.7
+grokcore.formlib = 1.1
+grokcore.security = 1.1
+grokcore.view = 1.7
+grokcore.viewlet = 1.0
+grokui.admin = 0.3.2
+martian = 0.11
+mechanize = 0.1.7b
+pytz = 2007k
+RestrictedPython = 3.4.2
+simplejson = 1.7.1
+z3c.autoinclude = 0.2.2
+z3c.flashmessage = 1.0
+z3c.testsetup = 0.2.1
+zc.catalog = 1.2.0
+ZConfig = 2.5.1
+zc.recipe.testrunner = 1.0.0
+zdaemon = 2.0.2
+ZODB3 = 3.8.1
+zodbcode = 3.4.0
+zope.annotation = 3.4.1
+zope.app.apidoc = 3.4.3
+zope.app.applicationcontrol = 3.4.3
+zope.app.appsetup = 3.4.1
+zope.app.authentication = 3.4.4
+zope.app.basicskin = 3.4.0
+zope.app.broken = 3.4.0
+zope.app.catalog = 3.5.1
+zope.app.component = 3.4.1
+zope.app.container = 3.5.6
+zope.app.content = 3.4.0
+zope.app.debug = 3.4.1
+zope.app.dependable = 3.4.0
+zope.app.error = 3.5.1
+zope.app.exception = 3.4.1
+zope.app.file = 3.4.4
+zope.app.folder = 3.4.0
+zope.app.form = 3.4.1
+zope.app.generations = 3.4.1
+zope.app.http = 3.4.1
+zope.app.i18n = 3.4.4
+zope.app.interface = 3.4.0
+zope.app.intid = 3.4.1
+zope.app.keyreference = 3.4.1
+zope.app.locales = 3.4.5
+zope.app.onlinehelp = 3.4.1
+zope.app.pagetemplate = 3.4.1
+zope.app.preference = 3.4.1
+zope.app.principalannotation = 3.4.0
+zope.app.publication = 3.4.3
+zope.app.publisher = 3.5.1
+zope.app.renderer = 3.4.0
+zope.app.rotterdam = 3.4.1
+zope.app.schema = 3.4.0
+zope.app.security = 3.5.2
+zope.app.securitypolicy = 3.4.6
+zope.app.server = 3.4.2
+zope.app.session = 3.5.1
+zope.app.skins = 3.4.0
+zope.app.testing = 3.4.3
+zope.app.tree = 3.4.0
+zope.app.twisted = 3.4.1
+zope.app.wsgi = 3.4.1
+zope.app.zapi = 3.4.0
+zope.app.zcmlfiles = 3.4.3
+zope.app.zopeappgenerations = 3.4.0
+zope.cachedescriptors = 3.4.1
+zope.component = 3.4.0
+zope.configuration = 3.4.0
+zope.contentprovider = 3.4.0
+zope.contenttype = 3.4.0
+zope.copypastemove = 3.4.0
+zope.datetime = 3.4.0
+zope.deferredimport = 3.4.0
+zope.deprecation = 3.4.0
+zope.dottedname = 3.4.2
+zope.dublincore = 3.4.0
+zope.error = 3.5.1
+zope.event = 3.4.0
+zope.exceptions = 3.4.0
+zope.filerepresentation = 3.4.0
+zope.formlib = 3.4.0
+zope.hookable = 3.4.0
+zope.i18n = 3.4.0
+zope.i18nmessageid = 3.4.3
+zope.index = 3.4.1
+zope.interface = 3.4.1
+zope.lifecycleevent = 3.4.0
+zope.location = 3.4.0
+zope.minmax = 1.1.0
+zope.modulealias = 3.4.0
+zope.pagetemplate = 3.4.0
+zope.proxy = 3.4.2
+zope.publisher = 3.4.9
+zope.schema = 3.4.0
+zope.security = 3.4.1
+zope.securitypolicy = 3.4.1
+zope.server = 3.4.3
+zope.session = 3.4.1
+zope.size = 3.4.0
+zope.structuredtext = 3.4.0
+zope.tal = 3.4.1
+zope.tales = 3.4.0
+zope.testbrowser = 3.4.2
+zope.testing = 3.7.6
+zope.thread = 3.4
+zope.traversing = 3.4.1
+zope.viewlet = 3.4.2



More information about the Checkins mailing list