[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