U
    {h                     @   st   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 ZG d	d
 d
e
Z	G dd de	ZdS )    )ContentType)PermissionDenied)Http404)get_object_or_404)PreviewOnEdit)Pagec                 C   s`   t t|d }|| j}| s0| s0tz
|j}W n t	k
rR   tY nX |
| |S )Nid)r   r   get_latest_revision_as_objectZpermissions_for_useruserZcan_publishZcan_editr   Zdefault_preview_mode
IndexErrorZmake_preview_request)requestpage_idpageZpermsZpreview_mode r   i/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/admin/views/pages/preview.py
view_draft
   s    

r   c                   @   s(   e Zd Zedd Zdd Zdd ZdS )r   c                 C   s   d | j| jd S )Nz{}{}r   formatZsession_key_prefixkwargsselfr   r   r   session_key   s    zPreviewOnEdit.session_keyc                 C   s   t t| jd d S )Nr   r   )r   r   r   r
   r   r   r   r   
get_object   s     zPreviewOnEdit.get_objectc                 C   sH   | j   }| j  j}|s2|| j || jjdS ||| j || jjdS )N)instanceparent_pageZfor_user)objectZget_edit_handlerZget_form_classZ
get_parentspecificr   r   )r   
query_dictZ
form_classr   r   r   r   get_form"   s    zPreviewOnEdit.get_formN)__name__
__module____qualname__propertyr   r   r   r   r   r   r   r      s   
r   c                       s0   e Zd Zedd Zdd Z fddZ  ZS )PreviewOnCreatec                 C   s$   d | j| jd | jd | jd S )Nz
{}{}-{}-{}content_type_app_namecontent_type_model_nameparent_page_idr   r   r   r   r   r   7   s    zPreviewOnCreate.session_keyc                 C   s   | j d }| j d }| j d }ztj||}W n tjk
rJ   tY nX |  }tt|dj	}|j
d |_
| r||j|j
d|_n|  |_|S )Nr%   r&   r'   r      )r   r   objectsZget_by_natural_keyZDoesNotExistr   Zmodel_classr   r   r   depthZis_leaf	_get_pathpathZget_last_childZ	_inc_path)r   r%   r&   r'   content_typer   r   r   r   r   r   @   s"    


 

zPreviewOnCreate.get_objectc                    s0   t  |}| r,|j|j |j  |S )N)superr   Zis_validr   Zset_url_pathr   Z
full_clean)r   r   form	__class__r   r   r   `   s
    
zPreviewOnCreate.get_form)r    r!   r"   r#   r   r   r   __classcell__r   r   r0   r   r$   6   s   
 r$   N)Z"django.contrib.contenttypes.modelsr   Zdjango.core.exceptionsr   Zdjango.httpr   Zdjango.shortcutsr   Z#wagtail.admin.views.generic.previewr   ZGenericPreviewOnEditZwagtail.modelsr   r   r$   r   r   r   r   <module>   s   