U
    {h5                     @   s   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
 d dlmZ d dlmZmZmZ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 )    )reverse)capfirst)gettext_lazyngettext)hooks)	Component)AccessibilityItem)DraftStateMixinLockableMixinPageReferenceIndexc                   @   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   d/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/admin/ui/side_panels.py__init__   s    z&BaseSidePanel.SidePanelToggle.__init__c                    s:   dddh} fdd|D }| |d< | j |d< d|d	< |S )
NZnav_icon_button_classesZnav_icon_classesZ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   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,   
issubclassr.   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   r3   	__class__r   r   r    7   s    
z0StatusSidePanel.SidePanelToggle.get_context_data)	r!   r"   r#   r   r%   r&   r(   r    __classcell__r   r   r:   r   r*   2   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                   sP   t  j|	|
 || _|| _|| _|| _|| _|| _|| _|| _	t
| jt| _d S r   )r6   r   r@   rA   rB   rC   rD   rE   rF   rG   
isinstancer+   r
   locking_enabled)r   r@   rA   rB   rC   rD   rE   rF   rG   argskwargsr:   r   r   r   D   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)rC   appendr+   pkrI   rE   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)rP   schedule_has_errorsr@   draft_go_live_atdraft_expire_atscheduled_go_live_atscheduled_expire_atlive_expire_atr   rQ   rR   rS   rT   rU   rV   Zhas_live_publishing_scheduleZhas_draft_publishing_schedule)rH   r+   r	   r@   r   r    rM   Zhas_unpublished_changesr4   r5   rB   rA   Zexpiredboolanyr1   r   r   r    get_scheduled_publishing_contextq   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)lockrZ   r[   lock_context)r\   rI   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_countrE   )r   Zget_grouped_references_tor+   r   rE   )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 )
NrC   rD      Ztranslations_total
model_namebase_model_namerF   status_templatesrG   )r6   r    rC   rD   r7   r   r.   _metaverbose_namerF   rO   rG   updaterY   r_   r+   rM   rE   ra   r1   r:   r   r   r       s    



z StatusSidePanel.get_context_data)r!   r"   r#   r   r*   namer   titler$   orderr   rO   rY   r_   ra   r    r<   r   r   r:   r   r2   1   s&   Sr2   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                    sZ   t  j|| | jjrVtd| jjfd| _| j| jj}|	 rVtd| jjfd| _
d S )Nzwagtailadmin_pages:usagerJ   zwagtailadmin_pages:history)r6   r   r+   rM   r   rE   Zpermissions_for_userr,   r^   Zcan_view_revisionsrF   )r   rJ   rK   Zpermissionsr:   r   r   r      s    zPageStatusSidePanel.__init__c                    s   t  |}|dd |S )Nz<wagtailadmin/shared/side_panels/includes/status/privacy.html)r6   rO   insertrN   r:   r   r   rO      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 timesr`   r   Zusage_url_text)r6   ra   r   )r   r   r:   r   r   ra     s    

z%PageStatusSidePanel.get_usage_contextc              	      s~   t  |}| j}|jrP|td|jfddtd|jfdtd|jfdd || j tj	j
| j | |d |S )Nz#wagtailadmin_pages:workflow_historyrm   z$wagtailadmin_pages:revisions_comparezwagtailadmin_pages:lockzwagtailadmin_pages:unlock)Zworkflow_history_urlZrevisions_compare_url_nameZlock_urlZ
unlock_url)rc   rd   Zmodel_descriptionre   )r6   r    r+   idrh   r   r.   Zget_verbose_namer   rf   rg   Zget_page_descriptionrO   )r   r   r   r/   r:   r   r   r      s*     	z$PageStatusSidePanel.get_context_data)r!   r"   r#   r   rO   ra   r    r<   r   r   r:   r   rl      s   	rl   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 )Nr3   )r6   r    r   r1   r:   r   r   r    1  s    z"CommentsSidePanel.get_context_data)r!   r"   r#   r   r*   ri   r   rj   r$   rk   r    r<   r   r   r:   r   rq   '  s   rq   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 checksglassesNrs   r   r   r   r   r*   8  s   r*   ZchecksZChecksz+wagtailadmin/shared/side_panels/checks.htmli^  c                 C   sL   t  g}tdD ]}|| j| q|D ]}t|t r(|| j  S q(d S )NZconstruct_wagtail_userbar)r   r   Z	get_hooksr,   rH   get_axe_configuration)r   Zuserbar_itemsfnitemr   r   r   rw   A  s    
z%ChecksSidePanel.get_axe_configurationc                    s   t  |}|  |d< |S )NZaxe_configuration)r6   r    rw   r1   r:   r   r   r    K  s    z ChecksSidePanel.get_context_data)r!   r"   r#   r   r*   ri   r   rj   r$   rk   rw   r    r<   r   r   r:   r   ru   7  s   
ru   c                       sN   e Zd ZG dd dejZdZedZdZdZ	 f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*   R  s   r*   previewZPreviewz,wagtailadmin/shared/side_panels/preview.htmli  c                   s   t  || || _d S r   )r6   r   preview_url)r   r+   r,   r|   r:   r   r   r   ]  s    zPreviewSidePanel.__init__c                    s.   t  |}| j|d< t| jjdk|d< |S )Nr|   rb   Zhas_multiple_modes)r6   r    r|   r7   r+   Zpreview_modesr1   r:   r   r   r    a  s    
z!PreviewSidePanel.get_context_data)r!   r"   r#   r   r*   ri   r   rj   r$   rk   r   r    r<   r   r   r:   r   rz   Q  s   rz   N)Zdjango.urlsr   Zdjango.utils.textr   Zdjango.utils.translationr   r   Zwagtailr   Zwagtail.admin.ui.componentsr   Zwagtail.admin.userbarr   Zwagtail.modelsr	   r
   r   r   r   r2   rl   rq   ru   rz   r   r   r   r   <module>   s   & >9