[Checkins] SVN: grok/trunk/ - added our first (working) demo application: a GROKI ... aeh ... WIKI

Christian Theune ct at gocept.com
Tue Oct 17 18:20:05 EDT 2006


Log message for revision 70767:
   - added our first (working) demo application: a GROKI ... aeh ... WIKI
   - added wiki to buildout to make it work for now
  

Changed:
  U   grok/trunk/buildout.cfg
  A   grok/trunk/grokwiki/
  A   grok/trunk/grokwiki/setup.py
  A   grok/trunk/grokwiki/src/
  A   grok/trunk/grokwiki/src/grokwiki/
  A   grok/trunk/grokwiki/src/grokwiki/__init__.py
  A   grok/trunk/grokwiki/src/grokwiki/configure.zcml
  A   grok/trunk/grokwiki/src/grokwiki/wiki.py
  A   grok/trunk/grokwiki/src/grokwiki/wikipage.py

-=-
Modified: grok/trunk/buildout.cfg
===================================================================
--- grok/trunk/buildout.cfg	2006-10-17 22:18:36 UTC (rev 70766)
+++ grok/trunk/buildout.cfg	2006-10-17 22:20:04 UTC (rev 70767)
@@ -1,5 +1,5 @@
 [buildout]
-develop = .
+develop = . grokwiki
 parts = zope3 data instance test
 
 # find-links = http://download.zope.org/distribution/
@@ -17,12 +17,16 @@
 user = grok:grok
 eggs = setuptools
        grok
+       grokwiki
 
 zcml = *
+       grok-meta
+       grokwiki
 
 [test]
 recipe = zc.recipe.testrunner
 eggs = grok
