diff --git a/nummi/category/templates/category/category_plot.html b/nummi/category/templates/category/category_plot.html
index 71cddaa..344500b 100644
--- a/nummi/category/templates/category/category_plot.html
+++ b/nummi/category/templates/category/category_plot.html
@@ -20,7 +20,7 @@
{% spaceless %}
{% for cat in categories.data %}
-
+ |
{% if cat.category %}{{ cat.category__name }}{% endif %}
|
diff --git a/nummi/category/utils.py b/nummi/category/utils.py
new file mode 100644
index 0000000..b3b0ea8
--- /dev/null
+++ b/nummi/category/utils.py
@@ -0,0 +1,22 @@
+from django.db import models
+
+
+def get_categories(transactions):
+ categories = (
+ transactions.values("category", "category__name", "category__icon")
+ .annotate(
+ sum=models.Sum("value"),
+ sum_m=models.Sum("value", filter=models.Q(value__lt=0)),
+ sum_p=models.Sum("value", filter=models.Q(value__gt=0)),
+ )
+ .order_by("-sum")
+ )
+ return {
+ "data": categories,
+ "max": max(
+ categories.aggregate(
+ max=models.Max("sum_p", default=0),
+ min=models.Min("sum_m", default=0),
+ ).values(),
+ ),
+ }
diff --git a/nummi/main/static/main/css/main.css b/nummi/main/static/main/css/main.css
index 523338c..892b449 100644
--- a/nummi/main/static/main/css/main.css
+++ b/nummi/main/static/main/css/main.css
@@ -163,8 +163,10 @@ footer {
a.big-link {
margin-right: 1em;
}
-[class^="ri-"] {
+a [class^="ri-"] {
margin-right: 0.5em;
+}
+[class^="ri-"] {
font-weight: normal;
}
diff --git a/nummi/statement/views.py b/nummi/statement/views.py
index cbbbc6a..9121ba3 100644
--- a/nummi/statement/views.py
+++ b/nummi/statement/views.py
@@ -1,5 +1,5 @@
from account.models import Account
-from django.db import models
+from category.utils import get_categories
from django.shortcuts import get_object_or_404
from django.urls import reverse_lazy
from main.views import NummiCreateView, NummiDeleteView, NummiListView, NummiUpdateView
@@ -43,24 +43,7 @@ class StatementUpdateView(NummiUpdateView):
_transactions = statement.transaction_set.all()
if _transactions:
- _categories = (
- _transactions.values("category", "category__name", "category__icon")
- .annotate(
- sum=models.Sum("value"),
- sum_m=models.Sum("value", filter=models.Q(value__lt=0)),
- sum_p=models.Sum("value", filter=models.Q(value__gt=0)),
- )
- .order_by("-sum")
- )
- data["categories"] = {
- "data": _categories,
- "max": max(
- _categories.aggregate(
- max=models.Max("sum_p", default=0),
- min=models.Min("sum_m", default=0),
- ).values(),
- ),
- }
+ data["categories"] = get_categories(_transactions)
return data | {
"account": statement.account,
diff --git a/nummi/transaction/templates/transaction/transaction_archive_month.html b/nummi/transaction/templates/transaction/transaction_archive_month.html
index efd440f..93561c0 100644
--- a/nummi/transaction/templates/transaction/transaction_archive_month.html
+++ b/nummi/transaction/templates/transaction/transaction_archive_month.html
@@ -1,2 +1,16 @@
{% extends "transaction/transaction_list.html" %}
+{% load i18n %}
+{% load static %}
+{% block link %}
+ {{ block.super }}
+
+{% endblock %}
{% block h2 %}{{ month|date:"F Y"|capfirst }}{% endblock %}
+{% block table %}
+ {% translate "Transactions" %}
+ {{ block.super }}
+ {% translate "History" %}
+ {% include "category/category_plot.html" %}
+{% endblock %}
diff --git a/nummi/transaction/views.py b/nummi/transaction/views.py
index 0a54fc7..238d19a 100644
--- a/nummi/transaction/views.py
+++ b/nummi/transaction/views.py
@@ -1,5 +1,6 @@
from account.models import Account
from category.models import Category
+from category.utils import get_categories
from django.shortcuts import get_object_or_404
from django.urls import reverse_lazy
from django.views.generic.dates import MonthArchiveView
@@ -132,8 +133,11 @@ class TransactionMonthView(UserMixin, MonthArchiveView):
return super().get_queryset()
def get_context_data(self, **kwargs):
- if "account" in self.kwargs:
- return super().get_context_data(**kwargs) | {"account": self.account}
+ context_data = super().get_context_data(**kwargs)
if "category" in self.kwargs:
- return super().get_context_data(**kwargs) | {"category": self.category}
- return super().get_context_data(**kwargs)
+ return context_data | {"category": self.category}
+
+ context_data["categories"] = get_categories(context_data["transactions"])
+ if "account" in self.kwargs:
+ return context_data | {"account": self.account}
+ return context_data
|