kopia lustrzana https://github.com/wagtail/wagtail
Refactor redirects create view to use generic CreateView and template
rodzic
f9e4e10fce
commit
3f6b919c7b
|
@ -1,24 +1 @@
|
|||
{% extends "wagtailadmin/generic/form.html" %}
|
||||
{% load i18n wagtailadmin_tags %}
|
||||
{% block titletag %}{% trans "Add redirect" %}{% endblock %}
|
||||
{% block content %}
|
||||
{% trans "Add redirect" as add_red_str %}
|
||||
{% include "wagtailadmin/shared/header.html" with title=add_red_str icon="redirect" %}
|
||||
|
||||
{% include "wagtailadmin/shared/non_field_errors.html" %}
|
||||
|
||||
<form action="{% url 'wagtailredirects:add' %}" method="POST" class="nice-padding" novalidate>
|
||||
{% csrf_token %}
|
||||
|
||||
<ul class="fields">
|
||||
{% for field in form.visible_fields %}
|
||||
<li>{% formattedfield field %}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
{% block footer %}
|
||||
{{ block.super }}
|
||||
{% endblock %}
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
{% extends "wagtailadmin/generic/create.html" %}
|
||||
|
|
|
@ -6,7 +6,7 @@ app_name = "wagtailredirects"
|
|||
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("add/", views.CreateView.as_view(), name="add"),
|
||||
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"),
|
||||
|
|
|
@ -201,48 +201,27 @@ def delete(request, redirect_id):
|
|||
)
|
||||
|
||||
|
||||
@permission_checker.require("add")
|
||||
def add(request):
|
||||
if request.method == "POST":
|
||||
form = RedirectForm(request.POST, request.FILES)
|
||||
if form.is_valid():
|
||||
with transaction.atomic():
|
||||
theredirect = form.save()
|
||||
log(instance=theredirect, action="wagtail.create")
|
||||
class CreateView(generic.CreateView):
|
||||
model = Redirect
|
||||
form_class = RedirectForm
|
||||
permission_policy = permission_policy
|
||||
template_name = "wagtailredirects/add.html"
|
||||
add_url_name = "wagtailredirects:add"
|
||||
index_url_name = "wagtailredirects:index"
|
||||
edit_url_name = "wagtailredirects:edit"
|
||||
error_message = gettext_lazy("The redirect could not be created due to errors.")
|
||||
header_icon = "redirect"
|
||||
_show_breadcrumbs = True
|
||||
|
||||
purge_urls_from_cache(theredirect.old_links())
|
||||
def get_success_message(self, instance):
|
||||
return _("Redirect '%(redirect_title)s' added.") % {
|
||||
"redirect_title": instance.title
|
||||
}
|
||||
|
||||
messages.success(
|
||||
request,
|
||||
_("Redirect '%(redirect_title)s' added.")
|
||||
% {"redirect_title": theredirect.title},
|
||||
buttons=[
|
||||
messages.button(
|
||||
reverse("wagtailredirects:edit", args=(theredirect.id,)),
|
||||
_("Edit"),
|
||||
)
|
||||
],
|
||||
)
|
||||
return redirect("wagtailredirects:index")
|
||||
else:
|
||||
messages.error(
|
||||
request, _("The redirect could not be created due to errors.")
|
||||
)
|
||||
else:
|
||||
form = RedirectForm()
|
||||
|
||||
return TemplateResponse(
|
||||
request,
|
||||
"wagtailredirects/add.html",
|
||||
{
|
||||
"form": form,
|
||||
# Remove these when this view is refactored to a generic.CreateView subclass.
|
||||
# Avoid defining new translatable strings.
|
||||
"submit_button_label": generic.CreateView.submit_button_label,
|
||||
"submit_button_active_label": generic.CreateView.submit_button_active_label,
|
||||
"media": form.media,
|
||||
},
|
||||
)
|
||||
def save_instance(self):
|
||||
instance = super().save_instance()
|
||||
purge_urls_from_cache(instance.old_links())
|
||||
return instance
|
||||
|
||||
|
||||
@permission_checker.require_any("add")
|
||||
|
|
Ładowanie…
Reference in New Issue