o
    h8                     @   s   d dl 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 d dlmZmZ d dlmZmZmZmZ d d	lmZ G d
d deZG dd deZG dd deZG dd deZG dd deZG dd deZdS )    N)settings)reverse)capfirst)gettext_lazyngettext)	Component)AccessibilityItemapply_userbar_hooks)DraftStateMixinLockableMixinPageReferenceIndex)RemovedInWagtail70Warningc                   @   s,   e Zd ZG dd deZdd Zdd ZdS )BaseSidePanelc                   @   s4   e Zd ZdZdZdZdZdZdZdd Z	dd Z
dS )	zBaseSidePanel.SidePanelTogglez*wagtailadmin/shared/side_panel_toggle.html TNc                 C   s
   || _ d S Npanel)selfr    r   \/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/admin/ui/side_panels.py__init__   s   
z&BaseSidePanel.SidePanelToggle.__init__c                    s8   h d} fdd|D }| |d< | j |d< d|d< |S )N>   nav_icon_classesnav_icon_button_classesnav_icon_counter_classesc                    s   i | ]}|  |qS r   )get).0keyparent_contextr   r   
<dictcomp>!   s    zBBaseSidePanel.SidePanelToggle.get_context_data.<locals>.<dictcomp>toggler   r   countr   )r   r   inheritcontextr   r   r   get_context_data   s   
z.BaseSidePanel.SidePanelToggle.get_context_data)__name__
__module____qualname__template_name
aria_label	icon_namehas_countercounter_classnamekeyboard_shortcutr   r%   r   r   r   r   SidePanelToggle   s    r/   c                 C   s*   || _ || _t| j | _| j| d| _d S )Nr   )objectrequesttypemodelr/   r!   )r   r0   r1   r   r   r   r   '   s   zBaseSidePanel.__init__c                 C   s*   | | j | jd}t| jtr| j |d< |S )N)r   r0   r1   page)r0   r1   
issubclassr3   r   r   r   r$   r   r   r   r%   -   s   
zBaseSidePanel.get_context_dataN)r&   r'   r(   r   r/   r   r%   r   r   r   r   r      s    r   c                	       s   e Zd ZG dd dejZdZedZdZdZ	ddddddddd fd	d

Z
dd Zdd Zdd Zdd Z fddZ  ZS )StatusSidePanelc                       s,   e Zd ZedZdZdZ fddZ  ZS )zStatusSidePanel.SidePanelTogglezToggle statuszinfo-circlezw-bg-critical-200c                    s8   t  |}|d}|ot|j ddh@ |d< |S )Nform
go_live_at	expire_atr"   )superr%   r   lenerrorskeys)r   r   r$   r8   	__class__r   r   r%   :   s   
z0StatusSidePanel.SidePanelToggle.get_context_data)	r&   r'   r(   r   r*   r+   r-   r%   __classcell__r   r   r?   r   r/   5   s
    r/   statusStatusz+wagtailadmin/shared/side_panels/status.htmld   N)show_schedule_publishing_togglelive_objectscheduled_objectlocaletranslations	usage_urlhistory_urllast_updated_infoc                   sT   t  j|	i |
 || _|| _|| _|| _|| _|| _|| _|| _	t
