[Repoze-checkins] r1636 - in repoze.shootout/trunk: . repoze/shootout repoze/shootout/deliverance/rules repoze/shootout/resources/thewildwest repoze/shootout/templates

Carlos de la Guardia cguardia at yahoo.com
Thu Aug 21 01:17:46 EDT 2008


Author: Carlos de la Guardia <cguardia at yahoo.com>
Date: Thu Aug 21 01:17:45 2008
New Revision: 1636

Log:
Version 0.5 includes a theme and tagging.

Added:
   repoze.shootout/trunk/repoze/shootout/templates/about.pt
   repoze.shootout/trunk/repoze/shootout/templates/latest.pt
   repoze.shootout/trunk/repoze/shootout/templates/login.pt
Modified:
   repoze.shootout/trunk/CHANGES.txt
   repoze.shootout/trunk/README.txt
   repoze.shootout/trunk/repoze/shootout/configure.zcml
   repoze.shootout/trunk/repoze/shootout/deliverance/rules/thewildwest.xml
   repoze.shootout/trunk/repoze/shootout/resources/thewildwest/default.css
   repoze.shootout/trunk/repoze/shootout/resources/thewildwest/index.html
   repoze.shootout/trunk/repoze/shootout/templates/cloud.pt
   repoze.shootout/trunk/repoze/shootout/templates/idea.pt
   repoze.shootout/trunk/repoze/shootout/templates/idea_add.pt
   repoze.shootout/trunk/repoze/shootout/templates/main.pt
   repoze.shootout/trunk/repoze/shootout/templates/tag.pt
   repoze.shootout/trunk/repoze/shootout/templates/toolbar.pt
   repoze.shootout/trunk/repoze/shootout/templates/user.pt
   repoze.shootout/trunk/repoze/shootout/templates/user_add.pt
   repoze.shootout/trunk/repoze/shootout/views.py
   repoze.shootout/trunk/setup.py

Modified: repoze.shootout/trunk/CHANGES.txt
==============================================================================
--- repoze.shootout/trunk/CHANGES.txt	(original)
+++ repoze.shootout/trunk/CHANGES.txt	Thu Aug 21 01:17:45 2008
@@ -1,3 +1,9 @@
+0.5
+
+  - Added deliverance based theme.
+  - Incorporated tagging and a tag cloud.
+  - Various bug fixes.
+
 0.1
 
   Initial version

Modified: repoze.shootout/trunk/README.txt
==============================================================================
--- repoze.shootout/trunk/README.txt	(original)
+++ repoze.shootout/trunk/README.txt	Thu Aug 21 01:17:45 2008
@@ -1,4 +1,9 @@
 This is a demo app for the repoze.bfg web framework.
 
+The concepts demonstrated in the code include:
 
+    * Urldispatch mechanism (similar to routes).
+    * Integration with the repoze.who authentication endware.
+    * Integration with the deliverance filter for theming.
+    * SQLAlchemy based models.
 

Modified: repoze.shootout/trunk/repoze/shootout/configure.zcml
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/configure.zcml	(original)
+++ repoze.shootout/trunk/repoze/shootout/configure.zcml	Thu Aug 21 01:17:45 2008
@@ -80,6 +80,20 @@
 
   <bfg:view
      for=".models.IRange"
+     view=".views.latest_view"
+     name="latest"
+     permission="view"
+     />
+
+  <bfg:view
+     for=".models.IRange"
+     view=".views.login_form_view"
+     name="login_form"
+     permission="view"
+     />
+
+  <bfg:view
+     for=".models.IRange"
      view=".views.toolbar_view"
      name="toolbar"
      permission="view"
@@ -91,6 +105,12 @@
      name="resources"
      />
 
+  <bfg:view
+     for=".models.IRange"
+     view=".views.about_view"
+     name="about"
+     />
+
   <utility
       provides="repoze.bfg.interfaces.ISecurityPolicy"
       factory="repoze.bfg.security.RemoteUserACLSecurityPolicy"

Modified: repoze.shootout/trunk/repoze/shootout/deliverance/rules/thewildwest.xml
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/deliverance/rules/thewildwest.xml	(original)
+++ repoze.shootout/trunk/repoze/shootout/deliverance/rules/thewildwest.xml	Thu Aug 21 01:17:45 2008
@@ -4,6 +4,7 @@
 
   <copy theme="//div[@id='menu']" content="//div[@id='menu']/*" nocontent="ignore"/>
   <append theme="//div[@id='cloud']" content="//div[@id='cloud']/*" nocontent="ignore" />
