diff --git a/sstreasury/jinja2/sstreasury/budget_view.html b/sstreasury/jinja2/sstreasury/budget_view.html
index 774abc5..af3ed75 100644
--- a/sstreasury/jinja2/sstreasury/budget_view.html
+++ b/sstreasury/jinja2/sstreasury/budget_view.html
@@ -252,6 +252,11 @@
{% endfor %}
+
+ Total paid: |
+ {{ '${:.2f}'.format(claims_total_paid) }} |
+ |
+
diff --git a/sstreasury/views.py b/sstreasury/views.py
index caf715a..4c857cf 100644
--- a/sstreasury/views.py
+++ b/sstreasury/views.py
@@ -1,5 +1,6 @@
# Society Self-Service
-# Copyright © 2018–2021 Yingtong Li (RunasSudo)
+# Copyright © 2018–2023 Yingtong Li (RunasSudo)
+# Copyright © 2023 MUMUS Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -258,14 +259,17 @@ def budget_view(request, budget, revision):
if revision.state == models.BudgetState.APPROVED.value and 'revision' not in request.GET:
claims = models.ReimbursementClaim.objects.filter(Q(budget_id=str(budget.id)) | Q(budget_id__endswith='-{}'.format(budget.id))).all()
+ claims_total_paid = sum(c.get_total() for c in claims if c.state == models.ClaimState.PAID.value)
else:
claims = None
+ claims_total_paid = 0
return render(request, 'sstreasury/budget_view.html', {
'revision': revision,
'history': history,
'is_latest': 'revision' not in request.GET,
- 'claims': claims
+ 'claims': claims,
+ 'claims_total_paid': claims_total_paid
})
@login_required