mirror of
https://github.com/spiral-project/ihatemoney.git
synced 2025-04-29 09:52:36 +02:00
Move member stats computation to a dedicated method
This commit is contained in:
parent
b1a4572e8c
commit
036cd05e57
2 changed files with 21 additions and 14 deletions
|
@ -52,6 +52,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
|
||||
|
|
|
@ -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',
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in a new issue