[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