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 %} {% endblocktrans %}
{% if new_version %} {% if new_version %}
{% url 'upgrades:index' as upgrades_url %}
{% blocktrans trimmed %} {% blocktrans trimmed %}
There is a new {{ box_name }} version available. There is a new {{ box_name }} version
<a href="{{ upgrades_url }}">available</a>.
{% endblocktrans %} {% endblocktrans %}
{% else %} {% else %}
{% blocktrans trimmed %} {% blocktrans trimmed %}

View File

@ -7,7 +7,6 @@ import mimetypes
import os import os
import pathlib import pathlib
from apt.cache import Cache
from django.core.files.base import File from django.core.files.base import File
from django.http import Http404, HttpResponse, HttpResponseRedirect from django.http import Http404, HttpResponse, HttpResponseRedirect
from django.template.response import TemplateResponse 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 django.utils.translation import ugettext as _
from plinth import __version__, actions, cfg 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): def index(request):
@ -45,12 +45,10 @@ def support(request):
def about(request): def about(request):
"""Serve the about page""" """Serve the about page"""
cache = Cache()
freedombox = cache['freedombox']
context = { context = {
'title': _('About {box_name}').format(box_name=_(cfg.box_name)), 'title': _('About {box_name}').format(box_name=_(cfg.box_name)),
'version': __version__, 'version': __version__,
'new_version': not freedombox.candidate.is_installed, 'new_version': is_newer_version_available(),
'os_release': get_os_release() 'os_release': get_os_release()
} }
return TemplateResponse(request, 'help_about.html', context) return TemplateResponse(request, 'help_about.html', context)

View File

@ -31,8 +31,6 @@ class UpgradesConfigurationView(AppView):
return {'auto_upgrades_enabled': upgrades.is_enabled()} return {'auto_upgrades_enabled': upgrades.is_enabled()}
def get_context_data(self, *args, **kwargs): def get_context_data(self, *args, **kwargs):
cache = Cache()
freedombox = cache['freedombox']
context = super().get_context_data(*args, **kwargs) context = super().get_context_data(*args, **kwargs)
context['can_activate_backports'] = upgrades.can_activate_backports() context['can_activate_backports'] = upgrades.can_activate_backports()
context['is_backports_requested'] = upgrades.is_backports_requested() context['is_backports_requested'] = upgrades.is_backports_requested()
@ -40,7 +38,7 @@ class UpgradesConfigurationView(AppView):
context['log'] = get_log() context['log'] = get_log()
context['refresh_page_sec'] = 3 if context['is_busy'] else None context['refresh_page_sec'] = 3 if context['is_busy'] else None
context['version'] = __version__ context['version'] = __version__
context['new_version'] = not freedombox.candidate.is_installed context['new_version'] = is_newer_version_available()
context['os_release'] = get_os_release() context['os_release'] = get_os_release()
return context return context
@ -73,11 +71,15 @@ class UpgradesConfigurationView(AppView):
return super().form_valid(form) return super().form_valid(form)
def get_os_release(): def is_newer_version_available():
"""Returns the Debian release number and name """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.' output = 'Error: Cannot read PRETTY_NAME in /etc/os-release.'
with open('/etc/os-release', 'r') as release_file: with open('/etc/os-release', 'r') as release_file:
for line in release_file: for line in release_file: