o
    h                     @   s:   d dl mZ d dlmZ G dd deZG dd dZdS )    )PermissionDenied)logc                   @   s   e Zd ZdZdS )DeletePagePermissionErrorzZ
    Raised when the page delete cannot be performed due to insufficient permissions.
    N)__name__
__module____qualname____doc__ r	   r	   [/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/actions/delete_page.pyr      s    r   c                       sD   e Zd Zdd ZdddZ fddZddd	d
Zdd Z  ZS )DeletePageActionc                 C   s   || _ || _d S )N)pageuser)selfr   r   r	   r	   r
   __init__   s   
zDeletePageAction.__init__Fc                 C   s0   | j r|s| j| j  stdd S d S d S )Nz.You do not have permission to delete this page)r   r   permissions_for_user
can_deleter   )r   skip_permission_checksr	   r	   r
   check   s   zDeletePageAction.checkc                    s   ddl m} t||u r-|   D ]}| | q| |j t||j|i |S t	|j
j|jd| jdj|i |S )Nr   )Page)id)r   )wagtail.modelsr   typeget_descendantsspecificiteratorlog_deletionsuperdeleter   objectsgetr   r   execute)r   r   argskwargsr   child	__class__r	   r
   _delete_page   s   zDeletePageAction._delete_pager   c                O   s&   | j |d | j| jg|R i |S )Nr'   )r   r&   r   )r   r   r!   r"   r	   r	   r
   r    0   s   zDeletePageAction.executec                 C   s   t |d| jdd d S )Nzwagtail.deleteT)instanceactionr   deleted)r   r   )r   r   r	   r	   r
   r   5   s   
zDeletePageAction.log_deletion)F)	r   r   r   r   r   r&   r    r   __classcell__r	   r	   r$   r
   r      s    

r   N)django.core.exceptionsr   wagtail.log_actionsr   r   r   r	   r	   r	   r
   <module>   s    