]> asedeno.scripts.mit.edu Git - bluechips.git/blobdiff - bluechips/model/expenditure.py
Expenditures can now be given a list of "tags"
[bluechips.git] / bluechips / model / expenditure.py
index 8fd706bfd5c358046c66ec2e68d80852c1365fb2..6b3b1cb242c6c1e4ecd4de1fef70e537870cc3b6 100644 (file)
@@ -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)