From 4b4473632df0fbc92e85f6e32f6e940ad4fb6fa7 Mon Sep 17 00:00:00 2001 From: Werner Llácer Date: Mon, 28 Mar 2022 13:55:15 +0200 Subject: Subvolume User Interface (#1032) * Deflate the user interactions file * Fix flake8 * GlobalMenu split from selection_menu.py * Upgrades to ListManager: Can now show an empty list if there is no null action. More information to the user at the header * Put only_hd.py and swiss.py to use new config printing mechanism Solved a couple of bugs at ListManager adding a str and a DeferredTranslation ManageUser was missing an self argument in _check ... * Create list and menus to manage subvolumes in btrfs partitions Needed to modify manage_new_and_existing_partitions Added a new parameter filter to select_partition, to allow filtering there * Update internationalization strings Co-authored-by: Daniel Girtler Co-authored-by: Anton Hvornum --- examples/only_hd.py | 18 +++++++++++++++--- examples/swiss.py | 6 +++--- 2 files changed, 18 insertions(+), 6 deletions(-) (limited to 'examples') diff --git a/examples/only_hd.py b/examples/only_hd.py index 76a616db..b3379601 100644 --- a/examples/only_hd.py +++ b/examples/only_hd.py @@ -14,7 +14,7 @@ class OnlyHDMenu(archinstall.GlobalMenu): mandatory_list = [] options_list = ['harddrives', 'disk_layouts', '!encryption-password','swap'] mandatory_list = ['harddrives'] - options_list.extend(['install','abort']) + options_list.extend(['save_config','install','abort']) for entry in self._menu_options: if entry in options_list: @@ -27,15 +27,27 @@ class OnlyHDMenu(archinstall.GlobalMenu): self.option(entry).set_enabled(False) self._update_install_text() + def mandatory_lacking(self) -> [int, list]: + mandatory_fields = [] + mandatory_waiting = 0 + for field in self._menu_options: + option = self._menu_options[field] + if option.is_mandatory(): + if not option.has_selection(): + mandatory_waiting += 1 + mandatory_fields += [field,] + return mandatory_fields, mandatory_waiting + def _missing_configs(self): """ overloaded method """ def check(s): return self.option(s).has_selection() - _, missing = self.mandatory_overview() + missing, missing_cnt = self.mandatory_lacking() if check('harddrives'): if not self.option('harddrives').is_empty() and not check('disk_layouts'): - missing += 1 + missing_cnt += 1 + missing += ['disk_layout'] return missing def ask_user_questions(): diff --git a/examples/swiss.py b/examples/swiss.py index 6f524103..b94ddcce 100644 --- a/examples/swiss.py +++ b/examples/swiss.py @@ -215,7 +215,7 @@ class MyMenu(archinstall.GlobalMenu): if self._execution_mode in ('full','lineal'): options_list = ['keyboard-layout', 'mirror-region', 'harddrives', 'disk_layouts', '!encryption-password','swap', 'bootloader', 'hostname', '!root-password', - '!superusers', '!users', 'profile', 'audio', 'kernels', 'packages','nic', + '!superusers', '!users', 'profile', 'audio', 'kernels', 'packages','additional-repositories','nic', 'timezone', 'ntp'] if archinstall.arguments.get('advanced',False): options_list.extend(['sys-language','sys-encoding']) @@ -226,7 +226,7 @@ class MyMenu(archinstall.GlobalMenu): elif self._execution_mode == 'only_os': options_list = ['keyboard-layout', 'mirror-region','bootloader', 'hostname', '!root-password', '!superusers', '!users', 'profile', 'audio', 'kernels', - 'packages', 'nic', 'timezone', 'ntp'] + 'packages', 'additional-repositories', 'nic', 'timezone', 'ntp'] mandatory_list = ['hostname'] if archinstall.arguments.get('advanced',False): options_list.expand(['sys-language','sys-encoding']) @@ -236,7 +236,7 @@ class MyMenu(archinstall.GlobalMenu): archinstall.log(f"self._execution_mode {self._execution_mode} not supported") exit(1) if self._execution_mode != 'lineal': - options_list.extend(['install','abort']) + options_list.extend(['save_config','install','abort']) if not archinstall.arguments.get('advanced'): options_list.append('archinstall-language') -- cgit v1.2.3-70-g09d2