+  <append theme="//div[@id='login_form']" content="//div[@id='login_form']/*" nocontent="ignore" />
   <append theme="//div[@id='latest']" content="//div[@id='latest']/*" nocontent="ignore" />
   <copy theme="//div[@id='toolbar']" content="//div[@id='toolbar']/*" nocontent="ignore" />
   <prepend theme="//div[@id='message']" content="//div[@id='message']/*" nocontent="ignore" />

Modified: repoze.shootout/trunk/repoze/shootout/resources/thewildwest/default.css
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/resources/thewildwest/default.css	(original)
+++ repoze.shootout/trunk/repoze/shootout/resources/thewildwest/default.css	Thu Aug 21 01:17:45 2008
@@ -242,6 +242,9 @@
 	background: #FFF url(images/cbg.gif) repeat-x;
 }
 
+#sections .idea-text {
+        padding: 10px 10px;
+}
 #sections .title a {
 	text-decoration: none;
 }
@@ -401,6 +404,7 @@
 }
 
 #toolbar {
+        padding: 10px; 5px;
         float: right;
         font-size: 90%;
 }
@@ -432,3 +436,86 @@
         padding: 2px 3px;
         text-decoration: none;
 }
+
+.subtitle {
+        margin: 15px 5px 5px 5px;
+        font-size: 140%;
+        font-weight: normal;
+}
+
+fieldset {
+        border: none;
+        padding: 20px;
+	color: #975700;
+}
+
+label {
+        float: left;
+        width: 120px;
+        font-weight: bold;
+}
+
+input, textarea {
+        width: 180px;
+        margin-bottom: 5px;
+}
+
+textarea {
+        width: 250px;
+        height: 150px;
+}
+
+.submit {
+        margin-left: 120px;
+        margin-top: 5px;
+        width: 90px;
+        border: #f0f0f0 1px solid;
+        color: #ffffff;
+	background-color: #975700;
+}
+
+form br {
+        clear: left;
+}
+
+.tag-list {
+        font-weight: bold;
+        font-size: 120%;
+        margin: 15px;
+}
+
+.tag-list li {
+        display: inline;
+        padding: 5px;
+}
+
+.tag-list a {
+        text-decoration: none;
+}
+
+#login_form {
+}
+
+#login_form label {
+        float: left;
+}
+
+#login_form fieldset {
+        border: none;
+        padding: 20px 20px 0px 40px;
+	color: #975700;
+}
+
+#login_form input, textarea {
+        margin-bottom: 5px;
+        width: 120px;
+}
+
+.login {
+        margin-top: 5px;
+        border: #f0f0f0 1px solid;
+        color: #ffffff;
+	background-color: #975700;
+        font-size: 90%;
+}
+

Modified: repoze.shootout/trunk/repoze/shootout/resources/thewildwest/index.html
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/resources/thewildwest/index.html	(original)
+++ repoze.shootout/trunk/repoze/shootout/resources/thewildwest/index.html	Thu Aug 21 01:17:45 2008
@@ -19,10 +19,10 @@
   </div>
   <div id="content">
     <div id="sidebar">
-        <h2>Tag cloud</h2>
+        <div id="login_form">
+        </div>
         <div id="cloud">
         </div>
-        <h2>Latest</h2>
         <div id="latest">
         </div>
     </div>

Added: repoze.shootout/trunk/repoze/shootout/templates/about.pt
==============================================================================
--- (empty file)
+++ repoze.shootout/trunk/repoze/shootout/templates/about.pt	Thu Aug 21 01:17:45 2008
@@ -0,0 +1,28 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+     xmlns:tal="http://xml.zope.org/namespaces/tal">
+     <head>
+         <title>Shootout</title>
+     </head>
+    <body>
+    <div id="menu">
+        <ul>
+            <li><a href="${app_url}">Home</a></li>
+        </ul>
+    </div>
+    <div tal:replace="structure toolbar" />
+    <div tal:replace="structure cloud" />
+    <div tal:replace="structure latest" />
+    <div tal:replace="structure login_form" />
+    <div id="sections">
+    <h1>repoze.shootout</h1>
+    <p>This is a demo application for the <a href="http://www.repoze.org/bfg">repoze.bfg</a> Python web framework.</p>
+    <p>The concepts demonstrated in the code include:</p>
+    <ul>
+        <li>Urldispatch mechanism (similar to routes).</li>
+        <li>Integration with the repoze.who authentication endware.</li>
+        <li>Integration with the deliverance filter for theming.</li>
+        <li>SQLAlchemy based models.</li>
+    </ul>
+    </div>
+</body>
+</html>

