a
    Dg                     @   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_publishedZ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
   d/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/actions/publish_page_revision.pyr      s   r   c                       s0   e Zd ZdZded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   s(   | j r$|s$| j| j  s$tdd S )Nz/You do not have permission to publish this page)userobjectZpermissions_for_userZ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)Zupdate_fields)Zsenderinstancerevision)r   _content)Zwagtail.modelsr   getattrr   allonlysaver   sendZspecific_classZspecificr   super_after_publishZ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   )
loggingZ wagtail.actions.publish_revisionr   r   Zwagtail.signalsr   	getLoggerloggerr   r   r
   r
   r
   r   <module>   s
   
