- def _total(self, where):
- return Currency(meta.Session.execute(sqlalchemy.sql.select([
- sqlalchemy.func.sum(model.expenditures.c.amount).\
- label('total')]).\
- where(where)).scalar() or 0)
+ def _total_all(self, conditions=None):
+ q = meta.Session.query(sqlalchemy.func.SUM(
+ model.Expenditure.amount))
+ if conditions is not None:
+ q = q.filter(conditions)
+ return q.scalar()
+
+ def _total_mine(self, conditions=None):
+ q = meta.Session.query(sqlalchemy.func.SUM(
+ model.Split.share)).join(model.Split.expenditure).\
+ filter(model.Split.user == request.environ['user'])
+ if conditions is not None:
+ q = q.filter(conditions)
+ return q.scalar()