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