feat(monthly): show asset accounts/currencies on specific sumaries

This commit is contained in:
Herculino Trotta
2026-08-15 01:30:57 -03:00
parent d71bf3ccb3
commit ea3e9fd68f
2 changed files with 38 additions and 2 deletions
@@ -107,6 +107,25 @@ class MonthlySummaryFilterBehaviorTests(TestCase):
return data return data
return None return None
def _create_asset_income(self):
asset_account = Account.objects.create(
name="Asset Account",
group=self.account_group,
currency=self.currency,
is_asset=True,
)
Transaction.objects.create(
account=asset_account,
type=Transaction.Type.INCOME,
is_paid=True,
date=date(2025, 12, 25),
reference_date=date(2025, 12, 1),
amount=Decimal("50.00"),
description="Asset Income",
owner=self.user,
)
return asset_account
# --- monthly_summary view tests --- # --- monthly_summary view tests ---
def test_monthly_summary_no_filter_returns_200(self): def test_monthly_summary_no_filter_returns_200(self):
@@ -304,6 +323,15 @@ class MonthlySummaryFilterBehaviorTests(TestCase):
) )
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
def test_monthly_account_summary_includes_asset_accounts(self):
asset_account = self._create_asset_income()
response = self.client.get(
"/monthly/12/2025/summary/accounts/",
HTTP_HX_REQUEST="true",
)
self.assertIn(asset_account.id, response.context["account_data"])
def test_monthly_account_summary_with_filter_returns_200(self): def test_monthly_account_summary_with_filter_returns_200(self):
"""Test that monthly_account_summary returns 200 with filter""" """Test that monthly_account_summary returns 200 with filter"""
response = self.client.get( response = self.client.get(
@@ -322,6 +350,16 @@ class MonthlySummaryFilterBehaviorTests(TestCase):
) )
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
def test_monthly_currency_summary_includes_asset_account_transactions(self):
self._create_asset_income()
response = self.client.get(
"/monthly/12/2025/summary/currencies/",
HTTP_HX_REQUEST="true",
)
usd_data = self._get_currency_data(response.context["currency_data"])
self.assertEqual(usd_data["income_current"], Decimal("1050.00"))
def test_monthly_currency_summary_with_filter_returns_200(self): def test_monthly_currency_summary_with_filter_returns_200(self):
"""Test that monthly_currency_summary returns 200 with filter""" """Test that monthly_currency_summary returns 200 with filter"""
response = self.client.get( response = self.client.get(
-2
View File
@@ -226,7 +226,6 @@ def monthly_account_summary(request, month: int, year: int):
Q(Q(category__mute=True) & ~Q(category=None)) | Q(mute=True) Q(Q(category__mute=True) & ~Q(category=None)) | Q(mute=True)
) )
.exclude(account__in=request.user.untracked_accounts.all()) .exclude(account__in=request.user.untracked_accounts.all())
.exclude(account__is_asset=True)
) )
account_data = calculate_account_totals(transactions_queryset=queryset.all()) account_data = calculate_account_totals(transactions_queryset=queryset.all())
@@ -280,7 +279,6 @@ def monthly_currency_summary(request, month: int, year: int):
Q(Q(category__mute=True) & ~Q(category=None)) | Q(mute=True) Q(Q(category__mute=True) & ~Q(category=None)) | Q(mute=True)
) )
.exclude(account__in=request.user.untracked_accounts.all()) .exclude(account__in=request.user.untracked_accounts.all())
.exclude(account__is_asset=True)
) )
currency_data = calculate_currency_totals(queryset.all(), ignore_empty=True) currency_data = calculate_currency_totals(queryset.all(), ignore_empty=True)