[Repoze-checkins] r1249 - in repoze.bfg/trunk/repoze/bfg: . sampleapp sampleapp/www
Chris McDonough
chrism at agendaless.com
Tue Jul 8 11:34:54 EDT 2008
Author: Chris McDonough <chrism at agendaless.com>
Date: Tue Jul 8 11:34:54 2008
New Revision: 1249
Log:
Fix a thinko in metaconfigure.
Allow blog entries to be created.
Added:
repoze.bfg/trunk/repoze/bfg/sampleapp/www/blog_entry_add.pt (contents, props changed)
Modified:
repoze.bfg/trunk/repoze/bfg/metaconfigure.py
repoze.bfg/trunk/repoze/bfg/sampleapp/browser.py
repoze.bfg/trunk/repoze/bfg/sampleapp/configure.zcml
repoze.bfg/trunk/repoze/bfg/sampleapp/www/blog.pt
Modified: repoze.bfg/trunk/repoze/bfg/metaconfigure.py
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/metaconfigure.py (original)
+++ repoze.bfg/trunk/repoze/bfg/metaconfigure.py Tue Jul 8 11:34:54 2008
@@ -41,7 +41,7 @@
if not os.path.isfile(template):
raise ConfigurationError("No such file", template)
- template_inst = PageTemplateFile(template)
+ template_inst = PageTemplateFile(template)
def view_factory(context, request):
if template:
Modified: repoze.bfg/trunk/repoze/bfg/sampleapp/browser.py
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/sampleapp/browser.py (original)
+++ repoze.bfg/trunk/repoze/bfg/sampleapp/browser.py Tue Jul 8 11:34:54 2008
@@ -1,6 +1,10 @@
+import time
+
from webob import Response
+from webob.exc import HTTPFound
from repoze.bfg.template import TemplateView
+from repoze.bfg.sampleapp.models import BlogEntry
def datestring(dt):
return dt.strftime('%Y-%m-%dT%H:%M:%S')
@@ -29,3 +33,17 @@
'created':datestring(self.context.created),
}
+class BlogEntryAddView(object):
+ def __init__(self, context, request):
+ self.context = context
+ self.request = request
+
+ def __call__(self):
+ author = self.request.params['author']
+ body = self.request.params['body']
+ title = self.request.params['title']
+ name = str(time.time())
+ new_entry = BlogEntry(name, title, body, author)
+ self.context[name] = new_entry
+ return HTTPFound(location='/')
+
Modified: repoze.bfg/trunk/repoze/bfg/sampleapp/configure.zcml
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/sampleapp/configure.zcml (original)
+++ repoze.bfg/trunk/repoze/bfg/sampleapp/configure.zcml Tue Jul 8 11:34:54 2008
@@ -20,6 +20,22 @@
permission="repoze.view"
/>
+ <!-- the add template for a BlogEntry -->
+ <browser:page
+ for=".models.IBlog"
+ template="www/blog_entry_add.pt"
+ name="add_entry.html"
+ permission="repoze.view"
+ />
+
+ <!-- the add handler for a BlogEntry -->
+ <browser:page
+ for=".models.IBlog"
+ class=".browser.BlogEntryAddView"
+ permission="repoze.view"
+ name="add_entry_handler"
+ />
+
<!-- the contents view for any mapping (shows dict members) -->
<browser:page
for=".models.IMapping"
Modified: repoze.bfg/trunk/repoze/bfg/sampleapp/www/blog.pt
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/sampleapp/www/blog.pt (original)
+++ repoze.bfg/trunk/repoze/bfg/sampleapp/www/blog.pt Tue Jul 8 11:34:54 2008
@@ -15,5 +15,8 @@
<td>${entry.created}</td>
</tr>
</table>
+ <p>
+ <a href="add_entry.html">Add blog entry</a>
+ </p>
</body>
</html>
Added: repoze.bfg/trunk/repoze/bfg/sampleapp/www/blog_entry_add.pt
==============================================================================
--- (empty file)
+++ repoze.bfg/trunk/repoze/bfg/sampleapp/www/blog_entry_add.pt Tue Jul 8 11:34:54 2008
@@ -0,0 +1,26 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:tal="http://xml.zope.org/namespaces/tal">
+<head></head>
+<body>
+ <form action="add_entry_handler" method="POST">
+ <h1>Add a blog entry</h1>
+ <table border="0">
+ <tr>
+ <th>Title</th>
+ <td><input type="text" name="title"/></td>
+ </tr>
+ <tr>
+ <th>Author</th>
+ <td><input type="text" name="author"/></td>
+ </tr>
+ <tr>
+ <th>Body</th>
+ <td><textarea name="body" rows="10" value=""> </textarea></td>
+ </tr>
+ <tr>
+ <td><input type="submit" name="add" value="Add"/></td>
+ </tr>
+ </table>
+ </form>
+</body>
+</html>
More information about the Repoze-checkins
mailing list