mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-05-27 10:44:33 +00:00
setup: disable install button for currently unavailable apps
- Fixes #1229. Signed-off-by: Johannes Keyser <johanneskeyser@posteo.de> Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
parent
d5797395cf
commit
3a9c4128ff
@ -143,6 +143,8 @@ class Helper(object):
|
|||||||
return 'up-to-date'
|
return 'up-to-date'
|
||||||
|
|
||||||
if not current_version:
|
if not current_version:
|
||||||
|
if any(self.list_unavailable_packages()):
|
||||||
|
return 'unavailable'
|
||||||
return 'needs-setup'
|
return 'needs-setup'
|
||||||
else:
|
else:
|
||||||
return 'needs-update'
|
return 'needs-update'
|
||||||
@ -166,6 +168,14 @@ class Helper(object):
|
|||||||
'setup_version': version
|
'setup_version': version
|
||||||
})
|
})
|
||||||
|
|
||||||
|
def list_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
|
||||||
|
|
||||||
|
|
||||||
def init(module_name, module):
|
def init(module_name, module):
|
||||||
"""Create a setup helper for a module for later use."""
|
"""Create a setup helper for a module for later use."""
|
||||||
|
|||||||
@ -72,13 +72,22 @@
|
|||||||
Please wait for a few moments before trying again.
|
Please wait for a few moments before trying again.
|
||||||
{% endblocktrans %}
|
{% endblocktrans %}
|
||||||
</div>
|
</div>
|
||||||
|
{% elif setup_helper.get_state == 'unavailable' %}
|
||||||
|
<div class="alert alert-warning" role="alert">
|
||||||
|
{% blocktrans trimmed %}
|
||||||
|
This application is currently unavailable in your distribution.
|
||||||
|
{% endblocktrans %}
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<input type="submit" class="btn btn-md btn-primary"
|
<input type="submit" class="btn btn-md btn-primary"
|
||||||
{{ package_manager_is_busy|yesno:'disabled="disabled"' }}
|
{{ package_manager_is_busy|yesno:'disabled="disabled"' }}
|
||||||
{% if setup_helper.get_state == 'needs-setup' %}
|
{% if setup_helper.get_state == 'needs-setup' %}
|
||||||
value="{% trans "Install" %}"
|
value="{% trans "Install" %}"
|
||||||
{% elif setup_helper.get_state == 'needs-upgrade' %}
|
{% elif setup_helper.get_state == 'needs-upgrade' %}
|
||||||
value="{% trans "Update" %}"
|
value="{% trans "Update" %}"
|
||||||
|
{% elif setup_helper.get_state == 'unavailable' %}
|
||||||
|
value="{% trans "Install" %}" disabled="disabled"
|
||||||
{% endif %} />
|
{% endif %} />
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user