kopia lustrzana https://github.com/wagtail/wagtail
Porównaj commity
2 Commity
7d7ad7186a
...
cfcc99f058
Autor | SHA1 | Data |
---|---|---|
rohitsrma | cfcc99f058 | |
rohitsrma | 4ff0179080 |
|
@ -716,9 +716,9 @@ class EditView(
|
|||
return self.actions
|
||||
|
||||
def get_object(self, queryset=None):
|
||||
if "pk" not in self.kwargs:
|
||||
self.kwargs["pk"] = self.args[0]
|
||||
self.kwargs["pk"] = unquote(str(self.kwargs["pk"]))
|
||||
if self.pk_url_kwarg not in self.kwargs:
|
||||
self.kwargs[self.pk_url_kwarg] = self.args[0]
|
||||
self.kwargs[self.pk_url_kwarg] = unquote(str(self.kwargs[self.pk_url_kwarg]))
|
||||
return super().get_object(queryset)
|
||||
|
||||
def get_page_subtitle(self):
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
{% extends "wagtailadmin/generic/edit.html" %}
|
|
@ -1,4 +1,5 @@
|
|||
from django.conf import settings
|
||||
from django.contrib.auth.models import Permission
|
||||
from django.test import TestCase, override_settings
|
||||
from django.urls import reverse
|
||||
|
||||
|
@ -875,7 +876,7 @@ class TestRedirectsEditView(WagtailTestUtils, TestCase):
|
|||
def test_simple(self):
|
||||
response = self.get()
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, "wagtailadmin/generic/edit.html")
|
||||
self.assertTemplateUsed(response, "wagtailredirects/edit.html")
|
||||
|
||||
url_finder = AdminURLFinder(self.user)
|
||||
expected_url = "/admin/redirects/%d/" % self.redirect.id
|
||||
|
@ -957,6 +958,39 @@ class TestRedirectsEditView(WagtailTestUtils, TestCase):
|
|||
# Should not redirect to index
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_get_with_no_permission(self, redirect_id=None):
|
||||
self.user.is_superuser = False
|
||||
self.user.save()
|
||||
# Only basic access_admin permission is given
|
||||
self.user.user_permissions.add(
|
||||
Permission.objects.get(
|
||||
content_type__app_label="wagtailadmin",
|
||||
codename="access_admin",
|
||||
)
|
||||
)
|
||||
|
||||
response = self.get()
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertRedirects(response, reverse("wagtailadmin_home"))
|
||||
|
||||
def test_get_with_edit_permission_only(self):
|
||||
self.user.is_superuser = False
|
||||
self.user.save()
|
||||
self.user.user_permissions.add(
|
||||
Permission.objects.get(
|
||||
content_type__app_label="wagtailadmin",
|
||||
codename="access_admin",
|
||||
),
|
||||
Permission.objects.get(
|
||||
content_type__app_label="wagtailredirects",
|
||||
codename="change_redirect",
|
||||
),
|
||||
)
|
||||
|
||||
response = self.get()
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, "wagtailredirects/edit.html")
|
||||
|
||||
|
||||
class TestRedirectsDeleteView(WagtailTestUtils, TestCase):
|
||||
def setUp(self):
|
||||
|
|
|
@ -7,7 +7,7 @@ urlpatterns = [
|
|||
path("", views.IndexView.as_view(), name="index"),
|
||||
path("results/", views.IndexView.as_view(results_only=True), name="index_results"),
|
||||
path("add/", views.add, name="add"),
|
||||
path("<int:redirect_id>/", views.Edit.as_view(), name="edit"),
|
||||
path("<int:redirect_id>/", views.EditView.as_view(), name="edit"),
|
||||
path("<int:redirect_id>/delete/", views.delete, name="delete"),
|
||||
path("import/", views.start_import, name="start_import"),
|
||||
path("import/process/", views.process_import, name="process_import"),
|
||||
|
|
|
@ -127,24 +127,21 @@ class IndexView(generic.IndexView):
|
|||
]
|
||||
|
||||
|
||||
class Edit(generic.EditView):
|
||||
model = models.Redirect
|
||||
class EditView(generic.EditView):
|
||||
model = Redirect
|
||||
form_class = RedirectForm
|
||||
template_name = "wagtailredirects/edit.html"
|
||||
index_url_name = "wagtailredirects:index"
|
||||
edit_url_name = "wagtailredirects:edit"
|
||||
delete_url_name = "wagtailredirects:delete"
|
||||
permission_required = "change_redirect"
|
||||
delete_item_label = _("Delete")
|
||||
submit_button_label = _("Save")
|
||||
pk_url_kwarg = "redirect_id"
|
||||
permission_policy = permission_policy
|
||||
error_message = gettext_lazy("The redirect could not be saved due to errors.")
|
||||
|
||||
def get_object(self, queryset=None):
|
||||
redirect_id = self.kwargs.get("redirect_id")
|
||||
return get_object_or_404(self.model, id=redirect_id)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context["redirect"] = self.object
|
||||
return context
|
||||
def get_success_message(self):
|
||||
return _("Redirect '%(redirect_title)s' updated.") % {
|
||||
"redirect_title": self.object.title
|
||||
}
|
||||
|
||||
|
||||
@permission_checker.require("delete")
|
||||
|
|
Ładowanie…
Reference in New Issue