Don't display partition menu options if not allow
- Skip add_partition entry for bcache, raid, and lvm devices - Don't display Format entire partition if it's already been formated Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
This commit is contained in:
parent
02f7aade37
commit
9872bdfb94
|
@ -122,6 +122,14 @@ class FilesystemModel(ModelPolicy):
|
|||
"10",
|
||||
]
|
||||
|
||||
# th following blocktypes cannot be partitioned
|
||||
no_partition_blocktypes = [
|
||||
"bcache",
|
||||
"lvm_partition",
|
||||
"lvm_volgroup",
|
||||
"raid",
|
||||
]
|
||||
|
||||
def __init__(self, prober, opts):
|
||||
self.opts = opts
|
||||
self.prober = prober
|
||||
|
|
|
@ -410,9 +410,12 @@ class DiskPartitionView(ViewPolicy):
|
|||
changes to the button depending on if existing
|
||||
partitions exist or not.
|
||||
"""
|
||||
return Pile([self.add_partition_w(),
|
||||
menus = [
|
||||
self.add_partition_w(),
|
||||
self.create_swap_w(),
|
||||
self.show_disk_info_w()])
|
||||
self.show_disk_info_w(),
|
||||
]
|
||||
return Pile([m for m in menus if m])
|
||||
|
||||
def show_disk_info_w(self):
|
||||
""" Runs hdparm against device and displays its output
|
||||
|
@ -431,11 +434,11 @@ class DiskPartitionView(ViewPolicy):
|
|||
"""
|
||||
text = ("Format or create swap on entire "
|
||||
"device (unusual, advanced)")
|
||||
if len(self.disk_obj.partitions) == 0:
|
||||
if len(self.disk_obj.partitions) == 0 and \
|
||||
self.disk_obj.available:
|
||||
return Color.menu_button(menu_btn(label=text,
|
||||
on_press=self.create_swap),
|
||||
focus_map='menu_button focus')
|
||||
return Color.info_minor(Text(text))
|
||||
|
||||
def add_partition_w(self):
|
||||
""" Handles presenting the add partition widget button
|
||||
|
@ -445,6 +448,9 @@ class DiskPartitionView(ViewPolicy):
|
|||
if len(self.disk_obj.partitions) > 0:
|
||||
text = "Add partition (max size {})".format(
|
||||
_humanize_size(self.disk_obj.freespace))
|
||||
|
||||
if self.disk_obj.available and \
|
||||
self.disk_obj.blocktype not in self.model.no_partition_blocktypes:
|
||||
return Color.menu_button(menu_btn(label=text,
|
||||
on_press=self.add_partition),
|
||||
focus_map='menu_button focus')
|
||||
|
|
Loading…
Reference in New Issue