a
    Dg                     @   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   sh   t t|d }|| j}| s0| s0tz| j	d|j
}W n tyZ   tY n0 || |S )Nidmode)r   r   get_latest_revision_as_objectZpermissions_for_useruserZcan_publishZcan_editr   GETgetZdefault_preview_mode
IndexErrorZmake_preview_request)requestpage_idpageZpermsZpreview_mode r   `/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/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yH   tY n0 |  }tt|dj	}|j
d |_
| r||j|j
d|_n|  |_|S )Nr(   r)   r*   r      )r   r   Z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   r2   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   