o
    h                     @   sR   d dl Z d dlmZmZ d dlmZ e dZG dd deZG dd deZ	dS )	    N)PublishPermissionErrorPublishRevisionAction)page_publishedwagtailc                   @   s   e Zd ZdZdS )PublishPagePermissionErrorz[
    Raised when the page publish cannot be performed due to insufficient permissions.
    N)__name__
__module____qualname____doc__ r   r   e/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/actions/publish_page_revision.pyr      s    r   c                       s0   e Zd ZdZddefddZ fddZ  ZS )	PublishPageRevisionActiona  
    Publish or schedule revision for publishing.

    :param revision: revision to publish
    :param user: the publishing user
    :param changed: indicated whether content has changed
    :param log_action:
        flag for the logging action. Pass False to skip logging. Cannot pass an action string as the method
        performs several actions: "publish", "revert" (and publish the reverted revision),
        "schedule publishing with a live revision", "schedule revision reversal publishing, with a live revision",
        "schedule publishing", "schedule revision reversal publishing"
    :param previous_revision: indicates a revision reversal. Should be set to the previous revision instance
    Fskip_permission_checksc                 C   s0   | j r|s| j| j  stdd S d S d S )Nz/You do not have permission to publish this page)userobjectpermissions_for_usercan_publishr   )selfr   r   r   r   check#   s   zPublishPageRevisionAction.checkc                    st   ddl m} t| j| dD ]	}|jdgd qtj| jj	| jj
| jd t   | jj| j| jjd d S )Nr   )COMMENTS_RELATION_NAMEposition)update_fields)senderinstancerevision)r   _content)wagtail.modelsr   getattrr   allonlysaver   sendspecific_classspecificr   super_after_publishupdate_aliasescontent)r   r   comment	__class__r   r   r%   -   s   


z(PublishPageRevisionAction._after_publish)F)r   r   r	   r
   boolr   r%   __classcell__r   r   r)   r   r      s    
r   )
logging wagtail.actions.publish_revisionr   r   wagtail.signalsr   	getLoggerloggerr   r   r   r   r   r   <module>   s    
