o
    h+                     @   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   c/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/admin/views/pages/revisions.pyrevisions_index      
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 )Nrevisions_revertT)view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   
   | j  S r&   )previous_revision	as_objectr#   r   r   r   
get_object/   r   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_atr9   )r   r2   r9   r   _r   r:   )r$   user_avatarr   r   r   r0   8   s   

z'RevisionsRevertView.get_warning_messagec                    s"   t  jdi |}|  |d< |S )N
action_urlr   )r(   get_context_datar8   )r$   r,   contextr-   r   r   r>   H   s   z$RevisionsRevertView.get_context_data)__name__
__module____qualname__r5   r%   r)   r'   r4   r8   r0   r>   __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                       t  j|||g|R i |S r&   r(   setupr$   r   r   r7   r+   r,   r-   r   r   rI   R      zRevisionsView.setupc                 C   s6   t t| jdj}|| jj}| s| st	|S N)id)
r   r   r6   specificpermissions_for_userr   r9   can_publishcan_editr   )r$   r    permsr   r   r   r4   V   s
   zRevisionsView.get_object)r@   rA   rB   r   modelrI   r4   rC   r   r   r-   r   rF   N   s    rF   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(   rD   r*   r-   r   r   rD   f   s   zRevisionsCompare.dispatchNc                 C   s   t t| jdjS rL   )r   r   r6   rN   )r$   querysetr   r   r   r4   j   s   zRevisionsCompare.get_objectc                 C   r1   r&   )objectget_edit_handlerr#   r   r   r   rZ   m   r   z!RevisionsCompare.get_edit_handlerc                 C   r1   r&   rY   get_admin_display_titler#   r   r   r   get_page_subtitlep   r   z"RevisionsCompare.get_page_subtitler&   )r@   rA   rB   history_url_nameedit_url_nameheader_iconbreadcrumbs_items_to_taker   r   r   rD   r4   rZ   r]   rC   r   r   r-   r   rT   `   s    

rT   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 )RevisionsUnschedulerU   r   z'wagtailadmin_pages:revisions_unschedulerV   c                    rG   r&   rH   rJ   r-   r   r   rI   {   rK   zRevisionsUnschedule.setupNc                 C   s*   t t| jdj}|| jj st|S rL   )	r   r   r6   rN   rO   r   r9   can_unscheduler   )r$   rX   r    r   r   r   r4      s   zRevisionsUnschedule.get_objectc                 C   r1   r&   r[   r#   r   r   r   get_object_display_title   r   z,RevisionsUnschedule.get_object_display_titler&   )r@   rA   rB   r   rS   r_   r^   revisions_unschedule_url_namer`   rI   r4   rd   rC   r   r   r-   r   rb   t   s    
rb   N))django.core.exceptionsr   django.shortcutsr   r   django.template.loaderr   django.urlsr   django.utils.decoratorsr   django.utils.safestringr   django.utils.translationr	   r;   wagtail.adminr
   wagtail.admin.action_menur   wagtail.admin.authr   r   "wagtail.admin.views.generic.modelsr   r   #wagtail.admin.views.generic.previewr   wagtail.admin.views.pages.editr   wagtail.admin.views.pages.utilsr   wagtail.modelsr   wagtail.utils.timestampsr   r   r   rF   rT   rb   r   r   r   r   <module>   s,    3