From 06488dfb9a55b00664e3a0fdae0129d6753a568d Mon Sep 17 00:00:00 2001 From: Daniel Girtler Date: Thu, 16 Apr 2026 15:30:38 +1000 Subject: [PATCH] Fix table column error (#4406) --- archinstall/tui/ui/components.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/archinstall/tui/ui/components.py b/archinstall/tui/ui/components.py index e06dd216..3163d4ca 100644 --- a/archinstall/tui/ui/components.py +++ b/archinstall/tui/ui/components.py @@ -1046,6 +1046,20 @@ class TableSelectionScreen(BaseScreen[ValueT]): header = self.query_one('#header_text', Label) header.display = not is_loading + def _get_column_keys(self, items: list[MenuItem]) -> list[str]: + all_keys: list[str] = [] + for item in items: + if item.value: + all_keys.extend(item.value.table_data().keys()) + + # Create unique list while preserving order + unique_keys: list[str] = list(dict.fromkeys(all_keys)) + + if self._multi: + unique_keys.insert(0, ' ') + + return unique_keys + def _put_data_to_table(self, table: DataTable[ValueT], group: MenuItemGroup) -> None: items = group.items selected = group.selected_items @@ -1054,15 +1068,7 @@ class TableSelectionScreen(BaseScreen[ValueT]): _ = self.dismiss(Result(ResultType.Selection)) return - value = items[0].value - if not value: - _ = self.dismiss(Result(ResultType.Selection)) - return - - cols = list(value.table_data().keys()) - - if self._multi: - cols.insert(0, ' ') + cols = self._get_column_keys(items) table.add_columns(*cols)