From 70f8562ba1bd36ee023a92a92007a128f4ce7529 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Thu, 13 Mar 2025 11:11:27 +0100 Subject: [PATCH] Add "add new Booking" button. --- src/run.py | 26 +++++++++++++++++++------- src/templates/_macros.tmpl | 1 + 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/run.py b/src/run.py index 92a136f..825d4a7 100755 --- a/src/run.py +++ b/src/run.py @@ -456,13 +456,16 @@ class Handler(PlomHttpHandler): def post_ledger_action(self) -> Path: """Based on trigger postvar call .server.(move|copy)_booking.""" - keys_prefixed = self.postvars.keys_prefixed(PREFIX_LEDGER) - action, id_str, dir_ = keys_prefixed[0].split('_', maxsplit=3)[1:] - id_ = int(id_str) - if action == 'move': - id_ = self.server.move_booking(id_, dir_ == 'up') - return Path(self.path).joinpath(f'#{id_}') - id_ = self.server.copy_booking(id_, dir_ == 'to_end') + if 'add_booking' in self.postvars.as_dict: + id_ = self.server.add_empty_booking() + else: + keys_prefixed = self.postvars.keys_prefixed(PREFIX_LEDGER) + action, id_str, dir_ = keys_prefixed[0].split('_', maxsplit=3)[1:] + id_ = int(id_str) + if action == 'move': + id_ = self.server.move_booking(id_, dir_ == 'up') + return Path(self.path).joinpath(f'#{id_}') + id_ = self.server.copy_booking(id_, dir_ == 'to_end') return Path(EDIT_STRUCT).joinpath(f'{id_}') def do_GET(self) -> None: @@ -718,6 +721,15 @@ class Server(PlomHttpServer): self._recalc_dat_lines() return new_booking.id_ + def add_empty_booking(self) -> int: + """Add new Booking to end of ledger.""" + booking = Booking(len(self.bookings), + [DatLine(f'{dt_date.today().isoformat()} ?')]) + self.bookings += [booking] + booking.recalc_prev_next(self.bookings) + self._recalc_dat_lines() + return booking.id_ + def copy_booking(self, id_: int, to_end: bool) -> int: """Add copy of Booking of id_ to_end of ledger, or after copied.""" copied = self.bookings[id_] diff --git a/src/templates/_macros.tmpl b/src/templates/_macros.tmpl index f6495aa..fe783f7 100644 --- a/src/templates/_macros.tmpl +++ b/src/templates/_macros.tmpl @@ -93,6 +93,7 @@ table.ledger tr > td:first-child { background-color: white; } {% endif %} {% endfor %} + {% endmacro %} -- 2.30.2