a
    Dg8                     @   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/lab.imftr.de/x/nb_venv/lib/python3.9/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>   Znav_icon_counter_classesZnav_icon_classesZnav_icon_button_classesc                    s   i | ]}|  |qS r   )get).0keyparent_contextr   r   
<dictcomp>!       zBBaseSidePanel.SidePanelToggle.get_context_data.<locals>.<dictcomp>toggler   r   countr   )r   r   Z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   r-   r.   r   r   r   r   '   s    zBaseSidePanel.__init__c                 C   s*   | | j | jd}t| jtr&| j |d< |S )N)r   r-   r.   page)r-   r.   
issubclassr0   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!   r5   	__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,   statusZ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   )r8   r   rA   rB   rC   rD   rE   rF   rG   rH   
isinstancer-   r   locking_enabled)r   rA   rB   rC   rD   rE   rF   rG   rH   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)rD   appendr-   pkrJ   rF   r   r!   Z	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 rDd|d< | jjrT| jjrl| jj|d< | jj	|d< | j
r| j
j|d	< | j
j	|d
< |d |d	 krd |d< |d |d
 krd |d< | jr| jj	r| jjs| jj	|d< |d	 r|d	 |d k rd |d< t|d |d< t|d	 |d
 |d |d f|d< |S )Ndraftstate_enabledFT)rQ   schedule_has_errorsrA   draft_go_live_atdraft_expire_atscheduled_go_live_atscheduled_expire_atlive_expire_atr    rR   rS   rT   rU   rV   rW   Zhas_live_publishing_scheduleZhas_draft_publishing_schedule)rI   r-   r
   rA   r   r"   rN   Zhas_unpublished_changesr6   r7   rC   rB   Zexpiredboolanyr3   r   r   r    get_scheduled_publishing_contextt   sX    	z0StatusSidePanel.get_scheduled_publishing_contextc                 C   sP   d | _ i }| jr4| j | _ | j r4| j | jj|}| j |d|d|dS )Nuser_can_lockuser_can_unlock)lockr[   r\   lock_context)r]   rJ   r-   Zget_lockZget_context_for_userr.   userr   )r   r   r^   r   r   r   get_lock_context   s    z StatusSidePanel.get_lock_contextc                 C   s   t | j | jdS )N)usage_countrF   )r   Zget_grouped_references_tor-   r    rF   r   r   r   r   get_usage_context   s
    z!StatusSidePanel.get_usage_contextc                    s   t  |}| j|d< | j|d< | jr8t| jd |d< t| jjj|d< |d |d< | j	|d< | 
||d< | j|d	< || | || | | jjr| jr||   |S )
NrD   rE      Ztranslations_total
model_namebase_model_namerG   status_templatesrH   )r8   r"   rD   rE   r9   r   r0   _metaverbose_namerG   rP   rH   updaterZ   r`   r-   rN   rF   rc   r3   r<   r   r   r"      s    



z StatusSidePanel.get_context_data)r#   r$   r%   r   r,   namer   titler&   orderr   rP   rZ   r`   rc   r"   r>   r   r   r<   r   r4   4   s&   Sr4   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                    sl   | dd | _t j|i | | jjrhtd| jjfd| _| j| j	j
}| rhtd| jjfd| _d S )Nparent_pagezwagtailadmin_pages:usagerK   zwagtailadmin_pages:history)popro   r8   r   r-   rN   r   rF   Zpermissions_for_userr.   r_   Zcan_view_revisionsrG   )r   rK   rL   Zpermissionsr<   r   r   r      s    zPageStatusSidePanel.__init__c                    s   t  |}|dd |S )Nz<wagtailadmin/shared/side_panels/includes/status/privacy.html)r8   rP   insertrO   r<   r   r   rP      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 timesra   r    Zusage_url_text)r8   rc   r   )r   r!   r<   r   r   rc     s    

z%PageStatusSidePanel.get_usage_contextc              	      s   t  |}| j}| jr"| j|d< |jr`|td|jfddtd|jfdtd|jfdd || j t	j
j| j | |d |S )	Nro   z#wagtailadmin_pages:workflow_historyrp   z$wagtailadmin_pages:revisions_comparezwagtailadmin_pages:lockzwagtailadmin_pages:unlock)Zworkflow_history_urlZrevisions_compare_url_nameZlock_urlZ
unlock_url)re   rf   Zmodel_descriptionrg   )r8   r"   r-   ro   idrj   r   r0   Zget_verbose_namer   rh   ri   Zget_page_descriptionrP   )r   r   r!   r1   r<   r   r   r"     s,    
	z$PageStatusSidePanel.get_context_data)r#   r$   r%   r   rP   rc   r"   r>   r   r   r<   r   rn      s   	rn   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                   @   s   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,   /  s   r,   commentsZCommentsz-wagtailadmin/shared/side_panels/comments.htmli,  c                    s   t  |}|d|d< |S )Nr5   )r8   r"   r   r3   r<   r   r   r"   8  s    z"CommentsSidePanel.get_context_data)r#   r$   r%   r   r,   rk   r   rl   r&   rm   r"   r>   r   r   r<   r   ru   .  s   ru   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                   @   s   e Zd ZedZdZdS )zChecksSidePanel.SidePanelTogglezToggle checksZglassesNrw   r   r   r   r   r,   ?  s   r,   ZchecksZChecksz+wagtailadmin/shared/side_panels/checks.htmli^  c                 C   sT   t  g}t| jtr| jnd }t| j|| |D ]}t|t r0|| j  S q0d S r   )	r   r2   r0   r   r-   r	   r.   rI   get_axe_configuration)r   Zuserbar_itemsr1   itemr   r   r   rz   H  s    
z%ChecksSidePanel.get_axe_configurationc                    s   t  |}|  |d< |S )NZaxe_configuration)r8   r"   rz   r3   r<   r   r   r"   R  s    z ChecksSidePanel.get_context_data)r#   r$   r%   r   r,   rk   r   rl   r&   rm   rz   r"   r>   r   r   r<   r   ry   >  s   
ry   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,   previewZPreviewz,wagtailadmin/shared/side_panels/preview.htmli  c                   s   t  || || _d S r   )r8   r   preview_url)r   r-   r.   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   Z$WAGTAIL_AUTO_UPDATE_PREVIEW_INTERVALi  )hasattrr   warningswarnr   r   getattrrb   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~   rd   Zhas_multiple_modesr   )r8   r"   r~   r9   r-   Zpreview_modesr   r3   r<   r   r   r"   v  s
    

z!PreviewSidePanel.get_context_data)r#   r$   r%   r   r,   rk   r   rl   r&   rm   r   propertyr   r"   r>   r   r   r<   r   r|   X  s   
r|   )r   Zdjango.confr   Zdjango.urlsr   Zdjango.utils.textr   Zdjango.utils.translationr   r   Zwagtail.admin.ui.componentsr   Zwagtail.admin.userbarr   r	   Zwagtail.modelsr
   r   r   r   Zwagtail.utils.deprecationr   r   r4   rn   ru   ry   r|   r   r   r   r   <module>   s   & >=