[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