Fix 2915 - Reinstate partition information in device selection (#2919)

* Fix regresion in device selection - show partition info

* Fix linting
This commit is contained in:
Daniel Girtler 2024-11-23 18:52:53 +11:00 committed by GitHub
parent 41600aefa4
commit 5c83e230df
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 11 additions and 4 deletions

View File

@ -4,7 +4,7 @@ from pathlib import Path
from typing import TYPE_CHECKING, Any from typing import TYPE_CHECKING, Any
from archinstall.lib.menu.menu_helper import MenuHelper from archinstall.lib.menu.menu_helper import MenuHelper
from archinstall.tui import Alignment, FrameProperties, MenuItem, MenuItemGroup, Orientation, ResultType, SelectMenu from archinstall.tui import Alignment, FrameProperties, MenuItem, MenuItemGroup, Orientation, PreviewStyle, ResultType, SelectMenu
from .. import disk from .. import disk
from ..disk.device_model import BtrfsMountOption from ..disk.device_model import BtrfsMountOption
@ -18,8 +18,10 @@ if TYPE_CHECKING:
def select_devices(preset: list[disk.BDevice] | None = []) -> list[disk.BDevice]: def select_devices(preset: list[disk.BDevice] | None = []) -> list[disk.BDevice]:
def _preview_device_selection(selection: disk._DeviceInfo) -> str | None: def _preview_device_selection(item: MenuItem) -> str | None:
dev = disk.device_handler.get_device(selection.path) device: disk._DeviceInfo = item.get_value()
dev = disk.device_handler.get_device(device.path)
if dev and dev.partition_infos: if dev and dev.partition_infos:
return FormattedOutput.as_table(dev.partition_infos) return FormattedOutput.as_table(dev.partition_infos)
return None return None
@ -33,12 +35,17 @@ def select_devices(preset: list[disk.BDevice] | None = []) -> list[disk.BDevice]
group, header = MenuHelper.create_table(data=options) group, header = MenuHelper.create_table(data=options)
group.set_selected_by_value(presets) group.set_selected_by_value(presets)
group.set_preview_for_all(_preview_device_selection)
result = SelectMenu( result = SelectMenu(
group, group,
header=header, header=header,
alignment=Alignment.CENTER, alignment=Alignment.CENTER,
search_enabled=False, search_enabled=False,
multi=True multi=True,
preview_style=PreviewStyle.BOTTOM,
preview_size='auto',
preview_frame=FrameProperties.max('Partitions')
).run() ).run()
match result.type_: match result.type_: