Verified Commit 70b568d5 authored by Joseph Nuthalapati's avatar Joseph Nuthalapati Committed by James Valleroy

setup: Remove unavailable as a state in setup_helper

- Unavailable being a state can cause issues in several places in the where
  there are currently only checks for 'needs-setup'
- Since it's only used in the UI, a method to check whether a module is
  unavailable should be sufficient.
Signed-off-by: Joseph Nuthalapati's avatarJoseph Nuthalapati <>
Reviewed-by: James Valleroy's avatarJames Valleroy <>
parent 0587d1c2
......@@ -143,8 +143,6 @@ class Helper(object):
return 'up-to-date'
if not current_version:
if any(self.list_unavailable_packages()):
return 'unavailable'
return 'needs-setup'
return 'needs-update'
......@@ -164,17 +162,16 @@ class Helper(object):
"""Set a module's setup version."""
from . import models
models.Module.objects.update_or_create(pk=self.module_name, defaults={
'setup_version': version
pk=self.module_name, defaults={'setup_version': version})
def list_unavailable_packages(self):
def has_unavailable_packages(self):
"""List the unavailable packages managed by the module (if any)."""
cache = apt.Cache()
managed_pkgs = getattr(self.module, 'managed_packages', [])
unavailable_pkgs = [pkg_name for pkg_name in managed_pkgs
if pkg_name not in cache]
return unavailable_pkgs
unavailable_pkgs = (pkg_name for pkg_name in managed_pkgs
if pkg_name not in cache)
return any(unavailable_pkgs)
def init(module_name, module):
......@@ -72,22 +72,22 @@
Please wait for a few moments before trying again.
{% endblocktrans %}
{% elif setup_helper.get_state == 'unavailable' %}
{% elif setup_helper.has_unavailable_packages %}
<div class="alert alert-warning" role="alert">
{% blocktrans trimmed %}
This application is currently unavailable in your distribution.
{% endblocktrans %}
This application is currently not available in your distribution.
{% endblocktrans %}
{% endif %}
<input type="submit" class="btn btn-md btn-primary"
{{ package_manager_is_busy|yesno:'disabled="disabled"' }}
{% if package_manager_is_busy or setup_helper.has_unavailable_packages %}
{% endif %}
{% if setup_helper.get_state == 'needs-setup' %}
value="{% trans "Install" %}"
{% elif setup_helper.get_state == 'needs-upgrade' %}
value="{% trans "Update" %}"
{% elif setup_helper.get_state == 'unavailable' %}
value="{% trans "Install" %}" disabled="disabled"
{% endif %} />
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment