[Checkins] SVN: grok/trunk/grokblog/src/grokblog/ Split out entry from blog.

Martijn Faassen faassen at infrae.com
Fri Dec 1 14:45:18 EST 2006


Log message for revision 71365:
  Split out entry from blog.
  

Changed:
  U   grok/trunk/grokblog/src/grokblog/blog.py
  D   grok/trunk/grokblog/src/grokblog/blog_templates/addentry.pt
  D   grok/trunk/grokblog/src/grokblog/blog_templates/entryedit.pt
  D   grok/trunk/grokblog/src/grokblog/blog_templates/entryindex.pt
  D   grok/trunk/grokblog/src/grokblog/blog_templates/entryitem.pt
  A   grok/trunk/grokblog/src/grokblog/entry.py
  A   grok/trunk/grokblog/src/grokblog/entry_templates/
  A   grok/trunk/grokblog/src/grokblog/entry_templates/add.pt
  A   grok/trunk/grokblog/src/grokblog/entry_templates/edit.pt
  A   grok/trunk/grokblog/src/grokblog/entry_templates/index.pt
  A   grok/trunk/grokblog/src/grokblog/entry_templates/item.pt

-=-
Modified: grok/trunk/grokblog/src/grokblog/blog.py
===================================================================
--- grok/trunk/grokblog/src/grokblog/blog.py	2006-12-01 18:03:58 UTC (rev 71364)
+++ grok/trunk/grokblog/src/grokblog/blog.py	2006-12-01 19:45:18 UTC (rev 71365)
@@ -1,10 +1,7 @@
 import random
 from datetime import datetime, timedelta
-from docutils.core import publish_parts
 import grok
 
-from zope import interface, schema
-
 class Blog(grok.Container, grok.Site):
     def __init__(self):
         super(Blog, self).__init__()
@@ -20,19 +17,6 @@
 class Entries(grok.Container):
     pass
 
-class IEntry(interface.Interface):
-    published = schema.Datetime(title=u'Published')
-    title = schema.TextLine(title=u'Title')
-    body = schema.Text(title=u'Body')
-
-class Entry(grok.Model):
-    interface.implements(IEntry)
-
-    def __init__(self, title, body):
-        self.title = title
-        self.published = datetime.now()
-        self.body = body
-
 class Year(grok.Model):
     def __init__(self, year):
         self.year = year
@@ -130,74 +114,9 @@
     def renderEntry(self, entry):
         return renderRest(entry.body)
 
-class AddEntry(grok.View):
-    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', '')
-        self.context['entries'][id] = Entry(title, body)
-        self.redirect(self.url(self.context))
-
 class EntriesIndex(grok.View):
     grok.context(Entries)
     grok.name('index')
 
     def render(self):
         return "Entries: %s" % ' '.join(self.context.keys())
-
-rest_settings = {'file_insertion_enabled': False}
-
-def renderRest(source):
-    return publish_parts(
-        source, writer_name='html', settings_overrides=rest_settings
-        )['html_body']
-
-class EntryIndex(grok.View):
-    grok.context(IEntry)
-    grok.name('index')
-
-    def before(self):
-        self.body = renderRest(self.context.body)
-
-class EntryEdit(grok.View):
-    grok.context(IEntry)
-    grok.name('edit')
-
-    def before(self):
-        title = self.request.form.get('title', '')
-        if not title:
-            return
-        body = self.request.form.get('body', '')
-        self.context.title = title
-        self.context.body = body
-        self.redirect(self.url(self.context))
-
-class EntryBody(grok.View):
-    grok.context(IEntry)
-    grok.name('body')
-
-    def render(self):
-        return renderRest(self.context.body)
-
-class EntryItem(grok.View):
-    grok.context(IEntry)
-    grok.name('item')
-
-class EntryRandomDate(grok.View):
-    grok.context(IEntry)
-    grok.name('random_date')
-
-    def render(self):
-        self.context.published = datetime(
-            2006,
-            11,
-            random.randrange(1, 29),
-            random.randrange(0, 24),
-            random.randrange(0, 60),
-            )
-        return str(self.context.published)

Deleted: grok/trunk/grokblog/src/grokblog/blog_templates/addentry.pt
===================================================================
--- grok/trunk/grokblog/src/grokblog/blog_templates/addentry.pt	2006-12-01 18:03:58 UTC (rev 71364)
+++ grok/trunk/grokblog/src/grokblog/blog_templates/addentry.pt	2006-12-01 19:45:18 UTC (rev 71365)
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-  <head>
-    <title>add entry</title>
-  </head>
-  <body>
-    <h1>add entry</h1>
-    <form tal:attributes="action python:view.url()" method="POST">
-      id: <input type="text" name="id" value="" /><br />
-      title: <input type="text" name="title" value="" /><br />
-      body: <textarea name="body"></textarea><br />
-      <input type="submit" value="Add Entry" />
-    </form>
-  </body>
-</html>

