U
    {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mZ ddlmZ dd	lmZ G d
d dejZG dd deZG dd deZG dd dejZG dd dejZdS )    )forms)settings)gettext)ngettext)widgets)PagePageViewRestriction   )WagtailAdminModelForm)BaseViewRestrictionFormc                       s(   e Zd Z fddZ fddZ  ZS )CopyFormc           
         s  | d| _| dd | _| d}t j|| tj| jjtdd| j	d< t
tdd}tj| jjtd	|tjd
| j	d< tj| j tj tjdddtdtdd| j	d< | jjdd}| d }|dkrtjddtdtdd|d|i d| j	d< |r|  }|dkrp|dkr<td}td}	ntd}tdd |d|i }	tjdd||	d| j	d!< tjddtd"td#d| j	d$< d S )%Npageusercan_publishz	New title)initiallabelZ	new_titleZWAGTAIL_ALLOW_UNICODE_SLUGSTzNew slug)r   r   allow_unicodewidgetnew_slugZcopy_to)can_choose_root
user_permsNew parent pagez4This copy will be a child of this given parent page.r   querysetr   r   	help_textnew_parent_page)Z	inclusiver	   r   FzCopy subpagesz!This will copy %(count)s subpage.z"This will copy %(count)s subpages.count)requiredr   r   r   copy_subpageszPublish copied pagez>This page is live. Would you like to publish its copy as well?zPublish copieszP%(count)s of the pages being copied is live. Would you like to publish its copy?zU%(count)s of the pages being copied are live. Would you like to publish their copies?Zpublish_copiesZAliasz.Keep the new pages updated with future changesalias)popr   r   super__init__r   Z	CharFieldtitle_fieldsgetattrr   Z	SlugFieldslugr   Z	SlugInputModelChoiceField
get_parentr   objectsallAdminPageChooserZget_descendantsr   BooleanFieldr   live)
selfargskwargsr   r   Zpages_to_copyZsubpage_countZpages_to_publish_countr   r   	__class__ a/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/admin/forms/pages.pyr"      s    
 


   zCopyForm.__init__c                    s   t   }|d}|dp&| j }|| j s\| t	dd|j
 i g| jd< |r| j|d r| t	dd|i g| jd< |d= |dr| j|ks|| jr| t	d	g| jd< |S )
Nr   r   z;You do not have permission to copy to page "%(page_title)s"
page_title)r'   zYThis slug is already in use within the context of its parent page "%(parent_page_title)s"Zparent_page_titler   z8You cannot copy a page into itself when copying subpages)r!   cleangetr   r)   permissions_for_userr   can_add_subpageZerror_classr$   specific_deferredget_admin_display_title_errorsZget_childrenfilterr   Zis_descendant_of)r/   cleaned_datar'   parent_pager2   r4   r5   r7   R   s>    

 


	


zCopyForm.clean)__name__
__module____qualname__r"   r7   __classcell__r4   r4   r2   r5   r      s   Dr   c                       s*   e Zd Z fddZG dd dZ  ZS )PageViewRestrictionFormc                    st   | dg  t j|| ttdi ddsNdd tjD | jd _	| jd=  fd	d| jd j	D | jd _	d S )
Nprivate_page_optionsZWAGTAIL_PRIVATE_PAGE_OPTIONSZSHARED_PASSWORDTc                 S   s   g | ]}|d  t jkr|qS r   )r   ZPASSWORD.0choicer4   r4   r5   
<listcomp>   s   z4PageViewRestrictionForm.__init__.<locals>.<listcomp>restriction_typepasswordc                    s*   g | ]"}|d   ks"|d  t jkr|qS rG   )r   NONErH   rF   r4   r5   rK      s   )
r    r!   r"   r&   r   r8   r   ZRESTRICTION_CHOICESr%   choicesr/   r0   r1   r2   rO   r5   r"      s     

z PageViewRestrictionForm.__init__c                   @   s   e Zd ZeZdZdS )zPageViewRestrictionForm.Meta)rL   rM   groupsN)rA   rB   rC   r   modelr%   r4   r4   r4   r5   Meta   s   rT   )rA   rB   rC   r"   rT   rD   r4   r4   r2   r5   rE   ~   s   rE   c                       sb   e Zd Zeje ddZd fdd	Zedd Z	d fd	d
	Z
 fddZ fddZ  ZS )WagtailAdminPageFormF)r   r   Nc                    sX   || _ |di }| j r"|j|d< t j||f|d|i| || _| jsT| jd= d S )Nr   comment_notifications)subscriptionr    rV   r!   r"   r@   show_comments_toggler%   )r/   datafilesr@   rW   r0   r1   r   r2   r4   r5   r"      s    	
zWagtailAdminPageForm.__init__c                 C   s   d| j jkS Ncomments)r3   formsets)r/   r4   r4   r5   rX      s    z)WagtailAdminPageForm.show_comments_toggleTc                    s6   | j r(| jr(| jd | j_|r(| j  t j|dS )NrV   )commit)rX   rW   r?   rV   saver!   )r/   r^   r2   r4   r5   r_      s    
zWagtailAdminPageForm.savec                    s,   | j d}|r"|j s"| j d= t  S r[   )r]   r8   Zmanagement_formis_validr!   )r/   r\   r2   r4   r5   r`      s    zWagtailAdminPageForm.is_validc                    sP   t   }d| jkrL|d }t|| j| jsL| dt	t
dd|i  |S )Nr'   zAThe slug '%(page_slug)s' is already in use within the parent page	page_slug)r!   r7   r?   r   Z_slug_is_availabler@   instanceZ	add_errorr   ValidationErrorr$   )r/   r?   ra   r2   r4   r5   r7      s    


zWagtailAdminPageForm.clean)NNNN)T)rA   rB   rC   r   r-   ZCheckboxInputrV   r"   propertyrX   r_   r`   r7   rD   r4   r4   r2   r5   rU      s        
rU   c                       s   e Zd Z fddZ  ZS )MoveFormc              	      sn   | d| _| d| _t j|| tj| j tj	
 tjdd| j| jjgdtdtdd| jd	< d S )
Npage_to_movetarget_parent_modelsTmove_to)r   r   target_modelsZpages_to_mover   z"Select a new parent for this page.r   r   )r    rf   rg   r!   r"   r   r(   r)   r   r*   r+   r   ZAdminPageMoveChooserpkr$   r%   rQ   r2   r4   r5   r"      s    zMoveForm.__init__)rA   rB   rC   r"   rD   r4   r4   r2   r5   re      s   re   c                       s$   e Zd Z fddZdd Z  ZS )ParentChooserFormc                    sV   || _ || _t j|| tjtj t	j
| j  dddtdtdd| jd< d S )NTZadd_subpage)ri   r   r   zParent pagez7The new page will be a child of this given parent page.)r   r   r   r   r@   )child_page_typer   r!   r"   r   r(   r   r*   r+   r   r,   Zallowed_parent_page_modelsr$   r%   )r/   rl   r   r0   r1   r2   r4   r5   r"      s    zParentChooserForm.__init__c                 C   sh   | j d j}|| j s6ttdd| i | j	
|sdttd| j	 | d |S )Nr@   zCYou do not have permission to create a page under "%(page_title)s".r6   zHYou cannot create a page of type "%(page_type)s" under "%(page_title)s".)Z	page_typer6   )r?   r;   r9   r   r:   r   rc   r$   r<   rl   Zcan_create_atZget_verbose_name)r/   r@   r4   r4   r5   clean_parent_page  s$    
	z#ParentChooserForm.clean_parent_page)rA   rB   rC   r"   rm   rD   r4   r4   r2   r5   rk      s   rk   N)djangor   Zdjango.confr   Zdjango.utils.translationr   r$   r   Zwagtail.adminr   Zwagtail.modelsr   r   modelsr
   Zview_restrictionsr   ZFormr   rE   rU   re   rk   r4   r4   r4   r5   <module>   s   qC