o
    h                     @   s   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 d d	lmZ d d
lmZ G dd deZdS )    )settings)PermissionDenied)get_object_or_404)reverse)gettext_lazy)hooks)UnpublishPageAction)get_valid_next_url_from_request)UnpublishView)Pagec                       s   e Zd ZeZdZdZdZdZe	dZ
dZdZ fdd	Zdd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 )	Unpublishwagtailadmin_explorezwagtailadmin_pages:editzwagtailadmin_pages:unpublishzwagtailadmin_pages:usagez"Page '%(page_title)s' unpublished.z)wagtailadmin/pages/confirm_unpublish.htmlzdoc-empty-inversec                    s   t  j||g|R i |S N)supersetup)selfrequestpage_idargskwargs	__class__ c/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/admin/views/pages/unpublish.pyr      s   zUnpublish.setupNc                 C   s   t t| jdjS )N)id)r   r   pkspecific)r   querysetr   r   r   
get_object   s   zUnpublish.get_objectc                 C   s
   | j  S r   )objectget_admin_display_titler   r   r   r   get_object_display_title   s   
z"Unpublish.get_object_display_titlec                    s0   | j |j stt j|g|R i |S r   )r   permissions_for_userusercan_unpublishr   r   dispatch)r   r   r   r   r   r   r   r&   "   s   zUnpublish.dispatchc                 C   s   | j d| j i S )N
page_title)success_messager   r    r!   r   r   r   get_success_message'   s   
zUnpublish.get_success_messagec                 C   s*   t | j}|r	|S t| j| j jfdS )N)r   )r	   r   r   index_url_namer   
get_parentr   )r   next_urlr   r   r   get_next_url,   s   
zUnpublish.get_next_urlc                 C   s`   | j h}ttddr,tdD ]}|| j gd}|r+t|tr+| D ]}|| q#qt	|S )NWAGTAIL_I18N_ENABLEDF-construct_translated_pages_to_cascade_actions	unpublish)
r   getattrr   r   	get_hooks
isinstancedictvaluesupdatelist)r   objects_to_unpublishfnfn_pagesadditional_pagesr   r   r   get_objects_to_unpublish2   s   z"Unpublish.get_objects_to_unpublishc                 C   sz   |  d| j| j}|d ur|S | jjdd}| jD ]}t|| jj|d}|jdd q|  d| j| j}|d ur;|S d S )Nbefore_unpublish_pageinclude_descendantsF)r$   r>   T)skip_permission_checksafter_unpublish_page)	run_hookr   r   POSTgetr8   r   r$   execute)r   hook_responser>   r   actionr   r   r   r0   >   s   


zUnpublish.unpublishc              
      s`   t  jdi |}|| j| j   t| jdd  t	dd | jdd  D d |S )N   c                 S   s$   g | ]}|  jd d  qS )T)alias_of__isnull)get_descendantsfilterlivecount).0pr   r   r   
<listcomp>Y   s    z.Unpublish.get_context_data.<locals>.<listcomp>)pagelive_descendant_counttranslation_counttranslation_descendant_countr   )
r   get_context_datar6   r   rI   rK   rL   lenr8   sum)r   r   contextr   r   r   rT   Q   s   zUnpublish.get_context_datar   )__name__
__module____qualname__r   modelr*   edit_url_nameunpublish_url_nameusage_url_name_r(   template_nameheader_iconr   r   r"   r&   r)   r-   r<   r0   rT   __classcell__r   r   r   r   r      s$    
r   N)django.confr   django.core.exceptionsr   django.shortcutsr   django.urlsr   django.utils.translationr   r_   wagtailr   wagtail.actions.unpublish_pager   wagtail.admin.utilsr	   "wagtail.admin.views.generic.modelsr
   wagtail.modelsr   r   r   r   r   r   <module>   s    