mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-04-22 10:01:45 +00:00
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>
61 lines
1.7 KiB
Python
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()
|
|
})
|