]> asedeno.scripts.mit.edu Git - bluechips.git/blobdiff - bluechips/model/expenditure.py
Added UI for working with tags
[bluechips.git] / bluechips / model / expenditure.py
index 4669ad1090c740aaac7284c1903bd01cbac0d037..d732fbe18328c9d6b909bbb52635f0f1775b6033 100644 (file)
@@ -1,7 +1,10 @@
+from sqlalchemy.ext.associationproxy import association_proxy
+
 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 create_tag
 from decimal import Decimal
 from datetime import datetime
 import random
@@ -15,6 +18,8 @@ class Expenditure(object):
         if self.date == None:
             self.date = datetime.now()
     
+    tags = association_proxy('_tags', 'name', creator=create_tag)
+
     def __repr__(self):
         return '<Expenditure: spender: %s spent: %s>' % (self.spender,
                                                          self.amount)
@@ -28,7 +33,7 @@ class Expenditure(object):
         split_percentage = Decimal(100) / Decimal(residents.count())
         self.split(dict((resident, split_percentage) for resident in residents))
     
-    def split(self, split_dict):
+    def split(self, split_dict, split_text_dict):
         """
         Split up an expenditure.
         
@@ -71,7 +76,7 @@ class Expenditure(object):
                 amounts_dict[winner] -= Currency(1)
         
         for user, share in amounts_dict.iteritems():
-            s = Split(self, user, share)
+            s = Split(self, user, share, split_text_dict[user])
             meta.Session.add(s)
 
     def involves(self, user):