]> asedeno.scripts.mit.edu Git - bluechips.git/blobdiff - bluechips/controllers/history.py
Added UI for working with tags
[bluechips.git] / bluechips / controllers / history.py
index e0a501b8f38edd5139afe90321979ff3a2d99dcc..c3374dc77e3ea0af969519a525113d3a6ba17c75 100644 (file)
@@ -3,11 +3,13 @@ Display old transactions
 """
 
 import logging
+from pylons import request
 
 from bluechips.lib.base import *
 from bluechips.lib.totals import *
 
-import sqlalchemy
+import sqlalchemy as sa
+from sqlalchemy import orm
 
 log = logging.getLogger(__name__)
 
@@ -15,7 +17,21 @@ class HistoryController(BaseController):
     def index(self):
         c.title = 'History'
         
-        c.expenditures = meta.Session.query(model.Expenditure).all()
+        c.tags = meta.Session.query(model.Tag).order_by([sa.func.lower(model.Tag.name)])
+        c.expenditures = meta.Session.query(model.Expenditure).\
+                options(orm.eagerload('splits')).all()
         c.transfers = meta.Session.query(model.Transfer).all()
-        
+
         return render('/history/index.mako')
+
+
+    def tag(self, id=None):
+        c.title = 'History'
+
+        c.tags = meta.Session.query(model.Tag).order_by([sa.func.lower(model.Tag.name)])
+        c.tag = meta.Session.query(model.Tag).filter_by(id=id).all()[0]
+        c.expenditures = c.tag.expenditures
+        c.total = sum([e.amount for e in c.expenditures])
+        c.share = sum([e.share(request.environ['user']) for e in c.expenditures])
+
+        return render('/history/tag.mako')