[PATCH] Only show groups in the UI if they have members that install by default (default or mandatory packages).
Bill Nottingham
notting at redhat.com
Wed Aug 29 17:34:35 UTC 2012
---
pyanaconda/packaging/yumpayload.py | 15 +++++++++++++++
pyanaconda/ui/gui/spokes/software.py | 2 +-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/pyanaconda/packaging/yumpayload.py b/pyanaconda/packaging/yumpayload.py
index 28f728d..44b5b6e 100644
--- a/pyanaconda/packaging/yumpayload.py
+++ b/pyanaconda/packaging/yumpayload.py
@@ -876,6 +876,21 @@ reposdir=%s
group = groups.return_group(groupid)
return group.user_visible
+ def _groupHasInstallableMembers(self, groupid):
+ groups = self._yumGroups
+ if not groups:
+ return False
+
+ with _yum_lock:
+ if not groups.has_group(groupid):
+ return False
+
+ group = groups.return_group(groupid)
+ pkgs = group.mandatory_packages.keys() + group.default_packages.keys()
+ if pkgs:
+ return True
+ return False
+
def _selectYumGroup(self, groupid, default=True, optional=False):
# select the group in comps
pkg_types = ['mandatory']
diff --git a/pyanaconda/ui/gui/spokes/software.py b/pyanaconda/ui/gui/spokes/software.py
index 5e24f90..bbcfd19 100644
--- a/pyanaconda/ui/gui/spokes/software.py
+++ b/pyanaconda/ui/gui/spokes/software.py
@@ -211,7 +211,7 @@ class SoftwareSelectionSpoke(NormalSpoke):
self._addonStore.clear()
if self.environment:
for grp in self.payload.groups:
- if self.payload.environmentHasOption(self.environment, grp) or self.payload._isGroupVisible(grp):
+ if self.payload.environmentHasOption(self.environment, grp) or (self.payload._isGroupVisible(grp) and self.payload._groupHasInstallableMembers(grp)):
(name, desc) = self.payload.groupDescription(grp)
selected = self.payload.groupSelected(grp)
--
1.7.11.4
More information about the anaconda-patches
mailing list