mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-28 08:03:36 +00:00
Tests: - Functional tests work - Initial setup succeeds - Configuration can be set and new configuration is properly reflected in app page and configuration files. - A new service can be added and reflects in configuration files. - Service can be deleted and reflects in configuration files. Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
66 lines
2.1 KiB
Python
66 lines
2.1 KiB
Python
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
from django.http import HttpResponseRedirect
|
|
from django.urls import reverse, reverse_lazy
|
|
from django.utils.translation import gettext as _
|
|
from django.views.generic import View
|
|
from django.views.generic.edit import FormView
|
|
|
|
from plinth.views import AppView
|
|
|
|
from . import privileged
|
|
from .forms import (AddCustomServiceForm, ConfigurationForm,
|
|
DeleteCustomServiceForm)
|
|
|
|
|
|
class DeleteServiceView(View):
|
|
|
|
def post(self, request):
|
|
form = DeleteCustomServiceForm(request.POST)
|
|
if form.is_valid():
|
|
form.delete(request)
|
|
return HttpResponseRedirect(reverse('pagekite:index'))
|
|
|
|
|
|
class AddCustomServiceView(FormView):
|
|
"""View to add a new custom PageKite service."""
|
|
form_class = AddCustomServiceForm
|
|
template_name = 'pagekite_custom_services.html'
|
|
success_url = reverse_lazy('pagekite:index')
|
|
|
|
def get_context_data(self, *args, **kwargs):
|
|
"""Return additional context for rendering the template."""
|
|
context = super().get_context_data(*args, **kwargs)
|
|
context['title'] = _('Add custom PageKite service')
|
|
return context
|
|
|
|
def form_valid(self, form):
|
|
"""Add a custom service."""
|
|
form.save(self.request)
|
|
return super().form_valid(form)
|
|
|
|
|
|
class ConfigurationView(AppView):
|
|
app_id = 'pagekite'
|
|
template_name = 'pagekite_configure.html'
|
|
form_class = ConfigurationForm
|
|
prefix = 'pagekite'
|
|
success_url = reverse_lazy('pagekite:index')
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
"""Load and store the current configuration."""
|
|
super().__init__(*args, **kwargs)
|
|
self.config = privileged.get_config()
|
|
self.initial = self.config
|
|
|
|
def get_context_data(self, *args, **kwargs):
|
|
context = super().get_context_data(*args, **kwargs)
|
|
for service in self.config['custom_services']:
|
|
service['delete_form'] = DeleteCustomServiceForm(initial=service)
|
|
context.update(self.config)
|
|
return context
|
|
|
|
def form_valid(self, form):
|
|
form.save(self.request)
|
|
return super().form_valid(form)
|