From 348ac494e93ac33c8292e399990e3bf1404142e3 Mon Sep 17 00:00:00 2001 From: "Edgar P. Burkhart" Date: Thu, 2 Jan 2025 15:19:12 +0100 Subject: [PATCH] Use templatetag for transaction_table --- .../templates/category/category_detail.html | 5 +++-- nummi/category/views.py | 14 -------------- .../templates/statement/statement_detail.html | 12 +++++++----- .../templates/transaction/transaction_list.html | 12 ++++++------ .../transaction/templatetags/transaction_extras.py | 12 ++++++++++++ 5 files changed, 28 insertions(+), 27 deletions(-) diff --git a/nummi/category/templates/category/category_detail.html b/nummi/category/templates/category/category_detail.html index d2e4674..3c13cbb 100644 --- a/nummi/category/templates/category/category_detail.html +++ b/nummi/category/templates/category/category_detail.html @@ -1,5 +1,5 @@ {% extends "main/base.html" %} -{% load i18n main_extras history_extras %} +{% load i18n main_extras history_extras transaction_extras %} {% block title %} {{ category }} – {{ block.super }} {% endblock title %} @@ -15,7 +15,8 @@

{% translate "Transactions" %}

- {% include "transaction/transaction_table.html" %} + {% url "category_transactions" category.id as t_url %} + {% transaction_table category.transaction_set.all n_max=8 transactions_url=t_url %}

{% translate "History" %}

diff --git a/nummi/category/views.py b/nummi/category/views.py index c34a422..da93085 100644 --- a/nummi/category/views.py +++ b/nummi/category/views.py @@ -1,5 +1,4 @@ from django.shortcuts import get_object_or_404 -from django.urls import reverse_lazy from main.views import ( NummiCreateView, NummiDeleteView, @@ -28,19 +27,6 @@ class CategoryDetailView(NummiDetailView): pk_url_kwarg = "category" context_object_name = "category" - def get_context_data(self, **kwargs): - _max = 8 - data = super().get_context_data(**kwargs) - category = data["object"] - - data["transactions"] = category.transaction_set.all()[:_max] - if len(data["transactions"]) == _max: - data["transactions_url"] = reverse_lazy( - "category_transactions", args=(category.pk,) - ) - - return data - class CategoryDeleteView(NummiDeleteView): model = Category diff --git a/nummi/statement/templates/statement/statement_detail.html b/nummi/statement/templates/statement/statement_detail.html index ea2c21e..e31ffcc 100644 --- a/nummi/statement/templates/statement/statement_detail.html +++ b/nummi/statement/templates/statement/statement_detail.html @@ -1,15 +1,15 @@ {% extends "main/base.html" %} -{% load i18n main_extras statement_extras category %} +{% load i18n main_extras statement_extras transaction_extras category %} {% block title %} {{ statement }} – Nummi -{% endblock %} +{% endblock title %} {% block link %} {{ block.super }} {% css "main/css/form.css" %} {% css "main/css/table.css" %} {% css "main/css/plot.css" %} -{% endblock %} +{% endblock link %} {% block body %}

{{ statement }}

@@ -38,10 +38,12 @@

{% translate "Transactions" %}

- {% include "transaction/transaction_table.html" %} + {% url "statement_transactions" statement.id as t_url %} + {% url "new_transaction" statement=statement.id as nt_url %} + {% transaction_table statement.transaction_set.all n_max=8 transactions_url=t_url new_transaction_url=nt_url %}

{% translate "Categories" %}

{% category_plot transactions budget=False statement=object %}
-{% endblock %} +{% endblock body %} diff --git a/nummi/transaction/templates/transaction/transaction_list.html b/nummi/transaction/templates/transaction/transaction_list.html index 890cec7..abd6ef5 100644 --- a/nummi/transaction/templates/transaction/transaction_list.html +++ b/nummi/transaction/templates/transaction/transaction_list.html @@ -1,12 +1,12 @@ {% extends "main/list.html" %} -{% load i18n %} +{% load i18n transaction_extras %} {% block name %} {% translate "Transactions" %} -{% endblock %} +{% endblock name %} {% block h2 %} {% translate "Transactions" %} -{% endblock %} +{% endblock h2 %} {% block table %} - {% url "new_transaction" as new_transaction_url %} - {% include "transaction/transaction_table.html" %} -{% endblock %} + {% url "new_transaction" as nt_url %} + {% transaction_table transactions new_transaction_url=nt_url %} +{% endblock table %} diff --git a/nummi/transaction/templatetags/transaction_extras.py b/nummi/transaction/templatetags/transaction_extras.py index 00f17d4..b614674 100644 --- a/nummi/transaction/templatetags/transaction_extras.py +++ b/nummi/transaction/templatetags/transaction_extras.py @@ -10,6 +10,18 @@ from ..utils import ac_url register = template.Library() +@register.inclusion_tag("transaction/transaction_table.html") +def transaction_table(transactions, **kwargs): + if (n_max := kwargs.get("n_max")) is not None: + if transactions.count() <= n_max: + del kwargs["transactions_url"] + transactions = transactions[:n_max] + + return kwargs | { + "transactions": transactions, + } + + @register.simple_tag(takes_context=True) def month_url(context, month, cls="", fmt="Y-m"): url_name, url_params = ac_url(