Sunil Mohan Adapa 355b2be90e
package: Fix error log when checking if package manager is busy
Reuse the method in package.py that checks is package manager is busy without
printing and error log.

Tests performed:

- Try to install a package and wait at the apt confirmation prompt.

- Go to power index page /sys/power/ . It shows a warning that package manager
is busy. No error log is printed.

- Go to system restart page. It shows a warning that package manager is busy. No
error log is printed.

- Go to system poweroff page. It shows a warning that package manager is busy.
No error log is printed.

- Without package manager being busy, above warnings are not shown.

- Go to manual update package. It shows as updating if apt is busy, otherwise
shows the manual update button.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2020-05-17 17:36:49 -04:00

61 lines
1.7 KiB
Python

# SPDX-License-Identifier: AGPL-3.0-or-later
"""
FreedomBox app for power module.
"""
from django.forms import Form
from django.shortcuts import redirect
from django.template.response import TemplateResponse
from django.urls import reverse
from plinth import actions, package
from plinth.modules import power
def index(request):
"""Serve power controls page."""
return TemplateResponse(
request, 'power.html', {
'title': power.app.info.name,
'app_info': power.app.info,
'pkg_manager_is_busy': package.is_package_manager_busy()
})
def restart(request):
"""Serve start confirmation page."""
form = None
if request.method == 'POST':
actions.superuser_run('power', ['restart'], run_in_background=True)
return redirect(reverse('apps'))
else:
form = Form(prefix='power')
return TemplateResponse(
request, 'power_restart.html', {
'title': power.app.info.name,
'form': form,
'manual_page': power.app.info.manual_page,
'pkg_manager_is_busy': package.is_package_manager_busy()
})
def shutdown(request):
"""Serve shutdown confirmation page."""
form = None
if request.method == 'POST':
actions.superuser_run('power', ['shutdown'], run_in_background=True)
return redirect(reverse('apps'))
else:
form = Form(prefix='power')
return TemplateResponse(
request, 'power_shutdown.html', {
'title': power.app.info.name,
'form': form,
'manual_page': power.app.info.manual_page,
'pkg_manager_is_busy': package.is_package_manager_busy()
})