[Checkins] SVN: grokapps/grokformdemo/trunk/ Working on the CrudExample

Christian Klinger cklinger at novareto.de
Mon Sep 21 10:35:32 EDT 2009


Log message for revision 104386:
  Working on the CrudExample

Changed:
  U   grokapps/grokformdemo/trunk/buildout.cfg
  U   grokapps/grokformdemo/trunk/setup.py
  U   grokapps/grokformdemo/trunk/src/grokformdemo/app_templates/index.pt
  U   grokapps/grokformdemo/trunk/src/grokformdemo/app_templates/mylayout.pt
  U   grokapps/grokformdemo/trunk/src/grokformdemo/configure.zcml
  A   grokapps/grokformdemo/trunk/src/grokformdemo/crudcontact/
  A   grokapps/grokformdemo/trunk/src/grokformdemo/crudcontact/__init__.py
  A   grokapps/grokformdemo/trunk/src/grokformdemo/crudcontact/contact.py
  U   grokapps/grokformdemo/trunk/src/grokformdemo/message/browser.py
  U   grokapps/grokformdemo/trunk/versions.cfg

-=-
Modified: grokapps/grokformdemo/trunk/buildout.cfg
===================================================================
--- grokapps/grokformdemo/trunk/buildout.cfg	2009-09-21 14:30:46 UTC (rev 104385)
+++ grokapps/grokformdemo/trunk/buildout.cfg	2009-09-21 14:35:32 UTC (rev 104386)
@@ -11,6 +11,8 @@
     megrok.z3cform.base
     megrok.z3cform.layout
     megrok.z3cform.wizard
+    megrok.z3cform.tabular
+    megrok.z3cform.ui
 
 [versions]
 z3c.pagelet = 1.0.3
@@ -19,6 +21,8 @@
 megrok.z3cform.base      = svn svn+ssh://svn.zope.org/repos/main/megrok.z3cform.base/trunk
 megrok.z3cform.layout    = svn svn+ssh://svn.zope.org/repos/main/megrok.z3cform.layout/trunk
 megrok.z3cform.wizard    = svn svn+ssh://svn.zope.org/repos/main/megrok.z3cform.wizard/trunk
+megrok.z3cform.tabular    = svn svn+ssh://svn.zope.org/repos/main/megrok.z3cform.tabular/trunk
+megrok.z3cform.ui    = svn svn+ssh://svn.zope.org/repos/main/Sandbox/cklinger/megrok.z3cform.ui/trunk
 # do "bin/develop up -v" to update all the checkouts
 
 [app]

Modified: grokapps/grokformdemo/trunk/setup.py
===================================================================
--- grokapps/grokformdemo/trunk/setup.py	2009-09-21 14:30:46 UTC (rev 104385)
+++ grokapps/grokformdemo/trunk/setup.py	2009-09-21 14:35:32 UTC (rev 104386)
@@ -23,10 +23,13 @@
                         'grokui.admin',
                         'z3c.testsetup',
                         'grokcore.startup',
+                        'megrok.z3ctable',
                         'megrok.layout',
                         'megrok.z3cform.base',
                         'megrok.z3cform.layout',
                         'megrok.z3cform.wizard',
+                        'megrok.z3cform.tabular',
+                        'megrok.z3cform.ui',
                         'z3c.csvvocabulary',
                         'hurry.jquery',
                         'hurry.zoperesource',

Modified: grokapps/grokformdemo/trunk/src/grokformdemo/app_templates/index.pt
===================================================================
--- grokapps/grokformdemo/trunk/src/grokformdemo/app_templates/index.pt	2009-09-21 14:30:46 UTC (rev 104385)
+++ grokapps/grokformdemo/trunk/src/grokformdemo/app_templates/index.pt	2009-09-21 14:35:32 UTC (rev 104386)
@@ -6,7 +6,7 @@
 
   <ul>
     <li> <a href="helloworldaddform"> Message </a> </li>
-    <li> <a href="addQuestionnaire.html"> Questionnaire.html </a> </li>
+    <li> <a href="contacts"> Crud Contact </a> </li>
     <li> <a href="addwizard"> Person Wizard </a> </li>
   </ul>
 

Modified: grokapps/grokformdemo/trunk/src/grokformdemo/app_templates/mylayout.pt
===================================================================
--- grokapps/grokformdemo/trunk/src/grokformdemo/app_templates/mylayout.pt	2009-09-21 14:30:46 UTC (rev 104385)
+++ grokapps/grokformdemo/trunk/src/grokformdemo/app_templates/mylayout.pt	2009-09-21 14:35:32 UTC (rev 104386)
@@ -10,9 +10,9 @@
 
     <!-- Die Magie findet in der naechsten Zeile statt! -->
     <div id="content"