Modified: repoze.shootout/trunk/repoze/shootout/templates/cloud.pt
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/templates/cloud.pt	(original)
+++ repoze.shootout/trunk/repoze/shootout/templates/cloud.pt	Thu Aug 21 01:17:45 2008
@@ -1,4 +1,5 @@
 <div id="cloud" xmlns="http://www.w3.org/1999/xhtml"
      xmlns:tal="http://xml.zope.org/namespaces/tal">
+     <h2>Tag Cloud</h2>
      <a tal:repeat="tag cloud" href="${app_url}/tags/${tag[0]}" style="font-size: ${tag[2]}px">${tag[0]}</a>
  </div>

Modified: repoze.shootout/trunk/repoze/shootout/templates/idea.pt
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/templates/idea.pt	(original)
+++ repoze.shootout/trunk/repoze/shootout/templates/idea.pt	Thu Aug 21 01:17:45 2008
@@ -5,31 +5,37 @@
      </head>
     <body>
     <div id="menu">
-        <ul><li><a href="${app_url}">Back to home page</a></li></ul>
+        <ul>
+            <li><a href="${app_url}">Home</a></li>
+            <li><a href="${app_url}/about">About this demo</a></li>
+        </ul>
     </div>
     <div tal:replace="structure toolbar" />
+    <div tal:replace="structure cloud" />
+    <div tal:replace="structure latest" />
+    <div tal:replace="structure login_form" />
     <div id="sections">
     <h1>${idea.title}</h1>
     <p>Tags: <ul class="tag-list"><li tal:repeat="tag idea.tags"><a href="${app_url}/tags/${tag.name}">${tag.name}</a></li></ul></p>
-    <p>By <a href="${app_url}/users/${poster.username}">${poster.name}</a>.</p>
-    <p>Hits: <b>${idea.hits}</b>.</p>
-    <p>Misses: <b>${idea.misses}</b>.</p>
-    <p tal:content="idea.text"></p>
+    <p>By <a class="byline" href="${app_url}/users/${poster.username}">${poster.name}</a>.</p>
+    <p>Hits: <b class="hits">${idea.hits}</b>.</p>
+    <p>Misses: <b class="misses">${idea.misses}</b>.</p>
+    <p class="idea-text" tal:content="idea.text"></p>
     <div tal:condition="voted">
         <p>You already voted <b>${voted}</b> for this idea.</p>
     </div>
     <div tal:condition="voted is None and viewer_username">
     <form action="${app_url}/idea_vote" method="post">
         <input type="hidden" name="target" value="${idea.idea_id}" />
-        <input type="submit" name="form.vote_hit" value="Hit" />
-        <input type="submit" name="form.vote_miss" value="Miss" />
+        <input type="submit" class="submit" name="form.vote_hit" value="Hit" />
+        <input type="submit" class="submit" name="form.vote_miss" value="Miss" />
     </form>
     </div>
     <p><a href="${app_url}/idea_add?target=${idea.idea_id}">Add your comment.</a></p>
     <div tal:condition="comments">
-    <h3>Comments</h3>
+    <h3 class="subtitle">Comments</h3>
     <ul>
-        <li tal:repeat="comment comments"><span class="tags"><a tal:repeat="tag comment.tags" href="${app_url}/tags/${tag.name}">${tag.name}</a></span> <a href="${app_url}/ideas/${comment.idea_id}">${comment.title}</a>, by ${comment.users.name} (+${comment.hits}, -${comment.misses}).</li>
+        <li tal:repeat="comment comments"><span class="tags"><a tal:repeat="tag comment.tags" href="${app_url}/tags/${tag.name}">${tag.name}</a></span> <a href="${app_url}/ideas/${comment.idea_id}" class="idea">${comment.title}</a>, by <a class="byline" href="${app_url}/users/${comment.users.username}">${comment.users.name}</a> <span class="hits">${comment.hits}</span> hits, <span class="misses">${comment.misses}</span> misses.</li>
     </ul>
     </div>
     </div>

Modified: repoze.shootout/trunk/repoze/shootout/templates/idea_add.pt
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/templates/idea_add.pt	(original)
+++ repoze.shootout/trunk/repoze/shootout/templates/idea_add.pt	Thu Aug 21 01:17:45 2008
@@ -5,9 +5,15 @@
      </head>
 <body>
     <div id="menu">