Deleted: grok/trunk/grokblog/src/grokblog/blog_templates/entryedit.pt
===================================================================
--- grok/trunk/grokblog/src/grokblog/blog_templates/entryedit.pt	2006-12-01 18:03:58 UTC (rev 71364)
+++ grok/trunk/grokblog/src/grokblog/blog_templates/entryedit.pt	2006-12-01 19:45:18 UTC (rev 71365)
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-  <head>
-    <title>edit entry</title>
-  </head>
-  <body>
-    <h1>edit entry</h1>
-    <form tal:attributes="action python:view.url()" method="POST">
-      title: <input type="text" name="title"
-      tal:attributes="value context/title"
-      /><br />
-      body: <textarea name="body"
-      tal:content="context/body"/><br />
-      <input type="submit" value="Save changes..." />
-    </form>
-  </body>
-</html>

Deleted: grok/trunk/grokblog/src/grokblog/blog_templates/entryindex.pt
===================================================================
--- grok/trunk/grokblog/src/grokblog/blog_templates/entryindex.pt	2006-12-01 18:03:58 UTC (rev 71364)
+++ grok/trunk/grokblog/src/grokblog/blog_templates/entryindex.pt	2006-12-01 19:45:18 UTC (rev 71365)
@@ -1,14 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-  <head>
-    <title tal:content="context/title"/>
-  </head>
-  <body>
-    <h1>
-      <tal:block content="context/title"/>
-      (<span class="published" tal:content="context/published"/>)
-    </h1>
-    <a tal:attributes="href python:view.url('edit')">edit...</a>
-    <p tal:content="structure context/@@body"/>
-  </body>
-</html>

Deleted: grok/trunk/grokblog/src/grokblog/blog_templates/entryitem.pt
===================================================================
--- grok/trunk/grokblog/src/grokblog/blog_templates/entryitem.pt	2006-12-01 18:03:58 UTC (rev 71364)
+++ grok/trunk/grokblog/src/grokblog/blog_templates/entryitem.pt	2006-12-01 19:45:18 UTC (rev 71365)
@@ -1,9 +0,0 @@
-<div class="entry">
-  <h2>
-    <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"/>
-</div>
\ No newline at end of file

Added: grok/trunk/grokblog/src/grokblog/entry.py
===================================================================
--- grok/trunk/grokblog/src/grokblog/entry.py	2006-12-01 18:03:58 UTC (rev 71364)
+++ grok/trunk/grokblog/src/grokblog/entry.py	2006-12-01 19:45:18 UTC (rev 71365)
@@ -0,0 +1,78 @@
+from datetime import datetime
+from docutils.core import publish_parts
+
+import grok
+from zope import schema
+
+from blog import Blog
+
+class Entry(grok.Model):
+    class fields:
+        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):
+    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', '')
+        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.View):
+    grok.name('edit')
+
+    def before(self):
+        title = self.request.form.get('title', '')
+        if not title:
+            return
+        body = self.request.form.get('body', '')
+        self.context.title = title
+        self.context.body = body
+        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')
+
+    def render(self):
+        self.context.published = datetime(
+            2006,
+            11,
+            random.randrange(1, 29),
+            random.randrange(0, 24),
+            random.randrange(0, 60),
+            )
+        return str(self.context.published)
+
+rest_settings = {'file_insertion_enabled': False}
+
+def renderRest(source):
+    return publish_parts(
+        source, writer_name='html', settings_overrides=rest_settings
+        )['html_body']

Copied: grok/trunk/grokblog/src/grokblog/entry_templates/add.pt (from rev 71364, grok/trunk/grokblog/src/grokblog/blog_templates/addentry.pt)

Copied: grok/trunk/grokblog/src/grokblog/entry_templates/edit.pt (from rev 71364, grok/trunk/grokblog/src/grokblog/blog_templates/entryedit.pt)

Copied: grok/trunk/grokblog/src/grokblog/entry_templates/index.pt (from rev 71364, grok/trunk/grokblog/src/grokblog/blog_templates/entryindex.pt)

Copied: grok/trunk/grokblog/src/grokblog/entry_templates/item.pt (from rev 71364, grok/trunk/grokblog/src/grokblog/blog_templates/entryitem.pt)



More information about the Checkins mailing list