ikiwiki: Use common view for configuration

This commit is contained in:
Sunil Mohan Adapa 2016-02-28 18:58:58 +05:30
parent d31de69d36
commit a0e676c51c
No known key found for this signature in database
GPG Key ID: 36C361440C9BC971
4 changed files with 22 additions and 50 deletions

View File

@ -65,11 +65,23 @@ def setup(helper, old_version=None):
helper.call('post', service.notify_enabled, None, True)
def get_status():
"""Get the current setting."""
return {'enabled': is_enabled()}
def is_enabled():
"""Return whether the module is enabled."""
return action_utils.webserver_is_enabled('ikiwiki-plinth')
def enable(should_enable):
"""Enable/disable the module."""
sub_command = 'enable' if should_enable else 'disable'
actions.superuser_run('ikiwiki', [sub_command])
service.notify_enabled(None, should_enable)
def diagnose():
"""Run diagnostics and return the results."""
results = []

View File

@ -23,13 +23,6 @@ from django import forms
from django.utils.translation import ugettext_lazy as _
class IkiwikiForm(forms.Form):
"""ikiwiki configuration form."""
enabled = forms.BooleanField(
label=_('Enable ikiwiki'),
required=False)
class IkiwikiCreateForm(forms.Form):
"""Form to create a wiki or blog."""
site_type = forms.ChoiceField(

View File

@ -25,7 +25,8 @@ from . import views
urlpatterns = [
url(r'^apps/ikiwiki/$', views.index, name='index'),
url(r'^apps/ikiwiki/$',
views.ConfigurationView.as_view(module_name='ikiwiki'), name='index'),
url(r'^apps/ikiwiki/manage/$', views.manage, name='manage'),
url(r'^apps/ikiwiki/(?P<name>[\w.@+-]+)/delete/$', views.delete,
name='delete'),

View File

@ -25,9 +25,9 @@ from django.shortcuts import redirect
from django.template.response import TemplateResponse
from django.utils.translation import ugettext as _, ugettext_lazy
from .forms import IkiwikiForm, IkiwikiCreateForm
from .forms import IkiwikiCreateForm
from plinth import actions
from plinth.modules import ikiwiki
from plinth import views
subsubmenu = [{'url': reverse_lazy('ikiwiki:index'),
@ -38,48 +38,14 @@ subsubmenu = [{'url': reverse_lazy('ikiwiki:index'),
'text': ugettext_lazy('Create')}]
def index(request):
class ConfigurationView(views.ConfigurationView):
"""Serve configuration page."""
status = get_status()
def get_context_data(self, **kwargs):
"""Return the context data for rendering the template view."""
if 'subsubmenu' not in kwargs:
kwargs['subsubmenu'] = subsubmenu
form = None
if request.method == 'POST':
form = IkiwikiForm(request.POST, prefix='ikiwiki')
if form.is_valid():
_apply_changes(request, status, form.cleaned_data)
status = get_status()
form = IkiwikiForm(initial=status, prefix='ikiwiki')
else:
form = IkiwikiForm(initial=status, prefix='ikiwiki')
return TemplateResponse(request, 'ikiwiki.html',
{'title': ikiwiki.title,
'description': ikiwiki.description,
'status': status,
'form': form,
'subsubmenu': subsubmenu})
def get_status():
"""Get the current setting."""
return {'enabled': ikiwiki.is_enabled()}
def _apply_changes(request, old_status, new_status):
"""Apply the changes."""
modified = False
if old_status['enabled'] != new_status['enabled']:
sub_command = 'enable' if new_status['enabled'] else 'disable'
actions.superuser_run('ikiwiki', [sub_command])
ikiwiki.service.notify_enabled(None, new_status['enabled'])
modified = True
if modified:
messages.success(request, _('Configuration updated'))
else:
messages.info(request, _('Setting unchanged'))
return super().get_context_data(**kwargs)
def manage(request):