diff --git a/src/tt/tui/editor.py b/src/tt/tui/editor.py index 2b7a66a..24a2f86 100644 --- a/src/tt/tui/editor.py +++ b/src/tt/tui/editor.py @@ -144,7 +144,7 @@ class TableEditor(App): try: val = getattr(item, col.field) except AttributeError: - val = item.data[col.field] + val = item.data.get(col.field, "~???~") display_val = col.format_for_display(val) row.append(display_val) @@ -170,8 +170,10 @@ class TableEditor(App): yield self.right_status def on_mount(self): - column_names = [c.display_name for c in self.table_config] - self.table.add_columns(*column_names) + for c in self.table_config: + self.table.add_column( + c.display_name, width=self.view.get("widths", {}).get(c.field, None) + ) self.refresh_data(restore_cursor=False) def action_cursor_left(self): @@ -245,7 +247,9 @@ class TableEditor(App): for fc in self.table_config: if fc.read_only: continue - val = self.defaults.get(fc.field, fc.default) + # when adding, prefer this order + # filter value -> view default -> field config default + val = self.filters.get(fc.field, self.defaults.get(fc.field, fc.default)) if val is not None: if "," in val: val = val.split(",")[0] # TODO: fix hack for enums