From a78734252cd27ab22f0738d01e9bda50b9430df7 Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Wed, 1 Nov 2023 19:38:12 +0200 Subject: [PATCH] refactor(tui): refactor `create_books_table` --- src/ui/tui.py | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/ui/tui.py b/src/ui/tui.py index 69dbe12..780d1fe 100644 --- a/src/ui/tui.py +++ b/src/ui/tui.py @@ -3,26 +3,18 @@ from bookstore.book import Book from bookstore.inventory import Inventory from .handlers import exit_on_q + from .widgets.table import Table -FOCUS_STYLE = urwid.AttrMap("default", "dark red", "standout") -UNFOCUS_STYLE = urwid.AttrMap("default", "default", "standout") +def create_row(cells) -> urwid.Columns: + return urwid.Columns([urwid.Text(str(cell)) for cell in cells]) def create_books_table(books: list[Book]) -> Table: - header = urwid.Columns([urwid.Text(header) for header in Book.fields()]) - header = urwid.AttrMap(header, "header", focus_map=FOCUS_STYLE) - - rows = [header] - - for book in books: - row = urwid.Columns([urwid.Text(str(value)) for value in book.field_values()]) - rows.append(urwid.AttrMap(row, "body", focus_map=FOCUS_STYLE)) - - walker = urwid.SimpleListWalker(rows) - books_table = Table(walker) - return books_table + header = create_row(Book.fields()) + rows = [create_row(book.field_values()) for book in books] + return Table(urwid.SimpleListWalker([header] + rows)) def render(inventory: Inventory):