U
    {h                     @   sD  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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 d dlmZ d dlmZ d dlmZ  dd Z!G dd deZ"dd Z#dd Z$dd Z%G dd dej&Z'G dd dej&Z(eede
de
dfd e
d!e
d"fd#e
d$e
d%fgd&Z)d'S )(    )forms)settings)modelform_factory)capfirst)gettext)BaseCollectionMemberFormCollectionChoiceField,collection_member_permission_formset_factory)validate_tag_length)AdminTagWidget)WagtailImageField)get_image_formats)Image)permission_policy)
Collection)indexc                 K   sX   | j dkr"tf dt| ji|S | j dkrLtf tdtj d d|S | j	f |S )Nfilelabel
collectionr   )r   ZquerysetZempty_label)
namer   r   Zverbose_namer   _r   objectsallZ	formfield)Zdb_fieldkwargs r   \/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/images/forms.pyformfield_for_dbfield   s    

r   c                       sD   e Zd ZeZ fddZd
 fdd	ZG dd dZdd	 Z  Z	S )BaseImageFormc                    s   t  j|| | jj| _d S )N)super__init__instancer   original_file)selfargsr   	__class__r   r   r   *   s    zBaseImageForm.__init__Tc                    sj   d| j kr| j  t j|d |rdd| j krX| jrX| jj| jj | jj	
   t| j | jS )Nr   )commit)Zchanged_datar    Z_set_image_file_metadatar   saver!   Zstoragedeleter   Z
renditionsr   search_indexZinsert_or_update_object)r"   r&   r$   r   r   r'   .   s    

zBaseImageForm.savec                   @   sR   e Zd Zee ejddidejddidejddidejddiddZdS )	zBaseImageForm.Metaclassfocal_point_x)attrsfocal_point_yfocal_point_widthfocal_point_height)tagsr   r+   r-   r.   r/   N)__name__
__module____qualname__r   r   Z	FileInputZHiddenInputwidgetsr   r   r   r   MetaA   s   r5   c                 C   s   | j d }t| |S )Nr0   )cleaned_datar
   )r"   r0   r   r   r   
clean_tagsR   s    
zBaseImageForm.clean_tags)T)
r1   r2   r3   images_permission_policyr   r   r'   r5   r7   __classcell__r   r   r$   r   r   '   s
   r   c                  C   s.   t tdd} | r&ddlm} || }nt}|S )NZWAGTAILIMAGES_IMAGE_FORM_BASE r   )import_string)getattrr   Zdjango.utils.module_loadingr;   r   )Zbase_form_overrider;   Z	base_formr   r   r   get_image_base_formX   s    
r=   c                 C   sr   | j }d|krt|dg }t }d }|jjdtkr`| jdj}|jj	 }t|d|d< t
| |||tdS )Nr   r0   )	tag_model)formfieldsr4   Zformfield_callback)Zadmin_form_fieldslistr=   _metar4   getr   	get_fieldZrelated_modelcopyr   r   )modelr@   ZBaseFormr4   r>   r   r   r   get_image_formc   s     rG   c                    s"   t  G  fddd }|S )Nc                       s"   e Zd ZG fddd jZdS )z+get_image_multi_form.<locals>.ImageEditFormc                       s   e Zd Z ZdZdS )z0get_image_multi_form.<locals>.ImageEditForm.Meta)r   r+   r-   r.   r/   N)r1   r2   r3   rF   excluder   )model_classr   r   r5      s   r5   N)r1   r2   r3   r5   r   Z	ImageFormrI   r   r   ImageEditForm   s   rK   )rG   )rI   rK   r   rJ   r   get_image_multi_form   s    rL   c                   @   s^   e Zd ZdZejeddd e D ejdZ	ej
deddZejded	dZd
d ZdS )ImageInsertionFormzo
    Form for selecting parameters of the image (e.g. format) prior to insertion
    into a rich text area
    ZFormatc                 C   s   g | ]}|j |jfqS r   )r   r   ).0formatr   r   r   
<listcomp>   s     zImageInsertionForm.<listcomp>)r   choicesZwidgetFzImage is decorative)requiredr   zAlt textc                 C   s8   | j d }| j d }|rdS |s4td}| d| |S )Nalt_textimage_is_decorativer:   z@Please add some alt text for your image or mark it as decorative)r6   r   Z	add_error)r"   rS   rT   msgr   r   r   clean_alt_text   s    

z!ImageInsertionForm.clean_alt_textN)r1   r2   r3   __doc__r   ChoiceFieldr   r   ZRadioSelectrO   ZBooleanFieldrT   Z	CharFieldrS   rV   r   r   r   r   rM      s    rM   c                
   @   s   e Zd Zejeddedfdedfdedfded	fd
edfdedffdZejedddZejedddZ	ejeddddZ
dS )URLGeneratorFormFilteroriginalzOriginal sizewidthzResize to widthheightzResize to heightminzResize to minmaxzResize to maxfillzResize to fill)r   rQ   ZWidthr   )r   	min_valueZHeightZ	Closeness)r   ra   initialN)r1   r2   r3   r   rX   r   Zfilter_methodZIntegerFieldr\   r]   Z	closenessr   r   r   r   rY      s   





rY   Z	add_imageAddzAdd/edit images you ownZchange_imageZEditzEdit any imageZchoose_imageZChoosezSelect images in chooserszAwagtailimages/permissions/includes/image_permissions_formset.htmlN)*djangor   Zdjango.confr   Zdjango.forms.modelsr   Zdjango.utils.textr   Zdjango.utils.translationr   r   Zwagtail.admin.forms.collectionsr   r   r	   Zwagtail.admin.forms.tagsr
   Zwagtail.admin.widgetsr   Zwagtail.images.fieldsr   Zwagtail.images.formatsr   Zwagtail.images.modelsr   Zwagtail.images.permissionsr   r8   Zwagtail.modelsr   Zwagtail.searchr   r)   r   r   r=   rG   rL   ZFormrM   rY   ZGroupImagePermissionFormSetr   r   r   r   <module>   s8   1!