-        <ul><li><a href="${app_url}">Back to home page</a></li></ul>
+        <ul>
+            <li><a href="${app_url}">Home</a></li>
+            <li><a href="${app_url}/about">About this demo</a></li>
+        </ul>
     </div>
     <div tal:replace="structure toolbar" />
+    <div tal:replace="structure cloud" />
+    <div tal:replace="structure latest" />
+    <div tal:replace="structure login_form" />
     <div id="message" tal:condition="message">
         <p>${message}</p>
     </div>
@@ -31,7 +37,7 @@
         <input type="text" name="tags" size="60" />
         <br />
         <input tal:condition="target" type="hidden" name="target" value="${target.idea_id}" />
-        <input type="submit" name="form.submitted" value="Shoot" />
+        <input type="submit" class="submit" name="form.submitted" value="Shoot" />
     </fieldset>
     </form>
     </div>

Added: repoze.shootout/trunk/repoze/shootout/templates/latest.pt
==============================================================================
--- (empty file)
+++ repoze.shootout/trunk/repoze/shootout/templates/latest.pt	Thu Aug 21 01:17:45 2008
@@ -0,0 +1,8 @@
+<div id="latest" xmlns="http://www.w3.org/1999/xhtml"
+     xmlns:tal="http://xml.zope.org/namespaces/tal">
+    <h2>Latest shots</h2>
+    <ul>
+        <li tal:repeat="idea latest"><a class="idea" href="${app_url}/ideas/${idea.idea_id}">${idea.title}</a>.</li>
+    </ul>
+</div>
+

Added: repoze.shootout/trunk/repoze/shootout/templates/login.pt
==============================================================================
--- (empty file)
+++ repoze.shootout/trunk/repoze/shootout/templates/login.pt	Thu Aug 21 01:17:45 2008
@@ -0,0 +1,15 @@
+<div id="login_form" xmlns="http://www.w3.org/1999/xhtml"
+     xmlns:tal="http://xml.zope.org/namespaces/tal">
+    <form id="login_form" action="?__do_login=true" method="post" tal:condition="not loggedin">
+    <h2>Log In</h2>
+    <fieldset>
+        <label for="login">Username:</label>
+        <input type="text" name="login" />
+        <br />
+        <label for="password">Password:</label>
+        <input type="password" name="password" />
+        <br />
+        <input type="submit" class="login" name="submit" value="Log In" />
+    </fieldset>
+    </form>
+</div>

Modified: repoze.shootout/trunk/repoze/shootout/templates/main.pt
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/templates/main.pt	(original)
+++ repoze.shootout/trunk/repoze/shootout/templates/main.pt	Thu Aug 21 01:17:45 2008
@@ -12,11 +12,8 @@
   </div>
   <div tal:replace="structure toolbar" />
   <div tal:replace="structure cloud" />
-  <div id="latest" tal:condition="toplists">
-      <ul tal:define="latest toplists[0]">
-          <li tal:repeat="idea latest['items']"><a class="idea" href="${app_url}/ideas/${idea.idea_id}">${idea.title}</a>.</li>
-      </ul>
-  </div>
+  <div tal:replace="structure latest" />
+  <div tal:replace="structure login_form" />
   <div id="sections">
   <h1>The Shooting Range</h1>
   <p>This is a place to discuss and vote on ideas of all kind. Want to know what others think about your idea? Give it a shot.</p>

Modified: repoze.shootout/trunk/repoze/shootout/templates/tag.pt
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/templates/tag.pt	(original)
+++ repoze.shootout/trunk/repoze/shootout/templates/tag.pt	Thu Aug 21 01:17:45 2008
@@ -5,13 +5,19 @@
      </head>
     <body>
     <div id="menu">
-        <ul><li><a href="${app_url}">Back to home page</a></li></ul>
+        <ul>
+            <li><a href="${app_url}">Home</a></li>
+            <li><a href="${app_url}/about">About this demo</a></li>
+        </ul>
     </div>
     <div tal:replace="structure toolbar" />
+    <div tal:replace="structure cloud" />
+    <div tal:replace="structure latest" />
+    <div tal:replace="structure login_form" />
     <div id="sections">
     <h1>${tag}</h1>
     <ul>