-         tal:content="structure view/render">Page Content</div>
+         tal:content="structure view/content">Page Content</div>
 
-    <i> For Information you can contact: cklinger at novareto.de</i>
+    <i> For Information you can contact: grok-dev at zope.org or channel #grok on freenode irc</i>
   </body>
 </html>
 

Modified: grokapps/grokformdemo/trunk/src/grokformdemo/configure.zcml
===================================================================
--- grokapps/grokformdemo/trunk/src/grokformdemo/configure.zcml	2009-09-21 14:30:46 UTC (rev 104385)
+++ grokapps/grokformdemo/trunk/src/grokformdemo/configure.zcml	2009-09-21 14:35:32 UTC (rev 104386)
@@ -1,7 +1,7 @@
 <configure xmlns="http://namespaces.zope.org/zope"
            xmlns:grok="http://namespaces.zope.org/grok">
   <include package="grok" />
-  <include package="megrok.z3cform.base" file="default_form_layer.zcml" />
+  
     <adapter
       factory="z3c.form.hint.FieldDescriptionAsHint"
       name="title"/>

Added: grokapps/grokformdemo/trunk/src/grokformdemo/crudcontact/__init__.py
===================================================================
--- grokapps/grokformdemo/trunk/src/grokformdemo/crudcontact/__init__.py	                        (rev 0)
+++ grokapps/grokformdemo/trunk/src/grokformdemo/crudcontact/__init__.py	2009-09-21 14:35:32 UTC (rev 104386)
@@ -0,0 +1 @@
+#

Added: grokapps/grokformdemo/trunk/src/grokformdemo/crudcontact/contact.py
===================================================================
--- grokapps/grokformdemo/trunk/src/grokformdemo/crudcontact/contact.py	                        (rev 0)
+++ grokapps/grokformdemo/trunk/src/grokformdemo/crudcontact/contact.py	2009-09-21 14:35:32 UTC (rev 104386)
@@ -0,0 +1,117 @@
+import grok
+
+from zope.interface import Interface
+from zope.schema import TextLine
+from grokformdemo.app import Grokformdemo
+from megrok.z3cform.base import extends, button, PageAddForm, PageEditForm, PageDisplayForm, Fields
+from megrok.z3cform.tabular import DeleteFormTablePage
+from megrok.z3ctable import LinkColumn, NameColumn, GetAttrColumn, CheckBoxColumn
+
+
+# Interface
+class IContact(Interface):
+    name = TextLine(title=u"Name")
+    surname = TextLine(title=u"Surname")
+    email = TextLine(title=u"Email")
+    phone = TextLine(title=u"Phone")
+
+# Content
+class Contact(grok.Model):
+    grok.implements(IContact)
+
+    def __init__(self, name="", surname="", email="", phone=""):
+        self.name = name 
+        self.surname = surname 
+        self.email = email 
+        self.phone = phone 
+
+# Container
+class ContactContainer(grok.Container):
+    pass
+
+
+class ContainerIndex(DeleteFormTablePage):
+    grok.name('index')
+    grok.context(ContactContainer)
+    extends(DeleteFormTablePage)
+    status = None
+
+    @button.buttonAndHandler(u'Add new Contact')
+    def apply(self, action):
+        self.redirect(self.url(self.context, 'add'))
+
+    def executeDelete(self, object):
+        del self.context[object.name]
+
+    def render(self):
+        return self.renderFormTable()
+
+class CheckBox(CheckBoxColumn):
+    grok.name('checkBox')
+    grok.adapts(None, None, ContainerIndex)
+    weight = 0
+
+    def getItemKey(self, item):
+        return '%s-selectedItems-%s' % (self.id, item.__name__)
+
+class Name(LinkColumn):
+    grok.name('Name')
+    grok.adapts(None, None, ContainerIndex)
+    weight = 1
+    linkName = u"index"
+
+
+class Surname(GetAttrColumn):
+    grok.name('surname')
+    grok.adapts(None, None, ContainerIndex)
+    attrName = u"surname"
+    weight = 2 
+
+
+class Email(GetAttrColumn):
+    grok.name('email')
+    grok.adapts(None, None, ContainerIndex)
+    attrName = u"email"
+    weight = 3
+
+
+class Phone(GetAttrColumn):
+    grok.name('phone')
+    grok.adapts(None, None, ContainerIndex)
+    attrName = u"phone"
+    weight = 4 
+
+# Add A Default Conatiner
+ at grok.subscribe(Grokformdemo, grok.IObjectAddedEvent)
+def addContactContainer(context, event):
+    context['contacts'] = ContactContainer()
+
+
+#Views
+class Add(PageAddForm):
+    grok.context(ContactContainer)
+    fields = Fields(IContact)
+
+    def create(self, data):
+        return Contact(**data)
+
+    def add(self, object):
+        self.object = object
+        self.context[object.name] = object
+        return object
+
+    def nextURL(self):
+        return self.url(self.object)
+
+
+class Edit(PageEditForm):
+    grok.context(Contact)
+    fields = Fields(IContact)
+
+
+class Index(PageDisplayForm):
+    grok.context(Contact)
+    fields = Fields(IContact)
+    actions = []
+    #template = grok.PageTemplateFile('display.pt')
+

