o
    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   sd   t t|d }|| j}| s| stz
| j	d|j
}W n	 ty+   tw || |S )Nidmode)r   r   get_latest_revision_as_objectpermissions_for_userusercan_publishcan_editr   GETgetdefault_preview_mode
IndexErrormake_preview_request)requestpage_idpagepermspreview_mode r   a/var/www/html/ndineBlogger/venv/lib/python3.10/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   format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}|s|| j || jjdS ||| j || jjdS )N)instanceparent_pagefor_user)objectget_edit_handlerget_form_class
get_parentspecificr   r   )r"   
query_dict
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y"   tw |  }tt|dj	}|j
d |_
| rE||j|j
d|_|S |  |_|S )Nr5   r6   r7   r      )r    r   objectsget_by_natural_keyDoesNotExistr   model_classr   r   r,   depthis_leaf	_get_pathpathget_last_child	_inc_path)r"   r5   r6   r7   content_typer   r&   r   r   r   r$   @   s$   



zPreviewOnCreate.get_objectc                    s0   t  |}| r|j|j |j  |S )N)superr/   is_validr%   set_url_pathr&   
full_clean)r"   r-   form	__class__r   r   r/   `   s
   
zPreviewOnCreate.get_form)r0   r1   r2   r3   r#   r$   r/   __classcell__r   r   rI   r   r4   6   s
    
 r4   N)"django.contrib.contenttypes.modelsr   django.core.exceptionsr   django.httpr   django.shortcutsr   #wagtail.admin.views.generic.previewr   GenericPreviewOnEditwagtail.modelsr   r   r4   r   r   r   r   <module>   s    