1from django.utils.translation import gettext_lazy
2
3from wagtail.admin.views import generic
4from wagtail.admin.viewsets.model import ModelViewSet
5from wagtail.core.models import Site
6from wagtail.core.permissions import site_permission_policy
7from wagtail.sites.forms import SiteForm
8
9
10class IndexView(generic.IndexView):
11    template_name = 'wagtailsites/index.html'
12    page_title = gettext_lazy("Sites")
13    add_item_label = gettext_lazy("Add a site")
14    context_object_name = 'sites'
15
16
17class CreateView(generic.CreateView):
18    page_title = gettext_lazy("Add site")
19    success_message = gettext_lazy("Site '{0}' created.")
20    template_name = 'wagtailsites/create.html'
21
22
23class EditView(generic.EditView):
24    success_message = gettext_lazy("Site '{0}' updated.")
25    error_message = gettext_lazy("The site could not be saved due to errors.")
26    delete_item_label = gettext_lazy("Delete site")
27    context_object_name = 'site'
28    template_name = 'wagtailsites/edit.html'
29
30
31class DeleteView(generic.DeleteView):
32    success_message = gettext_lazy("Site '{0}' deleted.")
33    page_title = gettext_lazy("Delete site")
34    confirmation_message = gettext_lazy("Are you sure you want to delete this site?")
35
36
37class SiteViewSet(ModelViewSet):
38    icon = 'site'
39    model = Site
40    permission_policy = site_permission_policy
41
42    index_view_class = IndexView
43    add_view_class = CreateView
44    edit_view_class = EditView
45    delete_view_class = DeleteView
46
47    def get_form_class(self, for_update=False):
48        return SiteForm
49