diff --git a/nummi/category/templates/category/category_plot.html b/nummi/category/templates/category/category_plot.html
index 1a0fc4a..1313da6 100644
--- a/nummi/category/templates/category/category_plot.html
+++ b/nummi/category/templates/category/category_plot.html
@@ -18,7 +18,7 @@
{% spaceless %}
- {% for cat in categories.data %}
+ {% for cat in categories %}
{% if cat.category %}
@@ -34,25 +34,27 @@
| {{ cat.sum_m|pmrvalue }} |
-
+
{% if cat.sum < 0 %}
-
+
{{ cat.sum|pmrvalue }}
{% endif %}
|
-
+
{% if cat.sum > 0 %}
-
+
{{ cat.sum|pmrvalue }}
{% endif %}
|
{{ cat.sum_p|pmrvalue }} |
+ {% empty %}
+
+ {% translate "No transaction" %} |
+
{% endfor %}
{% endspaceless %}
diff --git a/nummi/category/templatetags/__init__.py b/nummi/category/templatetags/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/nummi/category/utils.py b/nummi/category/templatetags/category.py
similarity index 62%
rename from nummi/category/utils.py
rename to nummi/category/templatetags/category.py
index b3b0ea8..c43256b 100644
--- a/nummi/category/utils.py
+++ b/nummi/category/templatetags/category.py
@@ -1,9 +1,14 @@
+from django import template
from django.db import models
+register = template.Library()
-def get_categories(transactions):
+
+@register.inclusion_tag("category/category_plot.html")
+def category_plot(transactions):
categories = (
- transactions.values("category", "category__name", "category__icon")
+ transactions.filter(category__budget=True)
+ .values("category", "category__name", "category__icon")
.annotate(
sum=models.Sum("value"),
sum_m=models.Sum("value", filter=models.Q(value__lt=0)),
@@ -12,7 +17,7 @@ def get_categories(transactions):
.order_by("-sum")
)
return {
- "data": categories,
+ "categories": categories,
"max": max(
categories.aggregate(
max=models.Max("sum_p", default=0),
diff --git a/nummi/statement/templates/statement/statement_form.html b/nummi/statement/templates/statement/statement_form.html
index bb40e07..ef28ce5 100644
--- a/nummi/statement/templates/statement/statement_form.html
+++ b/nummi/statement/templates/statement/statement_form.html
@@ -1,6 +1,5 @@
{% extends "main/form/base.html" %}
-{% load main_extras %}
-{% load i18n %}
+{% load i18n main_extras category %}
{% block title_new %}
{% translate "Create statement" %}
{% endblock %}
@@ -19,11 +18,9 @@
{% endif %}
{% endblock %}
{% block tables %}
- {% if categories %}
- {% translate "Categories" %}
- {% include "category/category_plot.html" %}
- {% endif %}
{% if not form.instance|adding %}
+ {% translate "Categories" %}
+ {% category_plot transactions %}
{% translate "Transactions" %} ({{ form.instance.sum|pmvalue }} / {{ form.instance.diff|pmvalue }})
{% include "transaction/transaction_table.html" %}
{% endif %}
diff --git a/nummi/statement/views.py b/nummi/statement/views.py
index 9121ba3..435cb85 100644
--- a/nummi/statement/views.py
+++ b/nummi/statement/views.py
@@ -1,5 +1,4 @@
from account.models import Account
-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
@@ -42,8 +41,6 @@ class StatementUpdateView(NummiUpdateView):
statement = data["form"].instance
_transactions = statement.transaction_set.all()
- if _transactions:
- 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 431e4db..9c5ea87 100644
--- a/nummi/transaction/templates/transaction/transaction_archive_month.html
+++ b/nummi/transaction/templates/transaction/transaction_archive_month.html
@@ -1,6 +1,5 @@
{% extends "transaction/transaction_list.html" %}
-{% load i18n %}
-{% load static %}
+{% load i18n static category %}
{% block link %}
{{ block.super }}
{% translate "Transactions" %}
{{ block.super }}
- {% if categories %}
+ {% if not category %}
{% translate "Categories" %}
- {% include "category/category_plot.html" %}
+ {% category_plot transactions %}
{% endif %}
{% endblock %}
diff --git a/nummi/transaction/views.py b/nummi/transaction/views.py
index 238d19a..f7464cd 100644
--- a/nummi/transaction/views.py
+++ b/nummi/transaction/views.py
@@ -1,6 +1,5 @@
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
@@ -136,8 +135,6 @@ class TransactionMonthView(UserMixin, MonthArchiveView):
context_data = super().get_context_data(**kwargs)
if "category" in self.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