diff options
| author | amichon <antoine@hashbang.coop> | 2025-10-30 16:41:48 +0100 |
|---|---|---|
| committer | Saptak Sengupta <saptak013@gmail.com> | 2025-12-18 15:06:53 +0530 |
| commit | 4ff6a93bf4c5f2193e020c151ff8d6b6fe8746d2 (patch) | |
| tree | 1ac9a0c059de4e4052f47f42e35da6ea2352b6e1 /fundraising | |
| parent | 4875296ff8d990e72594dd9065d9032af4c7bcad (diff) | |
feat: Add gold members on pages foundation and community
Diffstat (limited to 'fundraising')
| -rw-r--r-- | fundraising/templatetags/fundraising_extras.py | 7 | ||||
| -rw-r--r-- | fundraising/tests/test_templatetags.py | 49 |
2 files changed, 56 insertions, 0 deletions
diff --git a/fundraising/templatetags/fundraising_extras.py b/fundraising/templatetags/fundraising_extras.py index 2d78ef9e..b5dbbe5f 100644 --- a/fundraising/templatetags/fundraising_extras.py +++ b/fundraising/templatetags/fundraising_extras.py @@ -118,3 +118,10 @@ def top_corporate_members(): members = CorporateMember.objects.by_membership_level() return {"members": members["diamond"] + members["platinum"]} + + +@register.inclusion_tag("fundraising/includes/gold_corporate_members.html") +def gold_corporate_members(): + members = CorporateMember.objects.by_membership_level() + + return {"members": members["gold"]} diff --git a/fundraising/tests/test_templatetags.py b/fundraising/tests/test_templatetags.py index 42118779..b5ebb877 100644 --- a/fundraising/tests/test_templatetags.py +++ b/fundraising/tests/test_templatetags.py @@ -17,6 +17,7 @@ from ..models import ( from ..templatetags.fundraising_extras import ( display_django_heroes, donation_form_with_heart, + gold_corporate_members, top_corporate_members, ) @@ -167,3 +168,51 @@ class TestTopCorporateMembers(TestCase): expected = [member_5, member_4, member_6, member_2, member_1, member_3] self.assertEqual(members, expected) + + +class TestGoldCorporateMembers(TestCase): + past_date = date(2000, 1, 1) + future_date = date(3000, 1, 1) + + def test_with_no_gold_members(self): + members = gold_corporate_members()["members"] + self.assertEqual(members, []) + + def test_with_gold_members(self): + member_1 = CorporateMember.objects.create(membership_level=3) + member_2 = CorporateMember.objects.create(membership_level=3) + member_3 = CorporateMember.objects.create(membership_level=3) + + member_1.invoice_set.create(amount=4, expiration_date=self.future_date) + member_2.invoice_set.create(amount=8, expiration_date=self.future_date) + member_3.invoice_set.create(amount=2, expiration_date=self.future_date) + + members = gold_corporate_members()["members"] + + self.assertEqual(members, [member_2, member_1, member_3]) + + def test_with_gold_members_and_other_members(self): + member_1 = CorporateMember.objects.create(membership_level=3) + member_2 = CorporateMember.objects.create(membership_level=3) + member_3 = CorporateMember.objects.create(membership_level=4) + + member_1.invoice_set.create(amount=4, expiration_date=self.future_date) + member_2.invoice_set.create(amount=8, expiration_date=self.future_date) + member_3.invoice_set.create(amount=2, expiration_date=self.future_date) + + members = gold_corporate_members()["members"] + self.assertEqual(members, [member_2, member_1]) + self.assertNotIn(member_3, members) + + def test_with_gold_members_and_expired_invoice(self): + member_1 = CorporateMember.objects.create(membership_level=3) + member_2 = CorporateMember.objects.create(membership_level=3) + member_3 = CorporateMember.objects.create(membership_level=4) + + member_1.invoice_set.create(amount=4, expiration_date=self.future_date) + member_2.invoice_set.create(amount=8, expiration_date=self.future_date) + member_3.invoice_set.create(amount=2, expiration_date=self.past_date) + + members = gold_corporate_members()["members"] + self.assertEqual(members, [member_2, member_1]) + self.assertNotIn(member_3, members) |
