Refactor search_promotions delete view to extend generic DeleteView

pull/11950/merge
Sage Abdullah 2024-11-22 15:55:40 +00:00 zatwierdzone przez Matt Westcott
rodzic 0d7ea86b2d
commit 4bbd26d5a4
3 zmienionych plików z 17 dodań i 31 usunięć
wagtail/contrib/search_promotions
templates/wagtailsearchpromotions

Wyświetl plik

@ -9,7 +9,7 @@ urlpatterns = [
path("results/", views.IndexView.as_view(results_only=True), name="index_results"),
path("add/", views.CreateView.as_view(), name="add"),
path("<int:query_id>/", views.EditView.as_view(), name="edit"),
path("<int:query_id>/delete/", views.delete, name="delete"),
path("<int:query_id>/delete/", views.DeleteView.as_view(), name="delete"),
path("queries/chooser/", views.chooser, name="chooser"),
path(
"queries/chooser/results/",

Wyświetl plik

@ -1,15 +1,6 @@
{% extends "wagtailadmin/base.html" %}
{% extends "wagtailadmin/generic/confirm_delete.html" %}
{% load i18n %}
{% block titletag %}{% blocktrans trimmed with query=query.query_string %}Delete {{ query }}{% endblocktrans %}{% endblock %}
{% block content %}
{% trans "Delete" as delete_str %}
{% include "wagtailadmin/shared/header.html" with title=delete_str subtitle=query.query_string %}
<div class="nice-padding">
<p>{% trans "Are you sure you want to delete all promoted results for this search term?" %}</p>
<form action="{% url 'wagtailsearchpromotions:delete' query.id %}" method="POST">
{% csrf_token %}
<input type="submit" value="{% trans 'Yes, delete' %}" class="button serious" />
</form>
</div>
{% block confirmation_message %}
<p>{% trans "Are you sure you want to delete all promoted results for this search term?" %}</p>
{% endblock %}

Wyświetl plik

@ -2,14 +2,12 @@ from django.core.paginator import InvalidPage, Paginator
from django.db import transaction
from django.db.models import Sum, functions
from django.http import Http404
from django.shortcuts import get_object_or_404, redirect
from django.shortcuts import redirect
from django.template.response import TemplateResponse
from django.utils.functional import cached_property
from django.utils.translation import gettext as _
from django.utils.translation import gettext_lazy
from wagtail.admin import messages
from wagtail.admin.auth import permission_required
from wagtail.admin.forms.search import SearchForm
from wagtail.admin.modal_workflow import render_modal_workflow
from wagtail.admin.ui.tables import Column, RelatedObjectsColumn, TitleColumn
@ -194,26 +192,23 @@ class EditView(SearchPromotionCreateEditMixin, generic.EditView):
template_name = "wagtailsearchpromotions/edit.html"
@permission_required("wagtailsearchpromotions.delete_searchpromotion")
def delete(request, query_id):
query = get_object_or_404(Query, id=query_id)
class DeleteView(generic.DeleteView):
model = Query
permission_policy = ModelPermissionPolicy(SearchPromotion)
pk_url_kwarg = "query_id"
context_object_name = "query"
success_message = gettext_lazy("Editor's picks deleted.")
index_url_name = "wagtailsearchpromotions:index"
delete_url_name = "wagtailsearchpromotions:delete"
header_icon = "pick"
template_name = "wagtailsearchpromotions/confirm_delete.html"
if request.method == "POST":
editors_picks = query.editors_picks.all()
def delete_action(self):
editors_picks = self.object.editors_picks.all()
with transaction.atomic():
for search_pick in editors_picks:
log(search_pick, "wagtail.delete")
editors_picks.delete()
messages.success(request, _("Editor's picks deleted."))
return redirect("wagtailsearchpromotions:index")
return TemplateResponse(
request,
"wagtailsearchpromotions/confirm_delete.html",
{
"query": query,
},
)
def chooser(request, get_results=False):