kopia lustrzana https://github.com/wagtail/wagtail
Move legacy page moderation views to wagtail.admin.views.pages.moderation
rodzic
b2a943d9f6
commit
30405f45e9
|
@ -21,7 +21,6 @@ from wagtail.admin import messages
|
|||
from wagtail.admin.action_menu import PageActionMenu
|
||||
from wagtail.admin.auth import user_has_any_page_permission, user_passes_test
|
||||
from wagtail.admin.filters import PageHistoryReportFilterSet
|
||||
from wagtail.admin.mail import send_notification
|
||||
from wagtail.admin.modal_workflow import render_modal_workflow
|
||||
from wagtail.admin.views.pages.utils import get_valid_next_url_from_request
|
||||
from wagtail.admin.views.reports import ReportView
|
||||
|
@ -34,6 +33,7 @@ from wagtail.admin.views.pages.create import * # noqa
|
|||
from wagtail.admin.views.pages.edit import * # noqa
|
||||
from wagtail.admin.views.pages.listing import * # noqa
|
||||
from wagtail.admin.views.pages.lock import * # noqa
|
||||
from wagtail.admin.views.pages.moderation import * # noqa
|
||||
from wagtail.admin.views.pages.move import * # noqa
|
||||
from wagtail.admin.views.pages.preview import * # noqa
|
||||
from wagtail.admin.views.pages.search import * # noqa
|
||||
|
@ -183,53 +183,6 @@ def set_page_position(request, page_to_move_id):
|
|||
return HttpResponse('')
|
||||
|
||||
|
||||
def approve_moderation(request, revision_id):
|
||||
revision = get_object_or_404(PageRevision, id=revision_id)
|
||||
if not revision.page.permissions_for_user(request.user).can_publish():
|
||||
raise PermissionDenied
|
||||
|
||||
if not revision.submitted_for_moderation:
|
||||
messages.error(request, _("The page '{0}' is not currently awaiting moderation.").format(revision.page.get_admin_display_title()))
|
||||
return redirect('wagtailadmin_home')
|
||||
|
||||
if request.method == 'POST':
|
||||
revision.approve_moderation(user=request.user)
|
||||
|
||||
message = _("Page '{0}' published.").format(revision.page.get_admin_display_title())
|
||||
buttons = []
|
||||
if revision.page.url is not None:
|
||||
buttons.append(messages.button(revision.page.url, _('View live'), new_window=True))
|
||||
buttons.append(messages.button(reverse('wagtailadmin_pages:edit', args=(revision.page.id,)), _('Edit')))
|
||||
messages.success(request, message, buttons=buttons)
|
||||
|
||||
if not send_notification(revision.id, 'approved', request.user.pk):
|
||||
messages.error(request, _("Failed to send approval notifications"))
|
||||
|
||||
return redirect('wagtailadmin_home')
|
||||
|
||||
|
||||
def reject_moderation(request, revision_id):
|
||||
revision = get_object_or_404(PageRevision, id=revision_id)
|
||||
if not revision.page.permissions_for_user(request.user).can_publish():
|
||||
raise PermissionDenied
|
||||
|
||||
if not revision.submitted_for_moderation:
|
||||
messages.error(request, _("The page '{0}' is not currently awaiting moderation.").format(revision.page.get_admin_display_title()))
|
||||
return redirect('wagtailadmin_home')
|
||||
|
||||
if request.method == 'POST':
|
||||
revision.reject_moderation(user=request.user)
|
||||
|
||||
messages.success(request, _("Page '{0}' rejected for publication.").format(revision.page.get_admin_display_title()), buttons=[
|
||||
messages.button(reverse('wagtailadmin_pages:edit', args=(revision.page.id,)), _('Edit'))
|
||||
])
|
||||
|
||||
if not send_notification(revision.id, 'rejected', request.user.pk):
|
||||
messages.error(request, _("Failed to send rejection notifications"))
|
||||
|
||||
return redirect('wagtailadmin_home')
|
||||
|
||||
|
||||
class BaseWorkflowFormView(View):
|
||||
"""
|
||||
Shared functionality for views that need to render the modal form to collect extra details
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
from django.core.exceptions import PermissionDenied
|
||||
from django.shortcuts import get_object_or_404, redirect
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
from wagtail.admin import messages
|
||||
from wagtail.admin.mail import send_notification
|
||||
from wagtail.core.models import PageRevision
|
||||
|
||||
|
||||
def approve_moderation(request, revision_id):
|
||||
revision = get_object_or_404(PageRevision, id=revision_id)
|
||||
if not revision.page.permissions_for_user(request.user).can_publish():
|
||||
raise PermissionDenied
|
||||
|
||||
if not revision.submitted_for_moderation:
|
||||
messages.error(request, _("The page '{0}' is not currently awaiting moderation.").format(revision.page.get_admin_display_title()))
|
||||
return redirect('wagtailadmin_home')
|
||||
|
||||
if request.method == 'POST':
|
||||
revision.approve_moderation(user=request.user)
|
||||
|
||||
message = _("Page '{0}' published.").format(revision.page.get_admin_display_title())
|
||||
buttons = []
|
||||
if revision.page.url is not None:
|
||||
buttons.append(messages.button(revision.page.url, _('View live'), new_window=True))
|
||||
buttons.append(messages.button(reverse('wagtailadmin_pages:edit', args=(revision.page.id,)), _('Edit')))
|
||||
messages.success(request, message, buttons=buttons)
|
||||
|
||||
if not send_notification(revision.id, 'approved', request.user.pk):
|
||||
messages.error(request, _("Failed to send approval notifications"))
|
||||
|
||||
return redirect('wagtailadmin_home')
|
||||
|
||||
|
||||
def reject_moderation(request, revision_id):
|
||||
revision = get_object_or_404(PageRevision, id=revision_id)
|
||||
if not revision.page.permissions_for_user(request.user).can_publish():
|
||||
raise PermissionDenied
|
||||
|
||||
if not revision.submitted_for_moderation:
|
||||
messages.error(request, _("The page '{0}' is not currently awaiting moderation.").format(revision.page.get_admin_display_title()))
|
||||
return redirect('wagtailadmin_home')
|
||||
|
||||
if request.method == 'POST':
|
||||
revision.reject_moderation(user=request.user)
|
||||
|
||||
messages.success(request, _("Page '{0}' rejected for publication.").format(revision.page.get_admin_display_title()), buttons=[
|
||||
messages.button(reverse('wagtailadmin_pages:edit', args=(revision.page.id,)), _('Edit'))
|
||||
])
|
||||
|
||||
if not send_notification(revision.id, 'rejected', request.user.pk):
|
||||
messages.error(request, _("Failed to send rejection notifications"))
|
||||
|
||||
return redirect('wagtailadmin_home')
|
Ładowanie…
Reference in New Issue