diff --git a/docs/changelog.rst b/docs/changelog.rst index 12ea8c1..b98b466 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,6 +1,7 @@ Changelog ========= +* :feature:`-` implement deletion of websites * :feature:`-` implement setup of websites * :support:`-` add webtasks interface * :support:`-` update to new fileservertasks interface (requires gvafile >= diff --git a/gnuviechadmin/templates/hostingpackages/customerhostingpackage_detail.html b/gnuviechadmin/templates/hostingpackages/customerhostingpackage_detail.html index f3c7634..e66ae9b 100644 --- a/gnuviechadmin/templates/hostingpackages/customerhostingpackage_detail.html +++ b/gnuviechadmin/templates/hostingpackages/customerhostingpackage_detail.html @@ -107,7 +107,7 @@ {% with domain=domain.domain %} {% for website in domain.website_set.all %}{% spaceless %} {{ website }} - {% trans "Delete website" %} + {% trans "Delete website" %} {% endspaceless %}{% if not forloop.last %}, {% endif %}{% endfor %} {% endwith %} diff --git a/gnuviechadmin/templates/websites/website_confirm_delete.html b/gnuviechadmin/templates/websites/website_confirm_delete.html new file mode 100644 index 0000000..92cb0e9 --- /dev/null +++ b/gnuviechadmin/templates/websites/website_confirm_delete.html @@ -0,0 +1,34 @@ +{% extends "websites/base.html" %} +{% load i18n %} + +{% block title %}{{ block.super }} - {% spaceless %} +{% if user == customer %} +{% blocktrans %}Delete Website {{ website }}{% endblocktrans %} +{% else %} +{% blocktrans with full_name=customer.get_full_name %}Delete Website {{ website }} of Customer {{ full_name }}{% endblocktrans %} +{% endif %} +{% endspaceless %}{% endblock title %} + +{% block page_title %}{% spaceless %} +{% if user == customer %} +{% blocktrans %}Delete Website {{ website }}{% endblocktrans %} +{% else %} +{% blocktrans with full_name=customer.get_full_name %}Delete Website {{ website }} of Customer {{ full_name }}{% endblocktrans %} +{% endif %} +{% endspaceless %}{% endblock page_title %} + +{% block content %} +
+
+ {% blocktrans %}Do you really want to delete the website {{ website }}?{% endblocktrans %} +
+
+

{% blocktrans %}Please be aware that the website directory is removed from the webserver and the webserver configuration is changed so that the website will not be reachable anymore. All data in the website directory will be lost!{% endblocktrans %}

+
+ {% csrf_token %} + + {% trans "Cancel" %} +
+
+
+{% endblock content %} diff --git a/gnuviechadmin/websites/urls.py b/gnuviechadmin/websites/urls.py index c98a252..4bcd5e0 100644 --- a/gnuviechadmin/websites/urls.py +++ b/gnuviechadmin/websites/urls.py @@ -8,6 +8,7 @@ from django.conf.urls import patterns, url from .views import ( AddWebsite, + DeleteWebsite, ) @@ -15,4 +16,6 @@ urlpatterns = patterns( '', url(r'^(?P\d+)/(?P[\w0-9.-]+)/create$', AddWebsite.as_view(), name='add_website'), + url(r'^(?P\d+)/(?P[\w0-9.-]+)/(?P\d+)/delete$', + DeleteWebsite.as_view(), name='delete_website'), ) diff --git a/gnuviechadmin/websites/views.py b/gnuviechadmin/websites/views.py index 64a8fea..803386f 100644 --- a/gnuviechadmin/websites/views.py +++ b/gnuviechadmin/websites/views.py @@ -8,6 +8,7 @@ from django.shortcuts import get_object_or_404, redirect from django.utils.translation import ugettext as _ from django.views.generic.edit import ( CreateView, + DeleteView, ) from django.contrib import messages @@ -58,3 +59,25 @@ class AddWebsite( ) ) return redirect(self.get_hosting_package()) + + +class DeleteWebsite( + HostingPackageAndCustomerMixin, StaffOrSelfLoginRequiredMixin, DeleteView +): + """ + This view is used to delete websites in a customer hosting package. + + """ + context_object_name = 'website' + model = Website + + def get_context_data(self, **kwargs): + context = super(DeleteWebsite, self).get_context_data(**kwargs) + context.update({ + 'customer': self.get_customer_object(), + 'hostingpackage': self.get_hosting_package(), + }) + return context + + def get_success_url(self): + return self.get_hosting_package().get_absolute_url()