| jt| _d S r   )r;   r   rE   rF   rG   rH   rI   rJ   rK   rL   
isinstancer0   r   locking_enabled)r   rE   rF   rG   rH   rI   rJ   rK   rL   argskwargsr?   r   r   r   G   s   zStatusSidePanel.__init__c                 C   sB   dg}| j r|d | jjr| jr|d | jr|d |S )Nz=wagtailadmin/shared/side_panels/includes/status/workflow.htmlz;wagtailadmin/shared/side_panels/includes/status/locale.htmlz;wagtailadmin/shared/side_panels/includes/status/locked.htmlz:wagtailadmin/shared/side_panels/includes/status/usage.html)rH   appendr0   pkrN   rJ   r   r$   	templatesr   r   r   get_status_templates_   s   z$StatusSidePanel.get_status_templatesc              	   C   s4  t | jts
ddiS dd| jd d d d d d}| j|d r"d|d< | jjr*| jjr6| jj|d< | jj	|d< | j
r]| j
j|d	< | j
j	|d
< |d |d	 krQd |d< |d |d
 kr]d |d< | jr~| jj	r~| jjs~| jj	|d< |d	 r~|d	 |d k r~d |d< t|d |d< t|d	 |d
 |d |d f|d< |S )Ndraftstate_enabledFT)rV   schedule_has_errorsrE   draft_go_live_atdraft_expire_atscheduled_go_live_atscheduled_expire_atlive_expire_atr"   rW   rX   rY   rZ   r[   r\   has_live_publishing_schedulehas_draft_publishing_schedule)rM   r0   r
   rE   r!   r%   rR   has_unpublished_changesr9   r:   rG   rF   expiredboolanyr6   r   r   r    get_scheduled_publishing_contextt   sV   	z0StatusSidePanel.get_scheduled_publishing_contextc                 C   sP   d | _ i }| jr| j | _ | j r| j | jj|}| j |d|d|dS )Nuser_can_lockuser_can_unlock)lockrd   re   lock_context)rf   rN   r0   get_lockget_context_for_userr1   userr   )r   r   rg   r   r   r   get_lock_context   s   z StatusSidePanel.get_lock_contextc                 C   s   t | j | jdS )N)usage_countrJ   )r   get_grouped_references_tor0   r"   rJ   r   r   r   r   get_usage_context   s   z!StatusSidePanel.get_usage_contextc                    s   t  |}| j|d< | j|d< | jrt| jd |d< t| jjj|d< |d |d< | j	|d< | 
||d< | j|d	< || | || | | jjrZ| jrZ||   |S )
NrH   rI      translations_total
model_namebase_model_namerK   status_templatesrL   )r;   r%   rH   rI   r<   r   r3   _metaverbose_namerK   rU   rL   updaterc   rk   r0   rR   rJ   ro   r6   r?   r   r   r%      s   



z StatusSidePanel.get_context_data)r&   r'   r(   r   r/   namer   titler)   orderr   rU   rc   rk   ro   r%   rA   r   r   r?   r   r7   4   s(    Sr7   c                       s@   e Zd Z fddZ fddZ fddZ fddZ  ZS )	PageStatusSidePanelc                    st   | dd | _t j|i | | jjr6td| jjfd| _| j| j	j
}| r8td| jjfd| _d S d S d S )Nparent_pagezwagtailadmin_pages:usagerO   zwagtailadmin_pages:history)popr|   r;   r   r0   rR   r   rJ   permissions_for_userr1   rj   can_view_revisionsrK   )r   rO   rP   permissionsr?   r   r   r      s   zPageStatusSidePanel.__init__c                    s   t  |}|dd |S )Nz<wagtailadmin/shared/side_panels/includes/status/privacy.html)r;   rU   insertrS   r?   r   r   rU      s
   z(PageStatusSidePanel.get_status_templatesc                    s.   t   }tdd|d d|d i |d< |S )NzReferenced %(count)s timezReferenced %(count)s timesrl   r"   usage_url_text)r;   ro   r   )r   r$   r?   r   r   ro     s   

