o
    hx                     @   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d ZG 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requiredc                 C   s   d S )N )selfr   r   g/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/contrib/search_promotions/forms.pyclean   s   zQueryForm.cleanc                   @   s   e Zd ZeZdgZdS )zQueryForm.Metaquery_stringN)__name__
__module____qualname__r   modelfieldsr   r   r   r   Meta   s    
r   N)	r   r   r   r   	CharField_r   r   r   r   r   r   r   r   	   s    
r   c                       sB   e Zd ZejddZ fddZ fddZG dd dZ  Z	S )	SearchPromotionFormF)r   c                    s$   t  j|i | t | jd _d S )Npage)super__init__r   r   widget)r   argskwargs	__class__r   r   r   #   s   zSearchPromotionForm.__init__c                    s   t   }| d  }| d  }| d  }|d u r9|r,|s*| dttd |S | d ttd |S |rF| d ttd |S )Nr   external_link_urlexternal_link_textzGYou 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   r   value	add_errorr   ValidationErrorr   )r   cleaned_datar   r"   r#   r    r   r   r   '   s>   
zSearchPromotionForm.cleanc                   @   s(   e Zd ZeZdZdejddidiZdS )zSearchPromotionForm.Meta)queryr   r"   r#   descriptionr)   rows   )attrsN)	r   r   r   r   r   r   r   Textareawidgetsr   r   r   r   r   R   s
    	r   )
r   r   r   r   IntegerField
sort_orderr   r   r   __classcell__r   r   r    r   r       s
    +r   T)form	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                    sF   t  j|g|R i | t |jd _t |jd _|jd= d S )NDELETEORDERr(   )r   
add_fieldsr   HiddenInputr   r   )r   r2   r   r   r    r   r   r:   q   s   z"SearchPromotionsFormSet.add_fieldsc                 C   s   |   }d}td|   D ]!}| j| }| jr | |r |d8 }|jjd u r*| r.|d7 }q|| jk s9|| jk r?t	| j
d S )Nr   r7   )total_form_countranger   r4   _should_delete_forminstanceidhas_changedminimum_formsr&   minimum_forms_message)r   non_deleted_formsnon_empty_formsir2   r   r   r   r   {   s   


zSearchPromotionsFormSet.clean)	r   r   r   rB   r   rC   r:   r   r1   r   r   r    r   r6   k   s    
r6   N)djangor   django.forms.modelsr   django.utils.translationr   r   wagtail.admin.widgetsr   (wagtail.contrib.search_promotions.modelsr   r   	ModelFormr   r   SearchPromotionsFormSetBaser6   r   r   r   r   <module>   s     A
