From 792c2cd00f3f60cbb7417f90196d46aae6f919bf Mon Sep 17 00:00:00 2001 From: Fioddor Superconcentrado Date: Wed, 14 Oct 2020 14:31:12 +0200 Subject: [PATCH] help: Link to updates page when new version is available Closes: #1332. Signed-off-by: Fioddor Superconcentrado [sunil: Simplify the message for link to upgrade page] [sunil: Use url method instead of hard-coded path] [sunil: Cosmetic changes] Signed-off-by: Sunil Mohan Adapa Reviewed-by: Sunil Mohan Adapa --- plinth/modules/help/templates/help_about.html | 4 +++- plinth/modules/help/views.py | 8 +++----- plinth/modules/upgrades/views.py | 16 +++++++++------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/plinth/modules/help/templates/help_about.html b/plinth/modules/help/templates/help_about.html index c8a4be47a..ae749c681 100644 --- a/plinth/modules/help/templates/help_about.html +++ b/plinth/modules/help/templates/help_about.html @@ -65,8 +65,10 @@ {% endblocktrans %} {% if new_version %} + {% url 'upgrades:index' as upgrades_url %} {% blocktrans trimmed %} - There is a new {{ box_name }} version available. + There is a new {{ box_name }} version + available. {% endblocktrans %} {% else %} {% blocktrans trimmed %} diff --git a/plinth/modules/help/views.py b/plinth/modules/help/views.py index eaa5c756c..5c48b77bb 100644 --- a/plinth/modules/help/views.py +++ b/plinth/modules/help/views.py @@ -7,7 +7,6 @@ import mimetypes import os import pathlib -from apt.cache import Cache from django.core.files.base import File from django.http import Http404, HttpResponse, HttpResponseRedirect from django.template.response import TemplateResponse @@ -16,7 +15,8 @@ from django.utils.translation import get_language_from_request from django.utils.translation import ugettext as _ from plinth import __version__, actions, cfg -from plinth.modules.upgrades.views import get_os_release +from plinth.modules.upgrades.views import (get_os_release, + is_newer_version_available) def index(request): @@ -45,12 +45,10 @@ def support(request): def about(request): """Serve the about page""" - cache = Cache() - freedombox = cache['freedombox'] context = { 'title': _('About {box_name}').format(box_name=_(cfg.box_name)), 'version': __version__, - 'new_version': not freedombox.candidate.is_installed, + 'new_version': is_newer_version_available(), 'os_release': get_os_release() } return TemplateResponse(request, 'help_about.html', context) diff --git a/plinth/modules/upgrades/views.py b/plinth/modules/upgrades/views.py index 0a8f4a081..8ecd8db3f 100644 --- a/plinth/modules/upgrades/views.py +++ b/plinth/modules/upgrades/views.py @@ -31,8 +31,6 @@ class UpgradesConfigurationView(AppView): return {'auto_upgrades_enabled': upgrades.is_enabled()} def get_context_data(self, *args, **kwargs): - cache = Cache() - freedombox = cache['freedombox'] context = super().get_context_data(*args, **kwargs) context['can_activate_backports'] = upgrades.can_activate_backports() context['is_backports_requested'] = upgrades.is_backports_requested() @@ -40,7 +38,7 @@ class UpgradesConfigurationView(AppView): context['log'] = get_log() context['refresh_page_sec'] = 3 if context['is_busy'] else None context['version'] = __version__ - context['new_version'] = not freedombox.candidate.is_installed + context['new_version'] = is_newer_version_available() context['os_release'] = get_os_release() return context @@ -73,11 +71,15 @@ class UpgradesConfigurationView(AppView): return super().form_valid(form) -def get_os_release(): - """Returns the Debian release number and name +def is_newer_version_available(): + """Returns whether a newer Freedombox version is available.""" + cache = Cache() + freedombox = cache['freedombox'] + return not freedombox.candidate.is_installed - Note: The Help module calls this function also. - """ + +def get_os_release(): + """Returns the Debian release number and name.""" output = 'Error: Cannot read PRETTY_NAME in /etc/os-release.' with open('/etc/os-release', 'r') as release_file: for line in release_file: