a
    Dg+                     @   s*  d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZmZ d dlmZ d dlmZ d dlmZ d dl m!Z! d dl"m#Z# dd Z$G dd deZ%e
eeddG dd deZ&G dd deeZ'G dd deZ(dS )    )PermissionDenied)get_object_or_404redirect)render_to_string)reverse)method_decorator)	mark_safe)gettext)messages)PageActionMenu)user_has_any_page_permissionuser_passes_test)RevisionsCompareViewRevisionsUnscheduleView)PreviewRevision)EditView)GenericPageBreadcrumbsMixin)Page)render_timestampc                 C   s
   t d|S )Nwagtailadmin_pages:history)r   )requestpage_id r   b/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/admin/views/pages/revisions.pyrevisions_index   s    r   c                       sT   e Zd ZdZdd Z fddZdd Zdd	 Zd
d Zdd Z	 fddZ
  ZS )RevisionsRevertViewz#wagtailadmin_pages:revisions_revertc                 C   s   t | jdd| j| j| jdS )NZrevisions_revertT)viewZis_revisionpagelocklocked_for_user)r   r   r   r   r   selfr   r   r   get_action_menu   s    z#RevisionsRevertView.get_action_menuc                    s"   |    t j|g|R i |S N)_add_warning_messagesupergetr!   r   argskwargs	__class__r   r   r&   (   s    zRevisionsRevertView.getc                 C   s   t | j|   d S r#   )r
   warningr   get_warning_messager    r   r   r   r$   ,   s    z(RevisionsRevertView._add_warning_messagec                 C   s
   | j  S r#   )previous_revisionZ	as_objectr    r   r   r   
get_object/   s    zRevisionsRevertView.get_objectc                 C   s   t | j| jj| jgdS )N)r(   )r   revisions_revert_url_namer   pkrevision_idr    r   r   r   get_revisions_revert_url2   s    z,RevisionsRevertView.get_revisions_revert_urlc                 C   s0   t dd| jji}ttdt| jj|d S )Nz$wagtailadmin/shared/user_avatar.htmluserzVYou are viewing a previous version of this page from <b>%(created_at)s</b> by %(user)s)
created_atr4   )r   r.   r4   r   _r   r5   )r!   Zuser_avatarr   r   r   r-   8   s    

z'RevisionsRevertView.get_warning_messagec                    s"   t  jf i |}|  |d< |S )NZ
action_url)r%   get_context_datar3   )r!   r)   contextr*   r   r   r7   H   s    z$RevisionsRevertView.get_context_data)__name__
__module____qualname__r0   r"   r&   r$   r/   r3   r-   r7   __classcell__r   r   r*   r   r      s   
r   dispatch)namec                       s(   e Zd ZeZ fddZdd Z  ZS )RevisionsViewc                    s   t  j|||g|R i |S r#   r%   setupr!   r   r   r2   r(   r)   r*   r   r   rA   R   s    zRevisionsView.setupc                 C   s6   t t| jdj}|| jj}| s2| s2t	|S N)id)
r   r   r1   specificpermissions_for_userr   r4   Zcan_publishZcan_editr   )r!   r   Zpermsr   r   r   r/   V   s
    zRevisionsView.get_object)r9   r:   r;   r   modelrA   r/   r<   r   r   r*   r   r?   N   s   r?   c                       sR   e Zd ZdZdZdZdZeee	 fddZ
ddd	Zd
d Zdd Z  ZS )RevisionsComparer   wagtailadmin_pages:editdoc-empty-inverse   c                    s   t  j|g|R i |S r#   )r%   r=   r'   r*   r   r   r=   f   s    zRevisionsCompare.dispatchNc                 C   s   t t| jdjS rC   )r   r   r1   rE   )r!   querysetr   r   r   r/   j   s    zRevisionsCompare.get_objectc                 C   s
   | j  S r#   )objectget_edit_handlerr    r   r   r   rN   m   s    z!RevisionsCompare.get_edit_handlerc                 C   s
   | j  S r#   rM   Zget_admin_display_titler    r   r   r   get_page_subtitlep   s    z"RevisionsCompare.get_page_subtitle)N)r9   r:   r;   history_url_nameedit_url_nameheader_iconZbreadcrumbs_items_to_taker   r   r   r=   r/   rN   rP   r<   r   r   r*   r   rH   `   s   

rH   c                       sB   e Zd ZeZdZdZdZdZ fddZ	ddd	Z
d
d Z  ZS )RevisionsUnschedulerI   r   z'wagtailadmin_pages:revisions_unschedulerJ   c                    s   t  j|||g|R i |S r#   r@   rB   r*   r   r   rA   {   s    zRevisionsUnschedule.setupNc                 C   s*   t t| jdj}|| jj s&t|S rC   )	r   r   r1   rE   rF   r   r4   Zcan_unscheduler   )r!   rL   r   r   r   r   r/      s    zRevisionsUnschedule.get_objectc                 C   s
   | j  S r#   rO   r    r   r   r   get_object_display_title   s    z,RevisionsUnschedule.get_object_display_title)N)r9   r:   r;   r   rG   rR   rQ   Zrevisions_unschedule_url_namerS   rA   r/   rU   r<   r   r   r*   r   rT   t   s   
rT   N))Zdjango.core.exceptionsr   Zdjango.shortcutsr   r   Zdjango.template.loaderr   Zdjango.urlsr   Zdjango.utils.decoratorsr   Zdjango.utils.safestringr   Zdjango.utils.translationr	   r6   Zwagtail.adminr
   Zwagtail.admin.action_menur   Zwagtail.admin.authr   r   Z"wagtail.admin.views.generic.modelsr   r   Z#wagtail.admin.views.generic.previewr   Zwagtail.admin.views.pages.editr   Zwagtail.admin.views.pages.utilsr   Zwagtail.modelsr   Zwagtail.utils.timestampsr   r   r   r?   rH   rT   r   r   r   r   <module>   s*   3