summaryrefslogtreecommitdiff
path: root/foundation
diff options
context:
space:
mode:
authorSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2024-01-16 02:05:24 +0100
committerGitHub <noreply@github.com>2024-01-16 02:05:24 +0100
commite7c616968ae81646c16ec5db4e6c63dda5c1c749 (patch)
tree7b8f584f142717fd1643e544f76a79c76bcdb81c /foundation
parentf46f48b0a3c1e53cfe459e99152a8024858190ba (diff)
Upgrade django-money to 3.1. (#1439)
* Added test for meeting details. * Upgraded django-money to 3.1.
Diffstat (limited to 'foundation')
-rw-r--r--foundation/templatetags/__init__.py0
-rw-r--r--foundation/templatetags/foundation.py44
-rw-r--r--foundation/tests.py43
3 files changed, 42 insertions, 45 deletions
diff --git a/foundation/templatetags/__init__.py b/foundation/templatetags/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/foundation/templatetags/__init__.py
+++ /dev/null
diff --git a/foundation/templatetags/foundation.py b/foundation/templatetags/foundation.py
deleted file mode 100644
index 7b73641d..00000000
--- a/foundation/templatetags/foundation.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from decimal import ROUND_HALF_EVEN
-
-import moneyed
-from django import template
-from moneyed.localization import _format, _sign, format_money
-
-register = template.Library()
-
-
-# The default currency formatting of py-moneyed/djmoney doesn't do
-# what we want, so we set up a custom one here, applying a consistent
-# format that always prefixes the three-letter currency code and
-# symbol.
-DJANGO = "django"
-
-_format(
- DJANGO,
- group_size=3,
- group_separator=",",
- decimal_point=".",
- positive_sign="",
- trailing_positive_sign="",
- negative_sign="-",
- trailing_negative_sign="",
- rounding_method=ROUND_HALF_EVEN,
-)
-
-# The DSF mostly only deals in USD with occasional grants iN EUR, but
-# we set up a few other currencies here just to be safe.
-#
-# Any currencies not defined here will fall back to the py-moneyed
-# default formatter.
-_sign(DJANGO, moneyed.AUD, prefix="AUD $")
-_sign(DJANGO, moneyed.CAD, prefix="CAD $")
-_sign(DJANGO, moneyed.EUR, prefix="EUR €")
-_sign(DJANGO, moneyed.GBP, prefix="GBP £")
-_sign(DJANGO, moneyed.JPY, prefix="JPY ¥")
-_sign(DJANGO, moneyed.NZD, prefix="NZD $")
-_sign(DJANGO, moneyed.USD, prefix="USD $")
-
-
-@register.filter
-def currency(value):
- return format_money(value, locale=DJANGO)
diff --git a/foundation/tests.py b/foundation/tests.py
index e9eae224..11cbd278 100644
--- a/foundation/tests.py
+++ b/foundation/tests.py
@@ -3,8 +3,9 @@ from datetime import date
from django.contrib.auth.models import User
from django.test import TestCase
from django.urls import reverse
+from djmoney.money import Money
-from .models import BoardMember, Meeting, Office, Term
+from .models import ApprovedGrant, BoardMember, Meeting, Office, Term
class MeetingTestCase(TestCase):
@@ -36,3 +37,43 @@ class MeetingTestCase(TestCase):
response = self.client.get(reverse("foundation-minutes-feed"))
self.assertEqual(response.status_code, 200)
self.assertIn(b"DSF Board monthly meeting", response.content)
+
+ def test_meeting_details(self):
+ user = User.objects.create_superuser("admin", "admin@example.com", "password")
+ self.client.force_login(user)
+ member = BoardMember.objects.create(
+ account=user,
+ office=Office.objects.create(name="treasurer"),
+ term=Term.objects.create(year=2023),
+ )
+ meeting = Meeting.objects.create(
+ date=date(2023, 1, 12),
+ title="DSF Board monthly meeting",
+ slug="dsf-board-monthly-meeting",
+ leader=member,
+ treasurer_report="Hello World",
+ )
+ ApprovedGrant.objects.create(
+ entity="Django girls",
+ amount=Money("10000", "USD"),
+ approved_at=meeting,
+ )
+ ApprovedGrant.objects.create(
+ entity="DjangoCon EU",
+ amount=Money(5000, "EUR"),
+ approved_at=meeting,
+ )
+ response = self.client.get(
+ reverse(
+ "foundation_meeting_detail",
+ kwargs={
+ "year": 2023,
+ "month": "jan",
+ "day": 12,
+ "slug": "dsf-board-monthly-meeting",
+ },
+ )
+ )
+ self.assertContains(response, "DSF Board monthly meeting")
+ self.assertContains(response, "USD $10,000.00")
+ self.assertContains(response, "EUR €5,000.00")