aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ihatemoney/models.py20
-rw-r--r--ihatemoney/web.py15
2 files changed, 21 insertions, 14 deletions
diff --git a/ihatemoney/models.py b/ihatemoney/models.py
index aa3083d..c6ce23f 100644
--- a/ihatemoney/models.py
+++ b/ihatemoney/models.py
@@ -53,6 +53,26 @@ class Project(db.Model):
return balances
@property
+ def members_stats(self):
+ """Compute what each member has paid
+
+ :return: one stat dict per member
+ :rtype list:
+ """
+ return [{
+ 'member': member,
+ 'paid': sum([
+ bill.amount
+ for bill in self.get_member_bills(member.id).all()
+ ]),
+ 'spent': sum([
+ bill.pay_each() * member.weight
+ for bill in self.get_bills().all() if member in bill.owers
+ ]),
+ 'balance': self.balance[member.id]
+ } for member in self.active_members]
+
+ @property
def uses_weights(self):
return len([i for i in self.members if i.weight != 1]) > 0
diff --git a/ihatemoney/web.py b/ihatemoney/web.py
index 85b02e5..1e16202 100644
--- a/ihatemoney/web.py
+++ b/ihatemoney/web.py
@@ -566,22 +566,9 @@ def settle_bill():
@main.route("/<project_id>/statistics")
def statistics():
"""Compute what each member has paid and spent and display it"""
- members_stats = [{
- 'member': member,
- 'paid': sum([
- bill.amount
- for bill in g.project.get_member_bills(member.id).all()
- ]),
- 'spent': sum([
- bill.pay_each() * member.weight
- for bill in g.project.get_bills().all() if member in bill.owers
- ]),
- 'balance': g.project.balance[member.id]
- } for member in g.project.active_members]
-
return render_template(
"statistics.html",
- members_stats=members_stats,
+ members_stats=g.project.members_stats,
current_view='statistics',
)