Modified: grokapps/grokformdemo/trunk/src/grokformdemo/message/browser.py
===================================================================
--- grokapps/grokformdemo/trunk/src/grokformdemo/message/browser.py	2009-09-21 14:30:46 UTC (rev 104385)
+++ grokapps/grokformdemo/trunk/src/grokformdemo/message/browser.py	2009-09-21 14:35:32 UTC (rev 104386)
@@ -69,4 +69,9 @@
     grok.name('index')
     template = grok.PageTemplateFile('display.pt')
 
+    # This is a fix for new grokcore.version.
+    def render(self):
+        return ""
+    render.base_method = True     
+
     fields = field.Fields(interfaces.IHelloWorld)

Modified: grokapps/grokformdemo/trunk/versions.cfg
===================================================================
--- grokapps/grokformdemo/trunk/versions.cfg	2009-09-21 14:30:46 UTC (rev 104385)
+++ grokapps/grokformdemo/trunk/versions.cfg	2009-09-21 14:35:32 UTC (rev 104386)
@@ -1,32 +1,27 @@
-# This file contains a list of versions of the various grok modules that
-# belong together.
-# It was downloaded from http://grok.zope.org/releaseinfo/grok-1.0a4.cfg
-# when this project was created.
-
 [versions]
-grok = 1.0a4
 ClientForm = 0.2.9
-docutils = 0.4
-grokcore.component = 1.6
-grokcore.formlib = 1.1
-grokcore.security = 1.0
-grokcore.view = 1.7
-grokcore.viewlet = 1.0
+grokcore.annotation = 1.1
+grokcore.component = 1.7
+grokcore.formlib = 1.4
+grokcore.security = 1.2
+grokcore.site = 1.1
+grokcore.view = 1.12.2
+grokcore.viewlet = 1.3
 grokui.admin = 0.3.2
 martian = 0.11
 mechanize = 0.1.7b
-Pygments = 0.8.1
-pytz = 2007k
+pytz = 2009l
 RestrictedPython = 3.4.2
-simplejson = 1.7.1
+simplejson = 2.0.9
 z3c.autoinclude = 0.2.2
 z3c.flashmessage = 1.0
-z3c.testsetup = 0.2.1
+z3c.recipe.eggbasket = 0.4.3
+z3c.testsetup = 0.4
 zc.catalog = 1.2.0
 ZConfig = 2.5.1
 zc.recipe.testrunner = 1.0.0
 zdaemon = 2.0.2
-ZODB3 = 3.8.1
+ZODB3 = 3.8.3
 zodbcode = 3.4.0
 zope.annotation = 3.4.1
 zope.app.apidoc = 3.4.3
@@ -70,7 +65,7 @@
 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.wsgi = 3.4.2
 zope.app.zapi = 3.4.0
 zope.app.zcmlfiles = 3.4.3
 zope.app.zopeappgenerations = 3.4.0
@@ -101,7 +96,7 @@
 zope.modulealias = 3.4.0
 zope.pagetemplate = 3.4.0
 zope.proxy = 3.4.2
-zope.publisher = 3.4.6
+zope.publisher = 3.4.9
 zope.schema = 3.4.0
 zope.security = 3.4.1
 zope.securitypolicy = 3.4.1
@@ -112,25 +107,7 @@
 zope.tal = 3.4.1
 zope.tales = 3.4.0
 zope.testbrowser = 3.4.2
-zope.testing = 3.6.0
+zope.testing = 3.7.6
 zope.thread = 3.4
 zope.traversing = 3.4.1
 zope.viewlet = 3.4.2
-
-
-# Here we pin the recipes and other packages that are not in the
-# downloaded versions.cfg of grok
-Paste = 1.7.2
-PasteDeploy = 1.3.2
-PasteScript = 1.7.3
-setuptools = 0.6c9
-z3c.evalexception = 2.0
-z3c.recipe.eggbasket = 0.4.1
-z3c.recipe.i18n = 0.5.0
-z3c.recipe.template = 0.1
-zc.buildout = 1.1.1
-zc.recipe.egg = 1.1.0
-zc.recipe.filestorage = 1.0.1
-grokcore.startup = 0.2
-
-



More information about the checkins mailing list