diff options
Diffstat (limited to 'budget')
| -rw-r--r-- | budget/models.py | 4 | ||||
| -rw-r--r-- | budget/static/css/main.css | 8 | ||||
| -rw-r--r-- | budget/templates/list_bills.html | 4 | ||||
| -rw-r--r-- | budget/tests.py | 16 |
4 files changed, 31 insertions, 1 deletions
diff --git a/budget/models.py b/budget/models.py index afd29f1..852b3e1 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 55dad99..f3fe8a0 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 0e0efd8..f081334 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 %} <tr id="bal-member-{{ member.id }}" action={% if member.activated %}delete{% else %}reactivate{% endif %}> - <td class="balance-name">{{ member.name }} <span class="light">(x{{ member.weight|minimal_round(1) }})</span></td> + <td class="balance-name">{{ member.name }} + <span class="light{% if not g.project.uses_weights %} extra-info{% endif %}">(x{{ member.weight|minimal_round(1) }})</span> + </td> {% if member.activated %} <td> <form class="action delete" action="{{ url_for(".remove_member", member_id=member.id) }}" method="POST"> diff --git a/budget/tests.py b/budget/tests.py index f4dfcce..82465f9 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") |
