diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-07-08 15:34:54 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-07-08 15:34:54 +0000 |
| commit | 627152500bc9621a9dde766ae429d6e717043df9 (patch) | |
| tree | bc35618fe5bf8215fed8cb44c5e22f9ff1020a65 | |
| parent | 2793484d3e201515cbc9a5a5dd5106891a4b37bc (diff) | |
| download | pyramid-627152500bc9621a9dde766ae429d6e717043df9.tar.gz pyramid-627152500bc9621a9dde766ae429d6e717043df9.tar.bz2 pyramid-627152500bc9621a9dde766ae429d6e717043df9.zip | |
Fix a thinko in metaconfigure.
Allow blog entries to be created.
| -rw-r--r-- | repoze/bfg/metaconfigure.py | 2 | ||||
| -rw-r--r-- | repoze/bfg/sampleapp/browser.py | 18 | ||||
| -rw-r--r-- | repoze/bfg/sampleapp/configure.zcml | 16 | ||||
| -rw-r--r-- | repoze/bfg/sampleapp/www/blog.pt | 3 | ||||
| -rw-r--r-- | repoze/bfg/sampleapp/www/blog_entry_add.pt | 26 |
5 files changed, 64 insertions, 1 deletions
diff --git a/repoze/bfg/metaconfigure.py b/repoze/bfg/metaconfigure.py index f958d1f2f..bc136055a 100644 --- a/repoze/bfg/metaconfigure.py +++ b/repoze/bfg/metaconfigure.py @@ -41,7 +41,7 @@ def page(_context, 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: diff --git a/repoze/bfg/sampleapp/browser.py b/repoze/bfg/sampleapp/browser.py index 5dc354736..755c6beb1 100644 --- a/repoze/bfg/sampleapp/browser.py +++ b/repoze/bfg/sampleapp/browser.py @@ -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 @@ class BlogEntryDefaultView(TemplateView): '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='/') + diff --git a/repoze/bfg/sampleapp/configure.zcml b/repoze/bfg/sampleapp/configure.zcml index 0e58126a7..8b7a3de7c 100644 --- a/repoze/bfg/sampleapp/configure.zcml +++ b/repoze/bfg/sampleapp/configure.zcml @@ -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" diff --git a/repoze/bfg/sampleapp/www/blog.pt b/repoze/bfg/sampleapp/www/blog.pt index ffe8659df..8ccbe56a2 100644 --- a/repoze/bfg/sampleapp/www/blog.pt +++ b/repoze/bfg/sampleapp/www/blog.pt @@ -15,5 +15,8 @@ <td>${entry.created}</td> </tr> </table> + <p> + <a href="add_entry.html">Add blog entry</a> + </p> </body> </html> diff --git a/repoze/bfg/sampleapp/www/blog_entry_add.pt b/repoze/bfg/sampleapp/www/blog_entry_add.pt new file mode 100644 index 000000000..b41ae4b02 --- /dev/null +++ b/repoze/bfg/sampleapp/www/blog_entry_add.pt @@ -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> |
