[Assorted-commits] SF.net SVN: assorted:[1441] pitch-in/trunk/src/pitchin
Brought to you by:
yangzhang
From: <yan...@us...> - 2009-05-31 20:27:01
|
Revision: 1441 http://assorted.svn.sourceforge.net/assorted/?rev=1441&view=rev Author: yangzhang Date: 2009-05-31 20:26:48 +0000 (Sun, 31 May 2009) Log Message: ----------- - removed logo border - fixed contrib listing bug - better invalid key error Modified Paths: -------------- pitch-in/trunk/src/pitchin/pitchin/templates/main.html pitch-in/trunk/src/pitchin/pitchin/views.py pitch-in/trunk/src/pitchin/static/default.css Modified: pitch-in/trunk/src/pitchin/pitchin/templates/main.html =================================================================== --- pitch-in/trunk/src/pitchin/pitchin/templates/main.html 2009-05-31 20:25:25 UTC (rev 1440) +++ pitch-in/trunk/src/pitchin/pitchin/templates/main.html 2009-05-31 20:26:48 UTC (rev 1441) @@ -1,5 +1,6 @@ {% extends 'base.html' %} {% block body %} + <p class="error">{{generror}}</p> <p class="line">Easily create and manage a money pool that others can contribute to.</p> <p> To create a pool, just enter a description of what it's for here, and you Modified: pitch-in/trunk/src/pitchin/pitchin/views.py =================================================================== --- pitch-in/trunk/src/pitchin/pitchin/views.py 2009-05-31 20:25:25 UTC (rev 1440) +++ pitch-in/trunk/src/pitchin/pitchin/views.py 2009-05-31 20:26:48 UTC (rev 1441) @@ -4,13 +4,17 @@ from pitchin.models import Pool import cPickle, cgi -def getPool(request): return db.get(db.Key(request.REQUEST['key'])) +class invalid_pool(Exception): pass +def getPool(request): + try: return db.get(db.Key(request.REQUEST['key'])) + except: raise invalid_pool() + def getContribs(pool): return cPickle.loads(str(pool.contribs)) def serContribs(contribs): return cPickle.dumps(contribs, 2) def aggContribs(contribs): if len(contribs) == 0: - return '' + return [] else: return [('Max total', sum(contribs.itervalues())), ('If everyone paid the minimum', len(contribs) * min(contribs.itervalues()))] @@ -40,13 +44,16 @@ def view(request, **params): if 'key' not in request.REQUEST: return HttpResponseRedirect('/') - pool = getPool(request) - return render_to_response('pool.html', - dict(descrip = pool.descrip, - contribs = getContribs(pool), - aggcontribs = aggContribs(getContribs(pool)), - key = request.REQUEST['key'], - **params)) + try: + pool = getPool(request) + return render_to_response('pool.html', + dict(descrip = pool.descrip, + contribs = getContribs(pool).iteritems(), + aggcontribs = aggContribs(getContribs(pool)), + key = request.REQUEST['key'], + **params)) + except invalid_pool: + return bad_pool(request) def update(request): try: @@ -57,12 +64,19 @@ except invalid_submit, ex: return view(request, error = ex, name = request.REQUEST['name'], amount = request.REQUEST['amount']) else: - pool = getPool(request) - contribs = getContribs(pool) - contribs[request.REQUEST['name']] = amount - pool.contribs = cPickle.dumps(contribs) - pool.put() - return HttpResponseRedirect('/pool?key=%s' % pool.key()) + try: + pool = getPool(request) + except invalid_pool: + return bad_pool(request) + else: + contribs = getContribs(pool) + contribs[request.REQUEST['name']] = amount + pool.contribs = cPickle.dumps(contribs) + pool.put() + return HttpResponseRedirect('/pool?key=%s' % pool.key()) def sponsorship(request): return render_to_response('sponsorship.html') + +def bad_pool(request): + return render_to_response('main.html', dict(generror = 'Pool not found/invalid pool ID')) Modified: pitch-in/trunk/src/pitchin/static/default.css =================================================================== --- pitch-in/trunk/src/pitchin/static/default.css 2009-05-31 20:25:25 UTC (rev 1440) +++ pitch-in/trunk/src/pitchin/static/default.css 2009-05-31 20:26:48 UTC (rev 1441) @@ -32,3 +32,4 @@ a:link { color: #55aaff; text-decoration: none; } a:visited { color: #55aaff; text-decoration: none; } a:hover { color: #ff3399; } +a img { border-width: 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |