[Checkins] SVN: grok/trunk/grokblog/src/grokblog/entry * improved
rest rendering
Martijn Faassen
faassen at infrae.com
Thu Dec 7 16:54:23 EST 2006
Log message for revision 71502:
* improved rest rendering
* grok-based addform
Patches from JW.
Changed:
U grok/trunk/grokblog/src/grokblog/entry.py
U grok/trunk/grokblog/src/grokblog/entry_templates/item.pt
-=-
Modified: grok/trunk/grokblog/src/grokblog/entry.py
===================================================================
--- grok/trunk/grokblog/src/grokblog/entry.py 2006-12-07 21:53:49 UTC (rev 71501)
+++ grok/trunk/grokblog/src/grokblog/entry.py 2006-12-07 21:54:22 UTC (rev 71502)
@@ -1,4 +1,5 @@
from datetime import datetime
+import random
from docutils.core import publish_parts
import grok
@@ -11,52 +12,45 @@
published = schema.Datetime(title=u'Published')
title = schema.TextLine(title=u'Title')
body = schema.Text(title=u'Body')
-
+
def __init__(self, title, body):
self.title = title
self.published = datetime.now()
self.body = body
-class Add(grok.View):
+class Add(grok.AddForm):
grok.context(Blog)
- grok.name('add')
- def before(self):
- id = self.request.form.get('id')
- if not id:
- return
- title = self.request.form.get('title', '')
- body = self.request.form.get('body', '')
+ form_fields = grok.Fields(
+ id=schema.TextLine(title=u"id"))
+ form_fields += grok.AutoFields(Entry).omit('published')
+
+ @grok.action('Add entry')
+ def add(self, id, title, body):
self.context['entries'][id] = Entry(title, body)
self.redirect(self.url(self.context))
class Index(grok.View):
- grok.name('index')
def before(self):
self.body = renderRest(self.context.body)
class Edit(grok.EditForm):
- grok.name('edit')
form_fields = grok.AutoFields(Entry).omit('published')
- @grok.action('Edit')
+ @grok.action('Save changes')
def edit(self, **data):
self.applyChanges(**data)
self.redirect(self.url(self.context))
-
+
class Body(grok.View):
- grok.name('body')
def render(self):
return renderRest(self.context.body)
-class Item(grok.View):
- grok.name('item')
-
class RandomDate(grok.View):
- grok.name('random_date')
+ # for testing purposes
def render(self):
self.context.published = datetime(
@@ -68,7 +62,14 @@
)
return str(self.context.published)
-rest_settings = {'file_insertion_enabled': False}
+rest_settings = {
+ # Disable inclusion of external files, which is a security risk.
+ 'file_insertion_enabled': False,
+ # Disable the promotion of a lone top-level section title to document title
+ # (and disable the promotion of a subsequent section title to document
+ # subtitle).
+ 'doctitle_xform': False
+ }
def renderRest(source):
return publish_parts(
Modified: grok/trunk/grokblog/src/grokblog/entry_templates/item.pt
===================================================================
--- grok/trunk/grokblog/src/grokblog/entry_templates/item.pt 2006-12-07 21:53:49 UTC (rev 71501)
+++ grok/trunk/grokblog/src/grokblog/entry_templates/item.pt 2006-12-07 21:54:22 UTC (rev 71502)
@@ -1,9 +1,9 @@
<div class="entry">
- <h2>
+ <h2 class="title">
<a tal:attributes="href python:view.url(context)">
<tal:block content="context/title"/>
</a>
(<span class="published" tal:content="context/published"/>)
</h2>
- <p tal:content="structure context/@@body"/>
+ <tal:block content="structure context/@@body"/>
</div>
\ No newline at end of file
More information about the Checkins
mailing list