X-Git-Url: https://plomlompom.com/repos/berlin_corona.txt?a=blobdiff_plain;f=ledger.py;h=f29f73ec190d3b1391b4a3f05ca088607ac221d2;hb=76210b693b77e67bf8160a7fb869ae416309d333;hp=a26ca0f345f5dfdaf02eb8cff45330991eb14d7d;hpb=13a15b95ade73f4455db648b70e1de784c515039;p=misc diff --git a/ledger.py b/ledger.py index a26ca0f..f29f73e 100755 --- a/ledger.py +++ b/ledger.py @@ -449,8 +449,8 @@ class Booking: self.description = description self.top_comment = top_comment self.validate_head() - self.transfer_lines = transfer_lines - if len(self.transfer_lines) < 2 and self.validate: + self.transfer_lines = transfer_lines if transfer_lines else [] + if self.validate and len(self.transfer_lines) < 2: raise PlomException(f'{self.intro}: too few transfer lines') self.calculate_account_changes() self.lines = [LedgerTextLine(l) for l in self.for_writing] @@ -1032,8 +1032,11 @@ class LedgerDB(PlomDB): content = sent if sent else ([] if 'textarea'==edit_mode else None) else: content = self.bookings[index] + date_today = str(datetime.now())[:10] if copy: - content.date = str(datetime.now())[:10] + content.date = date_today + elif -1 == index and (content is None or [] == content): + content = Booking(date=date_today, validate=False) if 'textarea' == edit_mode and content: content = content.for_writing else: @@ -1248,7 +1251,7 @@ class LedgerHandler(PlomHandler): elif prefix + '/edit' == parsed_url.path: index = int(postvars['index'][0]) edit_mode = postvars['edit_mode'][0] - validate = submit_button in {'save', 'copy', 'check'} + validate = submit_button in {'update', 'add', 'copy', 'check'} starts_at = '?' if index == -1 else db.bookings[index].starts_at if 'textarea' == edit_mode: lines = [LedgerTextLine(line) for line in postvars['booking'][0].rstrip().split('\n')]