From fe519bd4f07f221f01298a33e334cbd152801e34 Mon Sep 17 00:00:00 2001 From: "Edgar P. Burkhart" Date: Tue, 31 Dec 2024 19:39:55 +0100 Subject: [PATCH] Create transaction detail view --- nummi/main/static/main/css/main.css | 29 +++++++++++++ .../templates/transaction/invoice_table.html | 16 +++---- .../transaction/transaction_detail.html | 42 +++++++++++++++++++ .../transaction/transaction_form.html | 11 ++--- nummi/transaction/urls.py | 7 +++- nummi/transaction/views.py | 17 ++++++++ 6 files changed, 104 insertions(+), 18 deletions(-) create mode 100644 nummi/transaction/templates/transaction/transaction_detail.html diff --git a/nummi/main/static/main/css/main.css b/nummi/main/static/main/css/main.css index efd523f..6903443 100644 --- a/nummi/main/static/main/css/main.css +++ b/nummi/main/static/main/css/main.css @@ -459,3 +459,32 @@ ul.statements { } } } + +.multilink { + display: grid; + grid-auto-columns: max-content; +} + +.transaction-details { + display: grid; + grid-auto-columns: minmax(32rem, max-content); + grid-auto-rows: min-content; + + max-width: 32rem; + + ul { + list-style: none; + display: grid; + + li.value { + font-size: 1.5rem; + text-align: right; + } + } + + p.description, + ul { + border: var(--gray) 1px solid; + padding: var(--gap); + } +} diff --git a/nummi/transaction/templates/transaction/invoice_table.html b/nummi/transaction/templates/transaction/invoice_table.html index ac9e154..9b32285 100644 --- a/nummi/transaction/templates/transaction/invoice_table.html +++ b/nummi/transaction/templates/transaction/invoice_table.html @@ -7,32 +7,28 @@ - {% translate "Name" %} - {% translate "File" %} - {% translate "Delete" %} + {% translate "Invoice" %} + {{ "file-edit"|remix }} {% for invoice in transaction.invoices %} - {{ invoice.name }} + {{ invoice.name }} [{{ invoice.file|extension }}] - {% translate "File" %} [{{ invoice.file|extension }}] - - - {% translate "Delete" %} + {{ "file-edit"|remix }} {% empty %} - {% translate "No invoice" %} + {% translate "No invoice" %} {% endfor %} - + {% translate "Create invoice" %} diff --git a/nummi/transaction/templates/transaction/transaction_detail.html b/nummi/transaction/templates/transaction/transaction_detail.html new file mode 100644 index 0000000..bc5954e --- /dev/null +++ b/nummi/transaction/templates/transaction/transaction_detail.html @@ -0,0 +1,42 @@ +{% extends "main/form/base.html" %} +{% load i18n %} +{% load main_extras %} +{% block title %} + {{ transaction }} + – Nummi +{% endblock %} +{% block link %} + {{ block.super }} + {% css "main/css/form.css" %} + {% css "main/css/table.css" %} + {% css "main/css/plot.css" %} +{% endblock %} +{% block body %} +

{{ transaction }}

+
+ +

+ {{ "edit"|remix }}{% translate "Edit transaction" %} +

+ {% if transaction.description %}

{{ transaction.description|linebreaksbr }}

{% endif %} +
+
+

{% translate "Invoices" %}

+ {% include "transaction/invoice_table.html" %} +
+{% endblock %} diff --git a/nummi/transaction/templates/transaction/transaction_form.html b/nummi/transaction/templates/transaction/transaction_form.html index 5b40a0e..0b215bb 100644 --- a/nummi/transaction/templates/transaction/transaction_form.html +++ b/nummi/transaction/templates/transaction/transaction_form.html @@ -13,12 +13,9 @@ {{ statement }}

{% endif %} -{% endblock %} -{% block tables %} - {% if not form.instance|adding %} -
-

{% translate "Invoices" %}

- {% include "transaction/invoice_table.html" %} -
+ {% if not instance|adding %} +

+ {{ "arrow-go-back"|remix }}{% translate "Back" %} +

{% endif %} {% endblock %} diff --git a/nummi/transaction/urls.py b/nummi/transaction/urls.py index 7c62eb8..c39aef6 100644 --- a/nummi/transaction/urls.py +++ b/nummi/transaction/urls.py @@ -15,7 +15,12 @@ urlpatterns = [ name="transaction_month", ), path("new", views.TransactionCreateView.as_view(), name="new_transaction"), - path("", views.TransactionUpdateView.as_view(), name="transaction"), + path("", views.TransactionDetailView.as_view(), name="transaction"), + path( + "/edit", + views.TransactionUpdateView.as_view(), + name="edit_transaction", + ), path( "/delete", views.TransactionDeleteView.as_view(), diff --git a/nummi/transaction/views.py b/nummi/transaction/views.py index 6b1f56e..189b9ba 100644 --- a/nummi/transaction/views.py +++ b/nummi/transaction/views.py @@ -7,6 +7,7 @@ from history.utils import history from main.views import ( NummiCreateView, NummiDeleteView, + NummiDetailView, NummiListView, NummiUpdateView, UserMixin, @@ -61,6 +62,22 @@ class TransactionUpdateView(NummiUpdateView): pk_url_kwarg = "transaction" +class TransactionDetailView(NummiDetailView): + model = Transaction + pk_url_kwarg = "transaction" + context_object_name = "transaction" + + def get_context_data(self, **kwargs): + data = super().get_context_data(**kwargs) + transaction = data.get("transaction") + + return data | { + "account": transaction.statement.account, + "statement": transaction.statement, + "category": transaction.category, + } + + class InvoiceUpdateView(NummiUpdateView): model = Invoice form_class = InvoiceForm