X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=bluechips%2Fmodel%2Fexpenditure.py;h=6b3b1cb242c6c1e4ecd4de1fef70e537870cc3b6;hb=f4d8f4cc0fa9643c3ca04c7dcc2c87f3790160de;hp=8fd706bfd5c358046c66ec2e68d80852c1365fb2;hpb=f03d48ccc07789e1c56b07cec50820f3ad26f8ba;p=bluechips.git diff --git a/bluechips/model/expenditure.py b/bluechips/model/expenditure.py index 8fd706b..6b3b1cb 100644 --- a/bluechips/model/expenditure.py +++ b/bluechips/model/expenditure.py @@ -2,6 +2,7 @@ from bluechips.model.user import User from bluechips.model.split import Split from bluechips.model import meta from bluechips.model.types import Currency +from bluechips.model.tag import Tag from decimal import Decimal from datetime import datetime import random @@ -74,6 +75,14 @@ class Expenditure(object): s = Split(self, user, share, split_text_dict[user]) meta.Session.add(s) + def tag(self, tags): + map(meta.Session.delete, + meta.Session.query(Tag).filter_by(expenditure_id=self.id)) + + for tag in tags: + t = Tag(self, tag) + meta.Session.add(t) + def involves(self, user): "Returns True if ``user`` is involved in this expenditure." return (any((split.user == user) and (split.share != 0)