[Checkins] SVN: Grokstar/trunk/src/grokstar/ Applied patches of
Joachim Schmitz: view list of unpublished entries.
Uli Fouquet
uli at gnufix.de
Sat Jul 14 13:07:04 EDT 2007
Log message for revision 77956:
Applied patches of Joachim Schmitz: view list of unpublished entries.
Changed:
U Grokstar/trunk/src/grokstar/blog.py
U Grokstar/trunk/src/grokstar/blog_templates/blogindex.pt
A Grokstar/trunk/src/grokstar/blog_templates/breadcrumbs.pt
A Grokstar/trunk/src/grokstar/blog_templates/draftsindex.pt
U Grokstar/trunk/src/grokstar/entry_templates/index.pt
U Grokstar/trunk/src/grokstar/traverse.py
-=-
Modified: Grokstar/trunk/src/grokstar/blog.py
===================================================================
--- Grokstar/trunk/src/grokstar/blog.py 2007-07-14 17:06:15 UTC (rev 77955)
+++ Grokstar/trunk/src/grokstar/blog.py 2007-07-14 17:07:03 UTC (rev 77956)
@@ -2,7 +2,8 @@
from datetime import datetime, timedelta
from zope import schema, interface
-
+from zope.interface import Interface
+from zope.traversing.api import getParents
from hurry.query.query import Query
from hurry import query
from hurry.workflow.interfaces import IWorkflowState
@@ -35,6 +36,32 @@
workflow_state = index.Field(attribute='getState')
workflow_id = index.Field(attribute='getId')
+
+class Drafts(grok.Model):
+ pass
+
+class DraftsIndex(grok.View):
+ grok.context(Drafts)
+ grok.name('index')
+
+ def entries(self):
+ return allEntries(10)
+
+class Breadcrumbs(grok.View):
+ grok.context(Interface)
+ def parents(self):
+ pl = getParents(self.context)
+ return pl
+ obj = self.context
+ while obj is not None:
+ pl.append(obj)
+ if isinstance(obj, grok.Application):
+ break
+ obj = obj.__parent__
+ pl.reverse()
+ return pl
+
+
class Entries(grok.Container):
pass
@@ -65,7 +92,15 @@
entries = Query().searchResults(
query.Eq(('entry_catalog', 'workflow_state'),
PUBLISHED))
-
return sorted(
entries, key=lambda entry: entry.published, reverse=True
)[:amount]
+
+def allEntries(amount):
+ entries = Query().searchResults(
+ query.In(('entry_catalog', 'workflow_state'),
+ (CREATED,)))
+
+ return sorted(
+ entries, key=lambda entry: entry.updated, reverse=True
+ )[:amount]
Modified: Grokstar/trunk/src/grokstar/blog_templates/blogindex.pt
===================================================================
--- Grokstar/trunk/src/grokstar/blog_templates/blogindex.pt 2007-07-14 17:06:15 UTC (rev 77955)
+++ Grokstar/trunk/src/grokstar/blog_templates/blogindex.pt 2007-07-14 17:07:03 UTC (rev 77956)
@@ -6,13 +6,13 @@
<body>
<h1 tal:content="context/title"/>
<h2 tal:content="context/tagline"/>
- <a tal:attributes="href python:view.url('add')">Add Blog Entry</a>
+ <a href="./drafts" tal:attributes="href string:${view/application_url}/drafts">Unplublished Entries</a><br />
+ <a tal:attributes="href python:view.url('add')">Add Blog Entry</a><br />
<div class="entries">
<tal:block repeat="entry view/entries">
<tal:block content="structure entry/@@item"/>
</tal:block>
</div>
-
</body>
</html>
Added: Grokstar/trunk/src/grokstar/blog_templates/breadcrumbs.pt
===================================================================
--- Grokstar/trunk/src/grokstar/blog_templates/breadcrumbs.pt (rev 0)
+++ Grokstar/trunk/src/grokstar/blog_templates/breadcrumbs.pt 2007-07-14 17:07:03 UTC (rev 77956)
@@ -0,0 +1,3 @@
+<span tal:repeat="obj view/parents" tal:omit-tag="">
+ <a href="" tal:attributes="href python: view.url(obj)" tal:content="obj/__name__" />
+</span>
Added: Grokstar/trunk/src/grokstar/blog_templates/draftsindex.pt
===================================================================
--- Grokstar/trunk/src/grokstar/blog_templates/draftsindex.pt (rev 0)
+++ Grokstar/trunk/src/grokstar/blog_templates/draftsindex.pt 2007-07-14 17:07:03 UTC (rev 77956)
@@ -0,0 +1,14 @@
+<!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>
+ </head>
+ <body>
+ <div class="" tal:content="structure context/@@breadcrumbs" />
+ <a href="../add">Add Blog Entry</a><br />
+ <div class="entries">
+ <tal:block repeat="entry view/entries">
+ <tal:block content="structure entry/@@item"/>
+ </tal:block>
+ </div>
+ </body>
+</html>
Modified: Grokstar/trunk/src/grokstar/entry_templates/index.pt
===================================================================
--- Grokstar/trunk/src/grokstar/entry_templates/index.pt 2007-07-14 17:06:15 UTC (rev 77955)
+++ Grokstar/trunk/src/grokstar/entry_templates/index.pt 2007-07-14 17:07:03 UTC (rev 77956)
@@ -4,6 +4,8 @@
<title tal:content="context/title"/>
</head>
<body>
+ <a href="" tal:attributes="href view/application_url">home</a>
+ <div class="" tal:content="structure context/@@breadcrumbs" />
<h1>
<tal:block content="context/title"/>
(<span class="published" tal:content="context/published"/>)
Modified: Grokstar/trunk/src/grokstar/traverse.py
===================================================================
--- Grokstar/trunk/src/grokstar/traverse.py 2007-07-14 17:06:15 UTC (rev 77955)
+++ Grokstar/trunk/src/grokstar/traverse.py 2007-07-14 17:07:03 UTC (rev 77956)
@@ -1,11 +1,17 @@
import grok
-from grokstar.blog import Blog
+from grokstar.blog import Blog,Drafts
from grokstar.calendar import Year
class BlogTraverser(grok.Traverser):
grok.context(Blog)
def traverse(self, name):
+ #import pdb;pdb.set_trace()
+ if name == "drafts":
+ drafts = Drafts()
+ drafts.__name__ = 'drafts'
+ drafts.__parent__ = self.context
+ return drafts
try:
year = int(name)
except ValueError:
More information about the Checkins
mailing list