diff options
| author | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2024-01-16 02:05:24 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-16 02:05:24 +0100 |
| commit | e7c616968ae81646c16ec5db4e6c63dda5c1c749 (patch) | |
| tree | 7b8f584f142717fd1643e544f76a79c76bcdb81c /foundation | |
| parent | f46f48b0a3c1e53cfe459e99152a8024858190ba (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__.py | 0 | ||||
| -rw-r--r-- | foundation/templatetags/foundation.py | 44 | ||||
| -rw-r--r-- | foundation/tests.py | 43 |
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") |
