From 8c78a70026de0b474f1a525aaf12a40d7fd1335a Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Thu, 8 Jan 2026 00:36:36 +0100 Subject: [PATCH] Extend tests, fine-tune layout of templates code for ledger_structured view. --- src/ledgplom/testing.py | 6 +- src/templates/_base.tmpl | 40 ++++---- src/templates/_macros.tmpl | 45 ++++---- src/templates/ledger_structured.tmpl | 44 ++++---- src/tests/{test.dat => empty.dat} | 0 src/tests/{test.html => empty.html} | 79 +++++--------- src/tests/full.dat | 7 ++ src/tests/full.html | 147 +++++++++++++++++++++++++++ 8 files changed, 243 insertions(+), 125 deletions(-) rename src/tests/{test.dat => empty.dat} (100%) rename src/tests/{test.html => empty.html} (54%) create mode 100644 src/tests/full.dat create mode 100644 src/tests/full.html diff --git a/src/ledgplom/testing.py b/src/ledgplom/testing.py index 4bc4ba9..0bcb545 100644 --- a/src/ledgplom/testing.py +++ b/src/ledgplom/testing.py @@ -24,8 +24,10 @@ def run_tests() -> None: print(f'{msg_prefix} FAILED – {abort_msg}') sys_exit(1) - jinja = JinjaEnv(loader=JinjaFSLoader(PATH_TEMPLATES), autoescape=True) - tmpl = jinja.get_template(f'{PAGENAME_LEDGER_STRUCTURED}.tmpl') + tmpl = JinjaEnv(loader=JinjaFSLoader(PATH_TEMPLATES), + autoescape=True, + trim_blocks=True, + ).get_template(f'{PAGENAME_LEDGER_STRUCTURED}.tmpl') for path in [p for p in _PATH_TESTS.iterdir() if p.parts[-1].endswith(_EXT_DAT)]: with Path(str(path)[:-len(_EXT_DAT)] + _EXT_HTML diff --git a/src/templates/_base.tmpl b/src/templates/_base.tmpl index b5d2bf1..d91f5d8 100644 --- a/src/templates/_base.tmpl +++ b/src/templates/_base.tmpl @@ -4,7 +4,8 @@ - - -{% block content %}{% endblock %} +{% block content %} +{% endblock %} diff --git a/src/templates/_macros.tmpl b/src/templates/_macros.tmpl index dcb3f82..46a55a3 100644 --- a/src/templates/_macros.tmpl +++ b/src/templates/_macros.tmpl @@ -11,15 +11,14 @@ {% endmacro %} - {% macro css_tabular_money() %} td.amount { text-align: right; } td.amount, td.currency { - {{ css_noninput_monospace() }} -} -{% endmacro %} +{{ css_noninput_monospace() +}}}{% endmacro %} +{# endmacro #} @@ -35,8 +34,9 @@ td.balance.amount { } td.balance.currency { width: 3em; -} -{% endmacro %} +}{% +endmacro %} +{# endmacro #} @@ -65,8 +65,8 @@ td.block_column { } td.block_column.critical { {{css_bg_red()}} -} -{% endmacro %} +}{% endmacro %} +{# endmacro #} @@ -80,21 +80,20 @@ td.block_column.critical { {% macro ledger_block_columns(mode, block) %} - - - -
-
- - - -[#]
-[b]
-[e] - - -{% endmacro %} - + + + +
+
+ + + + [#]
+ [b]
+ [e] + + {% endmacro %} +{# endmacro #} {# =====================[ for edit pages ]======================= #} diff --git a/src/templates/ledger_structured.tmpl b/src/templates/ledger_structured.tmpl index efb742e..fd1c120 100644 --- a/src/templates/ledger_structured.tmpl +++ b/src/templates/ledger_structured.tmpl @@ -5,41 +5,35 @@ {% block css %} {{macros.css_ledger()}} {{macros.css_tabular_money()}} -td.amount { - text-align: right; -} -td.amount, td.currency { - vertical-align: bottom; -} {% endblock %} {% block content %}
-{{macros.ledger_empty_lines_fix(has_redundant_empty_lines)}} - +{{ macros.ledger_empty_lines_fix(has_redundant_empty_lines) +}}
{% for block in blocks %} - {{macros.ledger_block_columns('structured', block)}} - {% if block.booking %} - +{##}{{ macros.ledger_block_columns('structured', block) }} +{##}{% if block.booking %} + - - {% for line in block.booking.transfer_lines %} - - - - - - - {% endfor %} - {% endif %} - {% for line in block.gap.lines %} - + +{######}{% for line in block.booking.transfer_lines %} + + + + + + +{######}{% endfor %} +{##}{% endif %} +{##}{% for line in block.gap.lines %} + - - {% endfor %} + +{##}{% endfor %} {% endfor %}
{{block.booking.date}} {{block.booking.target}} {{block.booking.intro_line.comment}}
{{line.amount_short}}{{ macros.currency_short(line.currency) }}{{line.account}}{{line.comment}}
{{line.amount_short}}{{ macros.currency_short(line.currency) }}{{line.account}}{{line.comment}}
{{ line.raw }} 
diff --git a/src/tests/test.dat b/src/tests/empty.dat similarity index 100% rename from src/tests/test.dat rename to src/tests/empty.dat diff --git a/src/tests/test.html b/src/tests/empty.html similarity index 54% rename from src/tests/test.html rename to src/tests/empty.html index fd0e2f5..15c4cde 100644 --- a/src/tests/test.html +++ b/src/tests/empty.html @@ -1,10 +1,8 @@ - -
- -
- - - - - - - - - - - - - - + + + + + + - - - +
-
-
- -
-[#]
-[b]
-[e] -
+
+
+ +
+ [#]
+ [b]
+ [e] +
 
- diff --git a/src/tests/full.dat b/src/tests/full.dat new file mode 100644 index 0000000..3cf3339 --- /dev/null +++ b/src/tests/full.dat @@ -0,0 +1,7 @@ +2001-01-01 test + foo 10 € + bar -10 € + +2001-01-02 test + bar 20 € + baz -20 € diff --git a/src/tests/full.html b/src/tests/full.html new file mode 100644 index 0000000..41c0ed6 --- /dev/null +++ b/src/tests/full.html @@ -0,0 +1,147 @@ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+ [#]
+ [b]
+ [e] +
+
+
+ +
+ [#]
+ [b]
+ [e] +
2001-01-01 test
10.00€foo
-10.00€bar
 
+
+
+ +
+ [#]
+ [b]
+ [e] +
2001-01-02 test
20.00€bar
-20.00€baz
 
+ +
+ + -- 2.30.2