-        <li tal:repeat="idea ideas"><span class="tags"><a tal:repeat="tag idea.tags" href="${app_url}/tags/${tag.name}">${tag.name}</a></span> <a href="${app_url}/ideas/${idea.idea_id}">${idea.title}</a>, by ${idea.users.name} (+${idea.hits}, -${idea.misses}).</li>
+        <li tal:repeat="idea ideas"><span class="tags"><a tal:repeat="tag idea.tags" href="${app_url}/tags/${tag.name}">${tag.name}</a></span> <a href="${app_url}/ideas/${idea.idea_id}">${idea.title}</a>, by <a class="byline" href="${app_url}/users/${idea.users.username}">${idea.users.name}</a> <span class="hits">${idea.hits}</span> hits, <span class="misses">${idea.misses}</span> misses.</li>
     </ul>
     </div>
 </body>

Modified: repoze.shootout/trunk/repoze/shootout/templates/toolbar.pt
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/templates/toolbar.pt	(original)
+++ repoze.shootout/trunk/repoze/shootout/templates/toolbar.pt	Thu Aug 21 01:17:45 2008
@@ -1,5 +1,5 @@
 <div xmlns="http://www.w3.org/1999/xhtml"
      xmlns:tal="http://xml.zope.org/namespaces/tal" id="toolbar">
-     <span tal:condition="viewer_username" class="username">You are logged in as <b>${viewer_username}</b>. <a href="${app_url}/logout">Logout</a>.</span>
-    <span tal:condition="not viewer_username"><a href="${app_url}/login">Login to post or vote</a>. Not a member? <a href="${app_url}/register">Register</a>.</span>
+     <span tal:condition="viewer_username" class="username"><a href="${app_url}/idea_add">Post an idea</a>. You are logged in as <b>${viewer_username}</b>. <a href="${app_url}/logout">Logout</a>.</span>
+     <span tal:condition="not viewer_username"><b>You need to log in to post or vote.</b> Not a member? <b><a href="${app_url}/register">Register</a></b>.</span>
 </div>

Modified: repoze.shootout/trunk/repoze/shootout/templates/user.pt
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/templates/user.pt	(original)
+++ repoze.shootout/trunk/repoze/shootout/templates/user.pt	Thu Aug 21 01:17:45 2008
@@ -5,18 +5,24 @@
      </head>
     <body>
     <div id="menu">
-        <ul><li><a href="${app_url}">Back to home page</a></li></ul>
+        <ul>
+            <li><a href="${app_url}">Home</a></li>
+            <li><a href="${app_url}/about">About this demo</a></li>
+        </ul>
     </div>
     <div tal:replace="structure toolbar" />
+    <div tal:replace="structure cloud" />
+    <div tal:replace="structure latest" />
+    <div tal:replace="structure login_form" />
     <div id="sections">
     <h1>${user.name}</h1>
-    <p>login: <b>${user.username}</b>.</p>
-    <h3>Performance</h3>
-    <p>Hits: <b>${user.hits}</b>.</p>
-    <p>Misses: <b>${user.misses}</b>.</p>
-    <h3>Vote history</h3>
-    <p>Hits: <b>${user.delivered_hits}</b>.</p>
-    <p>Misses: <b>${user.delivered_misses}</b>.</p>
+    <p>login: <b class="byline">${user.username}</b>.</p>
+    <h3 class="subtitle">Performance</h3>
+    <p>Hits: <b class="hits">${user.hits}</b>.</p>
+    <p>Misses: <b class="misses">${user.misses}</b>.</p>
+    <h3 class="subtitle">Vote history</h3>
+    <p>Hits: <b class="hits">${user.delivered_hits}</b>.</p>
+    <p>Misses: <b class="misses">${user.delivered_misses}</b>.</p>
     </div>
 </body>
 </html>

Modified: repoze.shootout/trunk/repoze/shootout/templates/user_add.pt
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/templates/user_add.pt	(original)
+++ repoze.shootout/trunk/repoze/shootout/templates/user_add.pt	Thu Aug 21 01:17:45 2008
@@ -5,9 +5,15 @@
      </head>
     <body>
     <div id="menu">
-        <ul><li><a href="${app_url}">Back to home page</a></li></ul>
+        <ul>
+            <li><a href="${app_url}">Home</a></li>
+            <li><a href="${app_url}/about">About this demo</a></li>
+        </ul>
     </div>
     <div tal:replace="structure toolbar" />
+    <div tal:replace="structure cloud" />
+    <div tal:replace="structure latest" />
+    <div tal:replace="structure login_form" />
     <div id="message" tal:condition="message">
         <p>${message}</p>
     </div>
