Add year link on month view

This commit is contained in:
Edgar P. Burkhart 2024-01-02 14:35:39 +01:00
parent 57279b1cda
commit 35b26f2d10
Signed by: edpibu
GPG Key ID: 9833D3C5A25BD227
8 changed files with 57 additions and 56 deletions

View File

@ -1,5 +1,6 @@
{% load main_extras %} {% load main_extras %}
{% load history_extras %} {% load history_extras %}
{% load transaction_extras %}
{% load i18n %} {% load i18n %}
<div class="history plot"> <div class="history plot">
<table class="full-width"> <table class="full-width">

View File

@ -1,13 +1,9 @@
import math import math
from django import template from django import template
from django.template.defaultfilters import date
from django.urls import reverse
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from main.templatetags.main_extras import pmrvalue, remix from main.templatetags.main_extras import pmrvalue, remix
from ..utils import ac_url
register = template.Library() register = template.Library()
@ -39,24 +35,6 @@ def up_down_icon(val):
return remix("arrow-down-s", "red") return remix("arrow-down-s", "red")
@register.simple_tag
def month_url(month, **kwargs):
url_name, url_params = ac_url(
"transaction_month", {"year": month.year, "month": month.month}, **kwargs
)
url = reverse(url_name, kwargs=url_params)
return mark_safe(f"""<a href="{url}">{ date(month, "Y-m") }</a>""")
@register.simple_tag
def year_url(year, **kwargs):
url_name, url_params = ac_url("transaction_year", {"year": year}, **kwargs)
url = reverse(url_name, kwargs=url_params)
return mark_safe(f"""<a href="{url}">{ year }</a>""")
@register.simple_tag @register.simple_tag
def plot_bar(s, sum_pm, s_max): def plot_bar(s, sum_pm, s_max):
_res = "" _res = ""

View File

@ -1,14 +1,9 @@
import datetime import datetime
from django.db.models import Func, Max, Min, Q, Sum from django.db.models import Max, Min, Q, Sum
from django.db.models.functions import Abs, TruncMonth from django.db.models.functions import Abs, TruncMonth
class GenerateMonth(Func):
function = "generate_series"
template = "%(function)s(%(expressions)s, '1 month')::date"
def history(transaction_set): def history(transaction_set):
if not transaction_set.exists(): if not transaction_set.exists():
return None return None
@ -50,14 +45,3 @@ def history(transaction_set):
"sum": _history.aggregate(max=Max(Abs("sum")))["max"], "sum": _history.aggregate(max=Max(Abs("sum")))["max"],
}, },
} }
def ac_url(url_name, url_params, account=None, category=None):
if account:
url_name = "account_" + url_name
url_params |= {"account": account.pk}
elif category:
url_name = "category_" + url_name
url_params |= {"category": category.pk}
return url_name, url_params

View File

@ -19,21 +19,23 @@
<h2> <h2>
{% block h2 %}{% endblock %} {% block h2 %}{% endblock %}
</h2> </h2>
{% if account %} {% block backlinks %}
<p> {% if account %}
<a class="big-link" href="{{ account.get_absolute_url }}">{{ account.icon|remix }}{{ account }}</a> <p>
</p> <a class="big-link" href="{{ account.get_absolute_url }}">{{ account.icon|remix }}{{ account }}</a>
{% endif %} </p>
{% if category %} {% endif %}
<p> {% if category %}
<a class="big-link" href="{{ category.get_absolute_url }}">{{ category.icon|remix }}{{ category }}</a> <p>
</p> <a class="big-link" href="{{ category.get_absolute_url }}">{{ category.icon|remix }}{{ category }}</a>
{% endif %} </p>
{% if search %} {% endif %}
<p> {% if search %}
<a href="{% url "search" %}">{% translate "Search" %}</a> <p>
</p> <a href="{% url "search" %}">{% translate "Search" %}</a>
{% endif %} </p>
{% endif %}
{% endblock %}
{% include "main/pagination.html" %} {% include "main/pagination.html" %}
{% block table %}{% endblock %} {% block table %}{% endblock %}
{% include "main/pagination.html" %} {% include "main/pagination.html" %}

View File

@ -1,4 +1,4 @@
{% load i18n %} {% load i18n transaction_extras %}
{% if page_obj %} {% if page_obj %}
<p class="pagination"> <p class="pagination">
{% for page in paginator.page_range %} {% for page in paginator.page_range %}
@ -8,6 +8,7 @@
</p> </p>
{% endif %} {% endif %}
{% if month %} {% if month %}
<p class="pagination">{% year_url month.year account=account category=category %}</p>
<p class="pagination"> <p class="pagination">
{% with month=previous_month %} {% with month=previous_month %}
{% include "main/pagination_month.html" %} {% include "main/pagination_month.html" %}

View File

@ -1,5 +1,5 @@
{% extends "transaction/transaction_list.html" %} {% extends "transaction/transaction_list.html" %}
{% load i18n main_extras static category %} {% load i18n main_extras transaction_extras static category %}
{% block link %} {% block link %}
{{ block.super }} {{ block.super }}
{% css "main/css/plot.css" %} {% css "main/css/plot.css" %}

View File

@ -0,0 +1,26 @@
from django import template
from django.template.defaultfilters import date
from django.urls import reverse
from django.utils.safestring import mark_safe
from ..utils import ac_url
register = template.Library()
@register.simple_tag
def month_url(month, **kwargs):
url_name, url_params = ac_url(
"transaction_month", {"year": month.year, "month": month.month}, **kwargs
)
url = reverse(url_name, kwargs=url_params)
return mark_safe(f"""<a href="{url}">{ date(month, "Y-m") }</a>""")
@register.simple_tag
def year_url(year, **kwargs):
url_name, url_params = ac_url("transaction_year", {"year": year}, **kwargs)
url = reverse(url_name, kwargs=url_params)
return mark_safe(f"""<a href="{url}">{ year }</a>""")

View File

@ -0,0 +1,9 @@
def ac_url(url_name, url_params, account=None, category=None):
if account:
url_name = "account_" + url_name
url_params |= {"account": account.pk}
elif category:
url_name = "category_" + url_name
url_params |= {"category": category.pk}
return url_name, url_params