+       grokwiki
 extra-paths = parts/zope3/src
 defaults = ['--tests-pattern', '^f?tests$',
             '-v'

Added: grok/trunk/grokwiki/setup.py
===================================================================
--- grok/trunk/grokwiki/setup.py	2006-10-17 22:18:36 UTC (rev 70766)
+++ grok/trunk/grokwiki/setup.py	2006-10-17 22:20:04 UTC (rev 70767)
@@ -0,0 +1,20 @@
+from setuptools import setup, find_packages
+
+setup(
+    name='grokwiki',
+    version='0.1',
+    author='Grok Team',
+    author_email='grok-dev at zope.org',
+    url='http://svn.zope.org/grok/trunk',
+    description="""\
+Grok: Now even cavemen can use wikis!
+""",
+    packages=find_packages('src'),
+    package_dir = {'': 'src'},
+    include_package_data = True,
+    zip_safe=False,
+    license='ZPL',
+
+    install_requires=['setuptools',
+                     ],
+)


Property changes on: grok/trunk/grokwiki/setup.py
___________________________________________________________________
Name: svn:keywords
   + Id Rev Date
Name: svn:eol-style
   + native


Property changes on: grok/trunk/grokwiki/src
___________________________________________________________________
Name: svn:ignore
   + grokwiki.egg-info



Added: grok/trunk/grokwiki/src/grokwiki/__init__.py
===================================================================
--- grok/trunk/grokwiki/src/grokwiki/__init__.py	2006-10-17 22:18:36 UTC (rev 70766)
+++ grok/trunk/grokwiki/src/grokwiki/__init__.py	2006-10-17 22:20:04 UTC (rev 70767)
@@ -0,0 +1 @@
+# this is a package


Property changes on: grok/trunk/grokwiki/src/grokwiki/__init__.py
___________________________________________________________________
Name: svn:keywords
   + Id Rev Date
Name: svn:eol-style
   + native

Added: grok/trunk/grokwiki/src/grokwiki/configure.zcml
===================================================================
--- grok/trunk/grokwiki/src/grokwiki/configure.zcml	2006-10-17 22:18:36 UTC (rev 70766)
+++ grok/trunk/grokwiki/src/grokwiki/configure.zcml	2006-10-17 22:20:04 UTC (rev 70767)
@@ -0,0 +1,14 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    xmlns:browser="http://namespaces.zope.org/browser"
+    xmlns:grok="http://namespaces.zope.org/grok"
+    >
+    <grok:grok package="."/>
+
+    <browser:addMenuItem
+        class=".wiki.Wiki"
+        title="GROK WIKI"
+        description="GROK NOW WIKI"
+        permission="zope.ManageContent"
+        />
+</configure>


Property changes on: grok/trunk/grokwiki/src/grokwiki/configure.zcml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: grok/trunk/grokwiki/src/grokwiki/wiki.py
===================================================================
--- grok/trunk/grokwiki/src/grokwiki/wiki.py	2006-10-17 22:18:36 UTC (rev 70766)
+++ grok/trunk/grokwiki/src/grokwiki/wiki.py	2006-10-17 22:20:04 UTC (rev 70767)
@@ -0,0 +1,60 @@
+import grok
+import re
+
+from zope.app import zapi
+
+LINK_PATTERN = re.compile('\[\[(.*?)\]\]')
+find_wiki_links = LINK_PATTERN.findall
+
+from zope.app.folder.folder import Folder
+
+class Wiki(grok.Model, Folder):
+    pass
+
+class WikiIndex(grok.View):
+    grok.context(Wiki)
+    grok.name('index')
+
+    def render(self):
+        self.request.response.redirect('home')
+
+ at grok.subscribe(Wiki, grok.IObjectAddedEvent)
+def setupHomepage(wiki, event):
+    page = WikiPage()
+    wiki['home'] = page
+
+class WikiPage(grok.Model):
+
+    def __init__(self):
+        self.text = u"GROK EMPTY WIKI PAGE. FILL!"
+
+class Index(grok.View):
+    grok.context(WikiPage)
+
+    def before(self):
+        text = self.request.form.get('wikidata')
+        wiki = self.context.__parent__
+        if text:
+            links = find_wiki_links(text)
+            for link in links:
+                if link not in wiki:
+                    wiki[link] = WikiPage()
+            self.context.text = text
+
+        wiki_url = zapi.absoluteURL(wiki, self.request)
+
+        self.rendered_text, replacements = LINK_PATTERN.subn(r'<a href="%s/\1">\1</a>' % wiki_url, self.context.text)
+
+
+index = grok.PageTemplate("""\
+<html>
+<body>
+<div tal:content="structure view/rendered_text">
+</div>
+<hr/>
+<form tal:attributes="action request/URL" method="POST">
+<textarea name="wikidata" tal:content="context/text"/><br/>
+<input type="submit"/>
+</form>
+</body>
+</html>""")


Property changes on: grok/trunk/grokwiki/src/grokwiki/wiki.py
___________________________________________________________________
Name: svn:keywords
   + Id Rev Date
Name: svn:eol-style
   + native

Added: grok/trunk/grokwiki/src/grokwiki/wikipage.py
===================================================================
--- grok/trunk/grokwiki/src/grokwiki/wikipage.py	2006-10-17 22:18:36 UTC (rev 70766)
+++ grok/trunk/grokwiki/src/grokwiki/wikipage.py	2006-10-17 22:20:04 UTC (rev 70767)
@@ -0,0 +1,35 @@
+import grok
+
+from zope.app.folder.folder import Folder
+
+class Wiki(grok.Model, Folder):
+    pass
+
+ at grok.subscribe(Wiki, grok.IObjectAddedEvent)
+def setupHomepage(wiki, event):
+    page = WikiPage()
+    wiki['home'] = page
+
+class WikiPage(grok.Model):
+
+    def __init__(self):
+        self.text = u"GROK EMPTY WIKI PAGE. FILL!"
+
+grok.context(WikiPage)
+
+class Index(grok.View):
+
+    def before(self):
+        text = self.request.form.get('wikidata')
+        if text:
+            self.context.text = text
+
+index = grok.PageTemplate("""\
+<html>
+<body>
+<form action=".">
+<textarea name="wikidata" tal:content="context/text"/><br/>
+<input type="submit"/>
+</form>
+</body>
+</html>""")


Property changes on: grok/trunk/grokwiki/src/grokwiki/wikipage.py
___________________________________________________________________
Name: svn:keywords
   + Id Rev Date
Name: svn:eol-style
   + native



More information about the Checkins mailing list