@@ -30,7 +36,7 @@
             <label for="email">Email</label>
             <input type="text" name="email" />
             <br />
-            <input type="submit" name="form.submitted" value="Register" />
+            <input type="submit" class="submit" name="form.submitted" value="Register" />
         </fieldset>
     </form>
     </div>

Modified: repoze.shootout/trunk/repoze/shootout/views.py
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/views.py	(original)
+++ repoze.shootout/trunk/repoze/shootout/views.py	Thu Aug 21 01:17:45 2008
@@ -41,6 +41,8 @@
                                        message=message,
                                        toolbar=toolbar_view(context,request),
                                        cloud=cloud_view(context,request),
+                                       latest=latest_view(context,request),
+                                       login_form=login_form_view(context,request),
                                        toplists=toplists)
 
 def idea_vote(context, request):
@@ -119,6 +121,9 @@
                                        app_url=app_url,
                                        message=message,
                                        toolbar=toolbar_view(context,request),
+                                       cloud=cloud_view(context,request),
+                                       latest=latest_view(context,request),
+                                       login_form=login_form_view(context,request),
                                        target=target,
                                        kind=kind,
                                        request=request)
@@ -158,6 +163,9 @@
     return render_template_to_response('templates/user_add.pt',
                                        message=message,
                                        toolbar=toolbar_view(context,request),
+                                       cloud=cloud_view(context,request),
+                                       latest=latest_view(context,request),
+                                       login_form=login_form_view(context,request),
                                        app_url=app_url)
 
 def user_view(context, request):
@@ -166,6 +174,9 @@
     return render_template_to_response('templates/user.pt',
                                        user=user,
                                        toolbar=toolbar_view(context,request),
+                                       cloud=cloud_view(context,request),
+                                       latest=latest_view(context,request),
+                                       login_form=login_form_view(context,request),
                                        app_url=app_url)
 
 def idea_view(context, request):
@@ -178,6 +189,9 @@
     return render_template_to_response('templates/idea.pt',
                                        app_url=request.application_url,
                                        toolbar=toolbar_view(context,request),
+                                       cloud=cloud_view(context,request),
+                                       latest=latest_view(context,request),
+                                       login_form=login_form_view(context,request),
                                        poster=poster,
                                        voted=voted,
                                        comments=comments,
@@ -190,8 +204,19 @@
                                        tag=context.tag,
                                        app_url=request.application_url,
                                        toolbar=toolbar_view(context,request),
+                                       cloud=cloud_view(context,request),
+                                       latest=latest_view(context,request),
+                                       login_form=login_form_view(context,request),
                                        ideas=ideas)
 
+def about_view(context, request):
+    return render_template_to_response('templates/about.pt',
+                                       app_url=request.application_url,
+                                       toolbar=toolbar_view(context,request),
+                                       cloud=cloud_view(context,request),
+                                       latest=latest_view(context,request),
+                                       login_form=login_form_view(context,request))
+
 def logout_view(context, request):
     response = webob.Response()
     response.status = '401 Unauthorized'
@@ -206,6 +231,18 @@
                            app_url=request.application_url,
                            viewer_username=viewer_username)
 
+def login_form_view(context, request):
+    loggedin = authenticated_userid(request)
+    return render_template('templates/login.pt',
+                           app_url=request.application_url,
+                           loggedin=loggedin)
+
+def latest_view(context, request):
+    latest = DBSession.query(Idea).join('users').filter(Idea.target==None).order_by(Idea.idea_id.desc()).all()[:10]
+    return render_template('templates/latest.pt',
+                           app_url=request.application_url,
+                           latest=latest)
+
 def cloud_view(context, request):
     tag_counts = DBSession.query(Tag.name, func.count('*')).join(IdeaTag).group_by(Tag.name).all()
     total = sum([tag[1] for tag in tag_counts])

Modified: repoze.shootout/trunk/setup.py
==============================================================================
--- repoze.shootout/trunk/setup.py	(original)
+++ repoze.shootout/trunk/setup.py	Thu Aug 21 01:17:45 2008
@@ -22,7 +22,7 @@
     requires.append('pysqlite')
 
 setup(name='repoze.shootout',
-      version='0.1',
+      version='0.5',
       description='A generic idea discussion and rating app',
       long_description=README + '\n\n' +  CHANGES,
       classifiers=[


More information about the Repoze-checkins mailing list