mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-04-22 10:01:45 +00:00
ikiwiki: Use common view for configuration
This commit is contained in:
parent
d31de69d36
commit
a0e676c51c
@ -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 = []
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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'),
|
||||
|
||||
@ -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):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user