U
    {hF                     @   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
mZ G dd dejZG dd	 d	ejZee
eed
d
d dZG dd deZdS )    )forms)inlineformset_factory)gettext_lazy)AdminPageChooser)QuerySearchPromotionc                   @   s$   e Zd ZejededddZdS )	QueryFormzSearch term(s)/phrasezEnter the full search string to match. An exact match is required for your Promoted Results to be displayed, wildcards are NOT allowed.T)label	help_textrequiredN)__name__
__module____qualname__r   Z	CharField_Zquery_string r   r   o/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/contrib/search_promotions/forms.pyr   	   s   r   c                       s6   e Zd ZejddZ fddZG dd dZ  ZS )SearchPromotionFormF)r   c                    s    t  j|| t | jd _d S )Npage)super__init__r   fieldswidget)selfargskwargs	__class__r   r   r      s    zSearchPromotionForm.__init__c                   @   s(   e Zd ZeZdZdejddidiZdS )zSearchPromotionForm.Meta)queryr   external_link_urlexternal_link_textdescriptionr    rows   )attrsN)	r   r   r   r   modelr   r   ZTextareaZwidgetsr   r   r   r   Meta   s
   	 r%   )	r   r   r   r   ZIntegerFieldZ
sort_orderr   r%   __classcell__r   r   r   r   r      s   r   T)formZ	can_order
can_deleteextrac                       s0   e Zd ZdZedZ fddZdd Z  ZS )SearchPromotionsFormSet   z@Please specify at least one recommendation for this search term.c                    s@   t  j|f|| t |jd _t |jd _|jd= d S )NDELETEZORDERr   )r   
add_fieldsr   ZHiddenInputr   r   )r   r'   r   r   r   r   r   r-   ;   s    z"SearchPromotionsFormSet.add_fieldsc                 C   s   |   }d}td|   D ]}| j| }|jd }|jd }|jd }|d krv|rf|stttdqttdn|rttd| jr| |r|d8 }|jj	d kr|
 r|d7 }q|| jk s|| jk rt| jd S )	Nr   r   r   r   zGYou must enter an external link text if you enter an external link URL.z.You must recommend a page OR an external link.z4Please only select a page OR enter an external link.r+   )Ztotal_form_countranger   Zcleaned_dataZValidationErrorr   r(   Z_should_delete_forminstanceidZhas_changedminimum_formsminimum_forms_message)r   Znon_deleted_formsZnon_empty_formsir'   r   r   r   r   r   r   cleanE   s>    




zSearchPromotionsFormSet.clean)	r   r   r   r1   r   r2   r-   r4   r&   r   r   r   r   r*   5   s   
r*   N)djangor   Zdjango.forms.modelsr   Zdjango.utils.translationr   r   Zwagtail.admin.widgetsr   Z(wagtail.contrib.search_promotions.modelsr   r   ZFormr   Z	ModelFormr   ZSearchPromotionsFormSetBaser*   r   r   r   r   <module>   s   
