diff --git a/budget/models.py b/budget/models.py index 1f3fa4f..49c3eb4 100644 --- a/budget/models.py +++ b/budget/models.py @@ -49,7 +49,7 @@ class Project(db.Model): return balances - def settle_bills(self): + def get_transactions_to_settle_bill(self): """Return a list of transactions that could be made to settle the bill""" credits, debts, transactions = [],[],[] # Create lists of credits and debts @@ -63,17 +63,17 @@ class Project(db.Model): match = self.exactmatch(credit["balance"], debts) if match: for m in match: - transactions.append({"ower": m["person"], "payer": credit["person"], "amount": m["balance"]}) + transactions.append({"ower": m["person"], "receiver": credit["person"], "amount": m["balance"]}) debts.remove(m) credits.remove(credit) # Split any remaining debts & credits while credits and debts: if credits[0]["balance"] > debts[0]["balance"]: - transactions.append({"ower": debts[0]["person"], "payer": credits[0]["person"], "amount": debts[0]["balance"]}) + transactions.append({"ower": debts[0]["person"], "receiver": credits[0]["person"], "amount": debts[0]["balance"]}) credits[0]["balance"] = credits[0]["balance"] - debts[0]["balance"] del debts[0] else: - transactions.append({"ower": debts[0]["person"], "payer": credits[0]["person"], "amount": credits[0]["balance"]}) + transactions.append({"ower": debts[0]["person"], "receiver": credits[0]["person"], "amount": credits[0]["balance"]}) debts[0]["balance"] = debts[0]["balance"] - credits[0]["balance"] del credits[0] return transactions diff --git a/budget/templates/settle_bills.html b/budget/templates/settle_bills.html index 309642a..e2041f5 100644 --- a/budget/templates/settle_bills.html +++ b/budget/templates/settle_bills.html @@ -34,9 +34,9 @@ {{ _("Who pays?") }}{{ _("To whom?") }}{{ _("How much?") }} {% for bill in bills %} - + {{ bill.ower }} - {{ bill.payer }} + {{ bill.receiver }} {{ "%0.2f"|format(bill.amount) }} {% endfor %} diff --git a/budget/tests.py b/budget/tests.py index 983b352..901924b 100644 --- a/budget/tests.py +++ b/budget/tests.py @@ -510,12 +510,12 @@ class BudgetTestCase(TestCase): 'amount': '10', }) project = models.Project.query.get('raclette') - transactions = project.settle_bills() + transactions = project.get_transactions_to_settle_bill() members = defaultdict(int) #We should have the same values between transactions and project balances for t in transactions: members[t['ower']]-=t['amount'] - members[t['payer']]+=t['amount'] + members[t['receiver']]+=t['amount'] balance = models.Project.query.get("raclette").balance for m, a in members.items(): self.assertEqual(a, balance[m.id]) diff --git a/budget/web.py b/budget/web.py index f975587..3125f9b 100644 --- a/budget/web.py +++ b/budget/web.py @@ -386,7 +386,7 @@ def change_lang(lang): @main.route("//settle_bills") def settle_bill(): """Compute the sum each one have to pay to each other and display it""" - bills = g.project.settle_bills() + bills = g.project.get_transactions_to_settle_bill() return render_template("settle_bills.html", bills=bills)