aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--budget/models.py4
-rw-r--r--budget/static/css/main.css8
-rw-r--r--budget/templates/list_bills.html4
-rw-r--r--budget/tests.py16
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")