X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=bluechips%2Fmodel%2Fexpenditure.py;h=4f9dfb6bac430b9908c2d9aedee65be18caf2430;hb=c0ae50143ea14aec0b6db338674f2c1c29a86a3b;hp=dda06c1e0a9c7bf837e3668eef7835dc5cf2ca70;hpb=3b08315d7a6dee99e751f16b9a5a050884bf54f8;p=bluechips.git diff --git a/bluechips/model/expenditure.py b/bluechips/model/expenditure.py index dda06c1..4f9dfb6 100644 --- a/bluechips/model/expenditure.py +++ b/bluechips/model/expenditure.py @@ -88,9 +88,14 @@ class Expenditure(object): 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) + return (any((split.user == user) and (split.share != 0) + for split in self.splits) or + (self.spender == user)) + + def share(self, user): + "Return the share corresponding to ``user``." + shares = dict((split.user, split.share) + for split in self.splits) + return shares.get(user, Currency(0)) __all__ = ['Expenditure']