From: Scott Torborg Date: Tue, 3 Nov 2009 01:06:22 +0000 (-1000) Subject: emphasize transactions that the logged-in user is part of, deemphasize others X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=3b08315d7a6dee99e751f16b9a5a050884bf54f8;p=bluechips.git emphasize transactions that the logged-in user is part of, deemphasize others --- diff --git a/bluechips/lib/base.py b/bluechips/lib/base.py index 259bb0d..d94eeb6 100644 --- a/bluechips/lib/base.py +++ b/bluechips/lib/base.py @@ -32,6 +32,8 @@ class BaseController(WSGIController): environ['PATH_INFO'] += '/' raise HTTPMovedPermanently(construct_url(environ)) try: + c.user = meta.Session.query(model.User).\ + filter_by(username=unicode(environ['REMOTE_USER'])).one() return WSGIController.__call__(self, environ, start_response) finally: meta.Session.remove() diff --git a/bluechips/model/expenditure.py b/bluechips/model/expenditure.py index f7e6934..dda06c1 100644 --- a/bluechips/model/expenditure.py +++ b/bluechips/model/expenditure.py @@ -86,4 +86,11 @@ class Expenditure(object): s = Split(self, user, share) meta.Session.add(s) + def involves(self, user): + "Returns True if ``user`` is involved in this expenditure." + return (meta.Session.query(Split.id).\ + filter(Split.expenditure == self).\ + filter(Split.user == user).\ + filter(Split.share != 0).first() is not None) + __all__ = ['Expenditure'] diff --git a/bluechips/model/transfer.py b/bluechips/model/transfer.py index 55303a8..512e0f3 100644 --- a/bluechips/model/transfer.py +++ b/bluechips/model/transfer.py @@ -11,4 +11,7 @@ class Transfer(object): self.creditor, self.amount) + def involves(self, user): + return (self.debtor == user) or (self.creditor == user) + __all__ = ['Transfer'] diff --git a/bluechips/public/css/main.css b/bluechips/public/css/main.css index 3897fe0..fe58b99 100644 --- a/bluechips/public/css/main.css +++ b/bluechips/public/css/main.css @@ -69,3 +69,6 @@ td.labelcol { text-align: right; font-weight: bold; } +tr.user-not-involved { + color: #aaa; +} diff --git a/bluechips/templates/base.mako b/bluechips/templates/base.mako index d12f456..97ae857 100644 --- a/bluechips/templates/base.mako +++ b/bluechips/templates/base.mako @@ -67,8 +67,8 @@ <%def name="formatUser(user)"> - % if user.username == request.environ['REMOTE_USER']: - ${user.name} + % if user == c.user: + Me % else: ${user.name} % endif @@ -84,7 +84,13 @@ % for e in es: - + <% + if e.involves(c.user): + klass = 'user-involved' + else: + klass = 'user-not-involved' + %> + ${e.date} ${formatUser(e.spender)} ${e.description} @@ -106,7 +112,13 @@ % for t in ts: - + <% + if t.involves(c.user): + klass = 'user-involved' + else: + klass = 'user-not-involved' + %> + ${t.date} ${formatUser(t.debtor)} ${formatUser(t.creditor)}