From 3b08315d7a6dee99e751f16b9a5a050884bf54f8 Mon Sep 17 00:00:00 2001 From: Scott Torborg Date: Mon, 2 Nov 2009 15:06:22 -1000 Subject: [PATCH] emphasize transactions that the logged-in user is part of, deemphasize others --- bluechips/lib/base.py | 2 ++ bluechips/model/expenditure.py | 7 +++++++ bluechips/model/transfer.py | 3 +++ bluechips/public/css/main.css | 3 +++ bluechips/templates/base.mako | 20 ++++++++++++++++---- 5 files changed, 31 insertions(+), 4 deletions(-) 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)} -- 2.45.2