diff options
| author | Tim Graham <timograham@gmail.com> | 2016-03-12 09:37:21 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-03-12 09:37:21 -0500 |
| commit | 6f2b0cf70af558c915eb441e05e7e373970fba7a (patch) | |
| tree | 1f52b65da716cd2b51cde71fee5168c13d0ca78f /members | |
| parent | 90daced00e8feeebff59337afb3dcd7533b60ae0 (diff) | |
Added an "Is paid" column to corporate member changelist.
Diffstat (limited to 'members')
| -rw-r--r-- | members/admin.py | 1 | ||||
| -rw-r--r-- | members/models.py | 6 | ||||
| -rw-r--r-- | members/test_models.py | 11 |
3 files changed, 18 insertions, 0 deletions
diff --git a/members/admin.py b/members/admin.py index a7f190f2..da583815 100644 --- a/members/admin.py +++ b/members/admin.py @@ -29,6 +29,7 @@ class CorporateMemberAdmin(admin.ModelAdmin): 'display_name', 'membership_expires', '_is_invoiced', + '_is_paid', 'contact_email', 'membership_level', ] diff --git a/members/models.py b/members/models.py index 79e96b88..5066ee07 100644 --- a/members/models.py +++ b/members/models.py @@ -68,6 +68,12 @@ class CorporateMember(models.Model): _is_invoiced.boolean = True is_invoiced = property(_is_invoiced) + def _is_paid(self): + invoices = self.invoice_set.all() + return bool(invoices) and all(invoice.paid_date is not None for invoice in invoices) + _is_paid.boolean = True + is_paid = property(_is_paid) + def get_expiry_date(self): expiry_date = None for invoice in self.invoice_set.all(): diff --git a/members/test_models.py b/members/test_models.py index f9489cd0..219250de 100644 --- a/members/test_models.py +++ b/members/test_models.py @@ -58,6 +58,17 @@ class CorporateMemberTests(TestCase): invoice.save() self.assertEqual(self.member.is_invoiced, True) + def test_is_paid(self): + # No invoices == not paid. + self.assertEqual(self.member.is_paid, False) + # Invoice but no paid_date == not paid. + invoice = self.member.invoice_set.create(amount=500) + self.assertEqual(self.member.is_paid, False) + # Invoice with a paid_date == paid. + invoice.paid_date = date.today() + invoice.save() + self.assertEqual(self.member.is_paid, True) + def test_get_expiry_date(self): today = date.today() tomorrow = today + timedelta(days=1) |
