upgrades: Move auto upgrades configure form to first tab.

Split forms and views into separate files.
This commit is contained in:
James Valleroy 2015-08-31 20:41:49 -04:00 committed by Sunil Mohan Adapa
parent 76cdc69099
commit c539dc6db3
4 changed files with 63 additions and 38 deletions

View File

@ -0,0 +1,32 @@
#
# This file is part of Plinth.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""
Forms for configuring unattended-upgrades.
"""
from django import forms
from gettext import gettext as _
class ConfigureForm(forms.Form):
"""Configuration form to enable/disable automatic upgrades."""
auto_upgrades_enabled = forms.BooleanField(
label=_('Enable automatic upgrades'), required=False,
help_text=_('When enabled, the unattended-upgrades program will be \
run once per day. It will attempt to perform any package upgrades that are \
available.'))

View File

@ -22,6 +22,8 @@
{% block content %} {% block content %}
<h2>{{ title }}</h2>
<form class="form" method="post"> <form class="form" method="post">
{% csrf_token %} {% csrf_token %}

View File

@ -25,6 +25,6 @@ from django.conf.urls import patterns, url
urlpatterns = patterns( urlpatterns = patterns(
'plinth.modules.upgrades.upgrades', 'plinth.modules.upgrades.upgrades',
url(r'^sys/upgrades/$', 'index', name='index'), url(r'^sys/upgrades/$', 'index', name='index'),
url(r'^sys/upgrades/run/$', 'run', name='run'), url(r'^sys/upgrades/upgrade/$', 'upgrade', name='upgrade'),
url(r'^sys/upgrades/configure/$', 'configure', name='configure'), url(r'^sys/upgrades/upgrade/run/$', 'run', name='run'),
) )

View File

@ -19,22 +19,22 @@
Plinth module for upgrades Plinth module for upgrades
""" """
from django import forms
from django.contrib import messages from django.contrib import messages
from django.core.urlresolvers import reverse_lazy from django.core.urlresolvers import reverse_lazy
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
from django.views.decorators.http import require_POST from django.views.decorators.http import require_POST
from gettext import gettext as _ from gettext import gettext as _
from .forms import ConfigureForm
from plinth import actions from plinth import actions
from plinth import cfg from plinth import cfg
from plinth import package from plinth import package
from plinth.errors import ActionError from plinth.errors import ActionError
subsubmenu = [{'url': reverse_lazy('upgrades:index'), subsubmenu = [{'url': reverse_lazy('upgrades:index'),
'text': _('Upgrade Packages')}, 'text': _('Automatic Upgrades')},
{'url': reverse_lazy('upgrades:configure'), {'url': reverse_lazy('upgrades:upgrade'),
'text': _('Automatic Upgrades')}] 'text': _('Upgrade Packages')}]
def init(): def init():
@ -51,7 +51,29 @@ def on_install():
@package.required(['unattended-upgrades'], on_install=on_install) @package.required(['unattended-upgrades'], on_install=on_install)
def index(request): def index(request):
"""Serve the index page.""" """Serve the configuration form."""
status = get_status()
form = None
if request.method == 'POST':
form = ConfigureForm(request.POST, prefix='upgrades')
if form.is_valid():
_apply_changes(request, status, form.cleaned_data)
status = get_status()
form = ConfigureForm(initial=status, prefix='upgrades')
else:
form = ConfigureForm(initial=status, prefix='upgrades')
return TemplateResponse(request, 'upgrades_configure.html',
{'title': _('Automatic Upgrades'),
'form': form,
'subsubmenu': subsubmenu})
@package.required(['unattended-upgrades'], on_install=on_install)
def upgrade(request):
"""Serve the upgrade page."""
return TemplateResponse(request, 'upgrades.html', return TemplateResponse(request, 'upgrades.html',
{'title': _('Package Upgrades'), {'title': _('Package Upgrades'),
'subsubmenu': subsubmenu}) 'subsubmenu': subsubmenu})
@ -77,37 +99,6 @@ def run(request):
'upgrades_error': error}) 'upgrades_error': error})
class ConfigureForm(forms.Form):
"""Configuration form to enable/disable automatic upgrades."""
auto_upgrades_enabled = forms.BooleanField(
label=_('Enable automatic upgrades'), required=False,
help_text=_('When enabled, the unattended-upgrades program will be \
run once per day. It will attempt to perform any package upgrades that are \
available.'))
@package.required(['unattended-upgrades'], on_install=on_install)
def configure(request):
"""Serve the configuration form."""
status = get_status()
form = None
if request.method == 'POST':
form = ConfigureForm(request.POST, prefix='upgrades')
if form.is_valid():
_apply_changes(request, status, form.cleaned_data)
status = get_status()
form = ConfigureForm(initial=status, prefix='upgrades')
else:
form = ConfigureForm(initial=status, prefix='upgrades')
return TemplateResponse(request, 'upgrades_configure.html',
{'title': _('Automatic Upgrades'),
'form': form,
'subsubmenu': subsubmenu})
def get_status(): def get_status():
"""Return the current status.""" """Return the current status."""
output = actions.run('upgrades', ['check-auto']) output = actions.run('upgrades', ['check-auto'])