From fa952847d51990675eefa2994f66b33162ac3c41 Mon Sep 17 00:00:00 2001
From: Christian Heller <c.heller@plomlompom.de>
Date: Wed, 22 Jan 2025 20:19:09 +0100
Subject: [PATCH] Add dat file reload button.

---
 ledger.py            | 11 +++++++++--
 templates/_base.tmpl |  4 +++-
 templates/index.tmpl |  3 ---
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/ledger.py b/ledger.py
index 89d5ca2..22e051a 100755
--- a/ledger.py
+++ b/ledger.py
@@ -221,6 +221,8 @@ class Handler(PlomHttpHandler):
 
     def do_POST(self) -> None:
         # pylint: disable=invalid-name,missing-function-docstring
+        if self.pagename == 'reload':
+            self.server.load()
         self.redirect(Path(''))
 
     def do_GET(self) -> None:
@@ -247,9 +249,14 @@ class Server(PlomHttpServer):
 
     def __init__(self, path_dat: Path, *args, **kwargs) -> None:
         super().__init__(PATH_TEMPLATES, (SERVER_HOST, SERVER_PORT), Handler)
+        self._path_dat = path_dat
+        self.load()
+
+    def load(self) -> None:
+        """Read into ledger file at .path_dat."""
         self.dat_lines = [
-                DatLine(line)
-                for line in path_dat.read_text(encoding='utf8').splitlines()]
+            DatLine(line)
+            for line in self._path_dat.read_text(encoding='utf8').splitlines()]
         self.bookings: list[Booking] = []
         booking_lines: list[DatLine] = []
         last_date = ''
diff --git a/templates/_base.tmpl b/templates/_base.tmpl
index 268fb64..5d80c44 100644
--- a/templates/_base.tmpl
+++ b/templates/_base.tmpl
@@ -12,7 +12,9 @@ table.warning tbody tr td, tr.warning td { background-color: #ff8888; }
 </style>
 </head>
 <body>
-<a href="/">home</a> · <a href="/raw">raw</a> · <a href="/balance">balance</a>
+<form action="/reload" method="POST">
+<a href="/">home</a> · <a href="/raw">raw</a> · <a href="/balance">balance</a> · <input type="submit" value="reload" />
+</form>
 <hr />
 {% block content %}{% endblock %}
 </body>
diff --git a/templates/index.tmpl b/templates/index.tmpl
index 43be0f4..886a01c 100644
--- a/templates/index.tmpl
+++ b/templates/index.tmpl
@@ -7,8 +7,5 @@
 {% endblock %}
 
 {% block content %}
-<form action="/" method="POST"><input type="submit" value="A" /></form>
-<form action="/" method="GET"><input type="submit" value="B" /></form>
-<hr/>
 {{ macros.table_dat_lines(dat_lines, single=false, raw=false) }}
 {% endblock %}
-- 
2.30.2