[PATCH 3/4] Fix up collectCategoriesAndSpokes function.
Samantha N. Bueno
sbueno+anaconda at redhat.com
Wed Jun 4 12:10:21 UTC 2014
On Wed, Jun 04, 2014 at 01:14:58PM +0200, Vratislav Podzimek wrote:
> On Tue, 2014-06-03 at 11:01 -0400, Samantha N. Bueno wrote:
> > Text mode displays everything on the summary hub, whereas some spokes
> > are displayed on the progress hub as well in graphical. Default values
> > in the spoke category files are for the GUI, so this just tweaks the
> > collectCategoriesAndSpokes function a little to make text mode ignore
> > which hub spokes should be shown on.
> > ---
> > pyanaconda/ui/common.py | 17 ++++++++++++-----
> > 1 file changed, 12 insertions(+), 5 deletions(-)
> >
> > diff --git a/pyanaconda/ui/common.py b/pyanaconda/ui/common.py
> > index fcbcdb6..08409ff 100644
> > --- a/pyanaconda/ui/common.py
> > +++ b/pyanaconda/ui/common.py
> > @@ -28,7 +28,7 @@ import types
> >
> > from pyanaconda.constants import ANACONDA_ENVIRON, FIRSTBOOT_ENVIRON
> > from pyanaconda.errors import RemovedModuleError
> > -from pykickstart.constants import FIRSTBOOT_RECONFIG
> > +from pykickstart.constants import FIRSTBOOT_RECONFIG, DISPLAY_MODE_TEXT
> >
> > import logging
> > log = logging.getLogger("anaconda")
> > @@ -529,7 +529,7 @@ class Hub(UIObject):
> > by a custom collect method.
> > One example of such usage is the Initial Setup application.
> > """
> > - return collectCategoriesAndSpokes(self.paths, self.__class__)
> > + return collectCategoriesAndSpokes(self.paths, self.__class__, self.data.displaymode.displayMode)
> >
> > def exit_logger(self):
> > """Log when a user leaves the hub. Subclasses may override this
> > @@ -708,7 +708,7 @@ def collect_categories(mask_paths):
> >
> > return categories
> >
> > -def collectCategoriesAndSpokes(paths, klass):
> > +def collectCategoriesAndSpokes(paths, klass, displaymode):
> > """collects categories and spokes to be displayed on this Hub
> >
> > :param paths: dictionary mapping categories, spokes, and hubs to their
> > @@ -719,8 +719,15 @@ def collectCategoriesAndSpokes(paths, klass):
> > ret = {}
> > # Collect all the categories this hub displays, then collect all the
> > # spokes belonging to all those categories.
> > - categories = sorted(filter(lambda c: c.displayOnHub == klass, collect_categories(paths["categories"])),
> > - key=lambda c: c.sortOrder)
> > + if displaymode == DISPLAY_MODE_TEXT:
> > + # bit of a hack, but the category displayOnHub defaults to GUI values,
> > + # so just ignore displayOnHub if we're doing a text install since
> > + # everything goes on the summary hub anyway
> > + categories = sorted(collect_categories(paths["categories"]),
> > + key=lambda c: c.sortOrder)
> > + else:
> > + categories = sorted(filter(lambda c: c.displayOnHub == klass.__name__, collect_categories(paths["categories"])),
> > + key=lambda c: c.sortOrder)
> > for c in categories:
> > ret[c] = collect_spokes(paths["spokes"], c.__name__)
> This effectively means there will never be more hubs in the text mode
> which I'm not sure is what we really want. Couldn't we have two
> displayOnHub attributes (GUI and TUI) instead?
Yeah, actually. I'm thinking set displayOnHubTUI and displayOnHubGUI in
each category, and then collectCategoriesAndSpokes would have its check
like this:
if displaymode = DISPLAY_MODE_TEXT:
categories = sorted(filter(lambda c: c.displayOnHubTUI = klass.__name__, collect_categories(paths["categories"])),
key=lambda c: c.sortOrder)
else:
categories = sorted(filter(lambda c: c.displayOnHubGUI = klass.__name__, collect_categories(paths["categories"])),
key=lambda c: c.sortOrder)
That should take care of it.
> Otherwise these all look good to me.
> --
> Vratislav Podzimek
>
> Anaconda Rider | RHCE | Red Hat, Inc. | Brno - Czech Republic
>
>
> _______________________________________________
> anaconda-patches mailing list
> anaconda-patches at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/anaconda-patches
More information about the anaconda-patches
mailing list