Initial commit
This commit is contained in:
35
env/lib/python3.10/site-packages/wagtail/admin/api/actions/unpublish.py
vendored
Normal file
35
env/lib/python3.10/site-packages/wagtail/admin/api/actions/unpublish.py
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
from django.core.exceptions import ValidationError as DjangoValidationError
|
||||
from rest_framework import fields, status
|
||||
from rest_framework.exceptions import ValidationError
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.serializers import Serializer
|
||||
|
||||
from wagtail.actions.unpublish_page import UnpublishPageAction
|
||||
|
||||
from .base import APIAction
|
||||
|
||||
|
||||
class UnpublishPageAPIActionSerializer(Serializer):
|
||||
recursive = fields.BooleanField(default=False, required=False)
|
||||
|
||||
|
||||
class UnpublishPageAPIAction(APIAction):
|
||||
serializer = UnpublishPageAPIActionSerializer
|
||||
|
||||
def _action_from_data(self, instance, data):
|
||||
return UnpublishPageAction(
|
||||
page=instance,
|
||||
user=self.request.user,
|
||||
include_descendants=data["recursive"],
|
||||
)
|
||||
|
||||
def execute(self, instance, data):
|
||||
action = self._action_from_data(instance, data)
|
||||
|
||||
try:
|
||||
action.execute()
|
||||
except DjangoValidationError as e:
|
||||
raise ValidationError(e.message_dict)
|
||||
|
||||
serializer = self.view.get_serializer(instance)
|
||||
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||
Reference in New Issue
Block a user