moving get_pending call out of curses to avoid quering the db on every key press

This commit is contained in:
simon 2021-04-16 15:42:36 +07:00
parent 1648864c1e
commit ac711f6db6

View File

@ -71,9 +71,9 @@ def get_pending_all(config):
return pending return pending
def print_menu(stdscr, current_row_idx, menu, config): def print_menu(stdscr, current_row_idx, menu, config, pending):
""" print menu with populated pending count """ """ print menu with populated pending count """
pending = get_pending_all(config)
# build stdscr # build stdscr
h, w = stdscr.getmaxyx() h, w = stdscr.getmaxyx()
longest = len(max(menu)) longest = len(max(menu))
@ -127,7 +127,8 @@ def curses_main(stdscr, menu, config):
curses.curs_set(0) curses.curs_set(0)
curses.init_pair(1, curses.COLOR_BLUE, curses.COLOR_WHITE) curses.init_pair(1, curses.COLOR_BLUE, curses.COLOR_WHITE)
current_row_idx = 0 current_row_idx = 0
print_menu(stdscr, current_row_idx, menu, config) pending = get_pending_all(config)
print_menu(stdscr, current_row_idx, menu, config, pending)
# endless loop # endless loop
while True: while True:
# wait for exit signal # wait for exit signal
@ -147,7 +148,7 @@ def curses_main(stdscr, menu, config):
# exit curses and do something # exit curses and do something
return menu_item return menu_item
# print # print
print_menu(stdscr, current_row_idx, menu, config) print_menu(stdscr, current_row_idx, menu, config, pending)
stdscr.refresh() stdscr.refresh()
except KeyboardInterrupt: except KeyboardInterrupt:
# clean exit on ctrl + c # clean exit on ctrl + c