summaryrefslogtreecommitdiffstats
path: root/initial_setup/tui/hubs/initial_setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'initial_setup/tui/hubs/initial_setup.py')
-rw-r--r--initial_setup/tui/hubs/initial_setup.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/initial_setup/tui/hubs/initial_setup.py b/initial_setup/tui/hubs/initial_setup.py
new file mode 100644
index 0000000..b17f651
--- /dev/null
+++ b/initial_setup/tui/hubs/initial_setup.py
@@ -0,0 +1,55 @@
+from pyanaconda.ui.tui.hubs import TUIHub
+from pyanaconda.ui.tui.spokes import TUISpoke
+from pyanaconda.ui.common import collect
+import os
+
+__all__ = ["InitialSetupMainHub"]
+
+# localization
+_ = lambda t: t
+N_ = lambda t: t
+
+def collect_spokes(mask_paths):
+ """Return a list of all spoke subclasses that should appear for a given
+ category. Look for them in files imported as module_path % basename(f)
+
+ :param mask_paths: list of mask, path tuples to search for classes
+ :type mask_paths: list of (mask, path)
+
+ :return: list of Spoke classes belonging to category
+ :rtype: list of Spoke classes
+
+ """
+ spokes = []
+ for mask, path in mask_paths:
+ spokes.extend(collect(mask, path,
+ lambda obj: issubclass(obj, Spoke) and obj.should_run("firstboot", None)))
+
+ print spokes
+ return spokes
+
+
+class InitialSetupMainHub(TUIHub):
+ categories = ["password"]
+ title = _("Initial setup of Fedora")
+
+ def _collectCategoriesAndSpokes(self):
+ """collects categories and spokes to be displayed on this Hub
+
+ :return: dictionary mapping category class to list of spoke classes
+ :rtype: dictionary[category class] -> [ list of spoke classes ]
+ """
+
+ ret = {}
+
+ # Collect all the categories this hub displays, then collect all the
+ # spokes belonging to all those categories.
+ candidate_spokes = collect_spokes(self.paths["spokes"])
+ spokes = [spoke for spoke in candidate_spokes \
+ if spoke.should_run("firstboot", self.data)]
+
+ for spoke in spokes:
+ ret.setdefault(spoke.category, [])
+ ret[spoke.category].append(spoke)
+
+ return ret