Esempio n. 1
0
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.specific_deferred.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.specific_deferred.get_admin_display_title()),
            buttons=[
                messages.button(
                    reverse("wagtailadmin_pages:edit",
                            args=(revision.page.id, )),
                    _("Edit"),
                )
            ],
        )

        if not send_moderation_notification(revision, "rejected",
                                            request.user):
            messages.error(request,
                           _("Failed to send rejection notifications"))

    return redirect("wagtailadmin_home")
Esempio n. 2
0
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.specific_deferred.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.specific_deferred.get_admin_display_title())
        buttons = []
        if revision.page.url is not None:
            buttons.append(
                messages.button(revision.page.url,
                                _("View live"),
                                new_window=False))
        buttons.append(
            messages.button(
                reverse("wagtailadmin_pages:edit", args=(revision.page.id, )),
                _("Edit")))
        messages.success(request, message, buttons=buttons)

        if not send_moderation_notification(revision, "approved",
                                            request.user):
            messages.error(request, _("Failed to send approval notifications"))

    return redirect("wagtailadmin_home")