help: Link to updates page when new version is available

Closes: #1332.

Signed-off-by: Fioddor Superconcentrado <fioddor@gmail.com>
[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 <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
This commit is contained in:
Fioddor Superconcentrado 2020-10-14 14:31:12 +02:00 committed by Sunil Mohan Adapa
parent a7829d3bf7
commit 792c2cd00f
No known key found for this signature in database
GPG Key ID: 43EA1CFF0AA7C5F2
3 changed files with 15 additions and 13 deletions

View File

@ -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
<a href="{{ upgrades_url }}">available</a>.
{% endblocktrans %}
{% else %}
{% blocktrans trimmed %}

View File

@ -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)

View File

@ -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: