[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