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