usawa

Signed, immutable accounting.
Log | Files | Refs | Submodules | LICENSE

commit 21ec11b24ad8cc88fe547eb5fc706d544e25086f
parent f0ce3a7a515f68f87ba2daea61eacf2ae2a26e8f
Author: lash <dev@holbrook.no>
Date:   Sat,  4 Apr 2026 10:47:09 -0600

Add attachment opener to interactive entry edit

Diffstat:
Mdummy/usawa/cli/entry.py | 30+++++++++++++++++++-----------
1 file changed, 19 insertions(+), 11 deletions(-)

diff --git a/dummy/usawa/cli/entry.py b/dummy/usawa/cli/entry.py @@ -71,6 +71,19 @@ def parse_txdate(ctx, v): return datetime.date.fromisoformat(v) +def input_or_default(prompt, default=None, postfix=': ', validate_fn=None): + if default != None: + postfix = ' [{}]'.format(default) + postfix + v = input(prompt + postfix) + if len(v) == 0: + if default == None: + raise ValueError('empty value and no default') + v = default + if validate_fn != None: + validate_fn(v) + return v + + def handle_tag(ctx, entry, v): r = input('Tag: ') if v == '+': @@ -101,17 +114,9 @@ def handle_view(ctx, entry, o): ) -def input_or_default(prompt, default=None, postfix=': ', validate_fn=None): - if default != None: - postfix = ' [{}]'.format(default) + postfix - v = input(prompt + postfix) - if len(v) == 0: - if default == None: - raise ValueError('empty value and no default') - v = default - if validate_fn != None: - validate_fn(v) - return v +def handle_description(ctx, entry, v): + v = input_or_default("description", entry.description) + entry.description = v def try_entry_uuid(ctx, v): @@ -263,6 +268,9 @@ class EntrySession: if v == 'v': handle_view(self.ctx, self.entry, v) return True + if v == 'd': + handle_description(self.ctx, self.entry, v) + return True logg.error('invalid input') return True