z%PageStatusSidePanel.get_usage_contextc              	      s   t  |}| j}| jr| j|d< |jr0|td|jfddtd|jfdtd|jfdd || j t	j
j| j | |d |S )	Nr|   z#wagtailadmin_pages:workflow_historyr}   z$wagtailadmin_pages:revisions_comparezwagtailadmin_pages:lockzwagtailadmin_pages:unlock)workflow_history_urlrevisions_compare_url_namelock_url
unlock_url)rr   rs   model_descriptionrt   )r;   r%   r0   r|   idrw   r   r3   get_verbose_namer   ru   rv   get_page_descriptionrU   )r   r   r$   r4   r?   r   r   r%     s,   
	z$PageStatusSidePanel.get_context_data)r&   r'   r(   r   rU   ro   r%   rA   r   r   r?   r   r{      s
    	r{   c                       sB   e Zd ZG dd dejZdZedZdZdZ	 fddZ
  ZS )	CommentsSidePanelc                   @      e Zd ZedZdZdS )z!CommentsSidePanel.SidePanelTogglezToggle commentscommentNr&   r'   r(   r   r*   r+   r   r   r   r   r/   /      r/   commentsCommentsz-wagtailadmin/shared/side_panels/comments.htmli,  c                    s   t  |}|d|d< |S )Nr8   )r;   r%   r   r6   r?   r   r   r%   8  s   z"CommentsSidePanel.get_context_data)r&   r'   r(   r   r/   rx   r   ry   r)   rz   r%   rA   r   r   r?   r   r   .  s    r   c                       sJ   e Zd ZG dd dejZdZedZdZdZ	dd Z
 fd	d
Z  ZS )ChecksSidePanelc                   @   r   )zChecksSidePanel.SidePanelTogglezToggle checksglassesNr   r   r   r   r   r/   ?  r   r/   checksChecksz+wagtailadmin/shared/side_panels/checks.htmli^  c                 C   sT   t  g}t| jtr| jnd }t| j|| |D ]}t|t r'|| j  S qd S r   )	r   r5   r3   r   r0   r	   r1   rM   get_axe_configuration)r   userbar_itemsr4   itemr   r   r   r   H  s   
z%ChecksSidePanel.get_axe_configurationc                    s   t  |}|  |d< |S )Naxe_configuration)r;   r%   r   r6   r?   r   r   r%   R  s   z ChecksSidePanel.get_context_data)r&   r'   r(   r   r/   rx   r   ry   r)   rz   r   r%   rA   r   r   r?   r   r   >  s    
r   c                       sZ   e Zd ZG dd dejZdZedZdZdZ	 fddZ
ed	d
 Z fddZ  ZS )PreviewSidePanelc                   @   s    e Zd ZedZdZdZdZdS )z PreviewSidePanel.SidePanelTogglezToggle previewz
mobile-altFzmod+pN)r&   r'   r(   r   r*   r+   r,   r.   r   r   r   r   r/   Y  s
    r/   previewPreviewz,wagtailadmin/shared/side_panels/preview.htmli  c                   s   t  || || _d S r   )r;   r   preview_url)r   r0   r1   r   r?   r   r   r   d  s   
zPreviewSidePanel.__init__c                 C   s,   t tdrtdt tjsdS ttddS )NWAGTAIL_AUTO_UPDATE_PREVIEWz`WAGTAIL_AUTO_UPDATE_PREVIEW` is deprecated. Set `WAGTAIL_AUTO_UPDATE_PREVIEW_INTERVAL = 0` to disable auto-update for previews.r   $WAGTAIL_AUTO_UPDATE_PREVIEW_INTERVALi  )hasattrr   warningswarnr   r   getattrrn   r   r   r   auto_update_intervalh  s   
z%PreviewSidePanel.auto_update_intervalc                    s8   t  |}| j|d< t| jjdk|d< | j|d< |S )Nr   rp   has_multiple_modesr   )r;   r%   r   r<   r0   preview_modesr   r6   r?   r   r   r%   v  s
   

z!PreviewSidePanel.get_context_data)r&   r'   r(   r   r/   rx   r   ry   r)   rz   r   propertyr   r%   rA   r   r   r?   r   r   X  s    
r   )r   django.confr   django.urlsr   django.utils.textr   django.utils.translationr   r   wagtail.admin.ui.componentsr   wagtail.admin.userbarr   r	   wagtail.modelsr
   r   r   r   wagtail.utils.deprecationr   r   r7   r{   r   r   r   r   r   r   r   <module>   s     & >=