From 92c86eae1c6c758defda091b628a259d84f39b18 Mon Sep 17 00:00:00 2001 From: Christian Heller <c.heller@plomlompom.de> Date: Thu, 7 Dec 2023 17:14:47 +0100 Subject: [PATCH] To lewdger.py, add in-transaction line mirroring. --- ledger.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ledger.py b/ledger.py index cd38b82..9ff0d3e 100755 --- a/ledger.py +++ b/ledger.py @@ -68,6 +68,7 @@ add_structured_html = """ <input name="replace_from" /> <input type="submit" name="replace" value="-> replace ->" /> <input name="replace_to" /> +<input type="submit" name="add_mirror" value="add mirror" /> <br /> <input name="date" value="{{date|e}}" size=9 /> <input name="description" value="{{desc|e}}" list="descriptions" /> @@ -523,6 +524,14 @@ class LedgerDB(PlomDB): ret += [f' {acc_buffer} {-final_minus} ⬠; assume as to earn in year: {acc_buffer} + {12 - months_passed - 1} * this = {year_needed}'] return ret + def add_mirror(self, lines): + ret = [] + bookings, _ = parse_lines(lines) + booking = bookings[0] + for line in booking.lines[1:]: + ret += [f'? {-line[1]} {line[2]}'] + return ret + def ledger_as_html(self): booking_tmpl = jinja2.Template(booking_html) single_c_tmpl = jinja2.Template('<span class="comment">{{c|e}}</span><br />') ## @@ -725,6 +734,8 @@ class LedgerDB(PlomDB): elif 'replace' in postvars.keys(): for i, line in enumerate(lines): lines[i] = line.replace(postvars['replace_from'][0], postvars['replace_to'][0]) + elif 'add_mirror' in postvars.keys(): + lines += self.add_mirror(lines) return lines, add_empty_line -- 2.30.2