From a7eb5e8f0e13db0d7a7b804704aa080f5283eca8 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Fri, 19 Aug 2022 16:46:54 -0700 Subject: [PATCH] power: Use AppView for app page Tests: - Enable/disable button is not shown. - Diagnostics menu item is not shown. - If apt is busy a warning message is shown. - Restart and Shutdown buttons are shown and work. Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/power/__init__.py | 2 ++ plinth/modules/power/urls.py | 2 +- plinth/modules/power/views.py | 21 ++++++++++++--------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/plinth/modules/power/__init__.py b/plinth/modules/power/__init__.py index 8137456ee..60ae0dcdc 100644 --- a/plinth/modules/power/__init__.py +++ b/plinth/modules/power/__init__.py @@ -21,6 +21,8 @@ class PowerApp(app_module.App): _version = 1 + can_be_disabled = False + def __init__(self): """Create components for the app.""" super().__init__() diff --git a/plinth/modules/power/urls.py b/plinth/modules/power/urls.py index fbd800877..7604f5785 100644 --- a/plinth/modules/power/urls.py +++ b/plinth/modules/power/urls.py @@ -8,7 +8,7 @@ from django.urls import re_path from . import views urlpatterns = [ - re_path(r'^sys/power/$', views.index, name='index'), + re_path(r'^sys/power/$', views.PowerAppView.as_view(), name='index'), re_path(r'^sys/power/restart$', views.restart, name='restart'), re_path(r'^sys/power/shutdown$', views.shutdown, name='shutdown'), ] diff --git a/plinth/modules/power/views.py b/plinth/modules/power/views.py index 9b59380a1..d88d10eea 100644 --- a/plinth/modules/power/views.py +++ b/plinth/modules/power/views.py @@ -11,17 +11,20 @@ from django.urls import reverse from plinth import actions from plinth import app as app_module from plinth import package +from plinth.views import AppView -def index(request): - """Serve power controls page.""" - app = app_module.App.get('power') - return TemplateResponse( - request, 'power.html', { - 'title': app.info.name, - 'app_info': app.info, - 'pkg_manager_is_busy': package.is_package_manager_busy() - }) +class PowerAppView(AppView): + """Show power app main page.""" + + app_id = 'power' + template_name = 'power.html' + + def get_context_data(self, *args, **kwargs): + """Add additional context data for template.""" + context = super().get_context_data(*args, **kwargs) + context['pkg_manager_is_busy'] = package.is_package_manager_busy() + return context def restart(request):