summaryrefslogtreecommitdiffstats
path: root/pyanaconda
diff options
context:
space:
mode:
authorChris Lumens <clumens@redhat.com>2012-07-11 13:48:56 -0400
committerChris Lumens <clumens@redhat.com>2012-07-12 13:28:05 -0400
commit5b95011fa5370142a145b2874910831f53db0712 (patch)
treedadd14cca5ebbe10fdce5ed01009fc497fc96d85 /pyanaconda
parent99ae2decf54a4d407d6b50095db589fa09d67eb8 (diff)
downloadanaconda-5b95011fa5370142a145b2874910831f53db0712.tar.gz
anaconda-5b95011fa5370142a145b2874910831f53db0712.tar.xz
anaconda-5b95011fa5370142a145b2874910831f53db0712.zip
Fix software spoke completion and status for certain kickstart installs.
If you're doing an install with just Core, or with some special set of groups that somehow doesn't include one of our desktop environments (even though Base is currently a DE), make sure to set the spoke to complete and give a useful status message.
Diffstat (limited to 'pyanaconda')
-rw-r--r--pyanaconda/ui/gui/spokes/software.py24
1 files changed, 20 insertions, 4 deletions
diff --git a/pyanaconda/ui/gui/spokes/software.py b/pyanaconda/ui/gui/spokes/software.py
index 239db3f9c..9e56a4bab 100644
--- a/pyanaconda/ui/gui/spokes/software.py
+++ b/pyanaconda/ui/gui/spokes/software.py
@@ -23,6 +23,8 @@ import gettext
_ = lambda x: gettext.ldgettext("anaconda", x)
N_ = lambda x: x
+from pyanaconda.flags import flags
+
from pyanaconda.ui.gui import communication
from pyanaconda.ui.gui.spokes import NormalSpoke
from pyanaconda.ui.gui.utils import gdk_threaded
@@ -100,10 +102,16 @@ class SoftwareSelectionSpoke(NormalSpoke):
@property
def completed(self):
from pyanaconda.threads import threadMgr
- return self._get_selected_desktop() is not None and \
- not threadMgr.get("AnaCheckSoftwareThread") and \
- not self._error and \
- self.payload.txID and self._tx_id == self.payload.txID
+ from pyanaconda.kickstart import packagesSeen
+
+ processingDone = not threadMgr.get("AnaCheckSoftwareThread") and \
+ not self._error and \
+ self._tx_id == self.payload.txID
+
+ if flags.automatedInstall:
+ return packagesSeen and processingDone
+ else:
+ return self._get_selected_desktop() is not None and processingDone
@property
def ready(self):
@@ -119,7 +127,9 @@ class SoftwareSelectionSpoke(NormalSpoke):
@property
def status(self):
+ from pyanaconda.kickstart import packagesSeen
from pyanaconda.threads import threadMgr
+
if self._error:
return _("Error checking software selection")
@@ -128,6 +138,12 @@ class SoftwareSelectionSpoke(NormalSpoke):
row = self._get_selected_desktop()
if not row:
+ # Kickstart installs with %packages will have a row selected, unless
+ # they did an install without a desktop environment. This should
+ # catch that one case.
+ if flags.automatedInstall and packagesSeen:
+ return _("Custom software selected")
+
return _("Nothing selected")
return self.payload.description(row[2])[0]