]> asedeno.scripts.mit.edu Git - bluechips.git/blobdiff - bluechips/controllers/status.py
little performance tweaks
[bluechips.git] / bluechips / controllers / status.py
index 37e470cfab4ac3c1171f998ffada87383906290e..2532dfac2da2d7189dc5bc15acdd1b22100d2c3a 100644 (file)
@@ -8,6 +8,7 @@ from bluechips.lib.base import *
 from bluechips.lib.totals import *
 
 import sqlalchemy
+from sqlalchemy import orm
 
 from datetime import date, timedelta
 
@@ -39,8 +40,14 @@ class StatusController(BaseController):
                     model.Expenditure.date < this_month))
         
         c.expenditures = meta.Session.query(model.Expenditure).\
-            filter(model.Expenditure.spender==request.environ['user']).\
-            limit(10).all()
+                filter(sqlalchemy.or_(
+                    model.Expenditure.spender == request.environ['user'],
+                    model.Expenditure.splits.any(
+                        sqlalchemy.and_(
+                            model.Split.user == request.environ['user'],
+                            model.Split.share != 0)))).\
+                options(orm.eagerload('splits')).\
+                limit(10).all()
         c.transfers = meta.Session.query(model.Transfer).\
             filter(sqlalchemy.or_(
                 model.Transfer.debtor==request.environ['user'],