From 7a630b78eae90a57033f785a2253fd490868352d Mon Sep 17 00:00:00 2001 From: Jocelyn Delande Date: Sun, 23 Aug 2015 11:58:27 +0200 Subject: [PATCH] Hide the member weights in members list if all weights are "1". --- budget/models.py | 4 ++++ budget/static/css/main.css | 8 ++++++++ budget/templates/list_bills.html | 4 +++- budget/tests.py | 16 ++++++++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/budget/models.py b/budget/models.py index afd29f18..852b3e19 100644 --- a/budget/models.py +++ b/budget/models.py @@ -50,6 +50,10 @@ class Project(db.Model): return balances + @property + def uses_weights(self): + return len([i for i in self.members if i.weight != 1]) > 0 + def get_transactions_to_settle_bill(self): """Return a list of transactions that could be made to settle the bill""" #cache value for better performance diff --git a/budget/static/css/main.css b/budget/static/css/main.css index 55dad99f..f3fe8a0b 100644 --- a/budget/static/css/main.css +++ b/budget/static/css/main.css @@ -198,6 +198,14 @@ tr.payer_line .balance-name{ opacity: 0.3; } +.extra-info { + display: none; +} + +tr:hover .extra-info { + display: inline; +} + .modal-body { max-height:455px; } diff --git a/budget/templates/list_bills.html b/budget/templates/list_bills.html index 0e0efd87..f0813347 100644 --- a/budget/templates/list_bills.html +++ b/budget/templates/list_bills.html @@ -67,7 +67,9 @@ {% set balance = g.project.balance %} {% for member in g.project.members | sort(attribute='name') if member.activated or balance[member.id] != 0 %} - {{ member.name }} (x{{ member.weight|minimal_round(1) }}) + {{ member.name }} + (x{{ member.weight|minimal_round(1) }}) + {% if member.activated %}
diff --git a/budget/tests.py b/budget/tests.py index f4dfcce7..82465f99 100644 --- a/budget/tests.py +++ b/budget/tests.py @@ -446,6 +446,22 @@ class BudgetTestCase(TestCase): balance = models.Project.query.get("raclette").balance self.assertEqual(set(balance.values()), set([6, -6])) + def test_weighted_members_list(self): + self.post_project("raclette") + + # add two persons + self.app.post("/raclette/members/add", data={'name': 'alexis'}) + self.app.post("/raclette/members/add", data={'name': 'tata', 'weight': 1}) + + resp = self.app.get("/raclette/") + self.assertIn('extra-info', resp.data) + + self.app.post("/raclette/members/add", data={'name': 'freddy familly', 'weight': 4}) + + resp = self.app.get("/raclette/") + self.assertNotIn('extra-info', resp.data) + + def test_rounding(self): self.post_project("raclette")