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
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 ZG dd de
Zdd Zdd Zdd 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)gettext_lazy)BaseCollectionMemberFormCollectionChoiceField,collection_member_permission_formset_factory)validate_tag_length)AdminTagWidget)Document)permission_policy)
Collection)indexc                 K   s6   | j dkr*tf tdtj d d|S | jf |S )N
collectionr   )labelZquerysetZempty_label)namer   _r   objectsallZ	formfield)Zdb_fieldkwargs r   _/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/documents/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 )BaseDocumentFormc                    s   t  j|| | jj| _d S )N)super__init__instancefileoriginal_file)selfargsr   	__class__r   r   r   &   s    zBaseDocumentForm.__init__Tc                    sd   d| j kr| j  |r@d| j kr@| jr@| jj| jj d | _t j|d |r^t	
| j | jS )Nr   )commit)Zchanged_datar   Z_set_document_file_metadatar   Zstoragedeleter   r   savesearch_indexZinsert_or_update_object)r   r#   r!   r   r   r%   *   s    

zBaseDocumentForm.savec                   @   s   e Zd Zee dZdS )zBaseDocumentForm.Meta)tagsr   N)__name__
__module____qualname__r
   r   Z	FileInputwidgetsr   r   r   r   Meta>   s   r,   c                 C   s   | j d }t| |S )Nr'   )Zcleaned_datar	   )r   r'   r   r   r   
clean_tagsA   s    
zBaseDocumentForm.clean_tags)T)
r(   r)   r*   documents_permission_policyr   r   r%   r,   r-   __classcell__r   r   r!   r   r   #   s
   r   c                  C   s.   t tdd} | r&ddlm} || }nt}|S )NZWAGTAILDOCS_DOCUMENT_FORM_BASE r   )import_string)getattrr   Zdjango.utils.module_loadingr1   r   )Zbase_form_overrider1   Z	base_formr   r   r   get_document_base_formG   s    
r3   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   r'   	tag_modelformfieldsr+   Zformfield_callback)admin_form_fieldslistr3   _metar+   getr
   	get_fieldrelated_modelcopyr   r   modelr8   ZBaseFormr+   r5   r   r   r   get_document_formR   s     rB   c                 C   sx   dd | j D }d|kr"|d t }d }|jjdtkrf| jdj}|jj	 }t|d|d< t
| |||tdS )Nc                 S   s   g | ]}|d kr|qS )r   r   ).0fieldr   r   r   
<listcomp>t   s      z+get_document_multi_form.<locals>.<listcomp>r   r'   r4   r6   )r9   appendr3   r;   r+   r<   r
   r=   r>   r?   r   r   r@   r   r   r   get_document_multi_formp   s     
rG   Zadd_documentAddzAdd/edit documents you ownZchange_documentZEditzEdit any documentZchoose_documentZChoosezSelect documents in chooserszBwagtaildocs/permissions/includes/document_permissions_formset.htmlN)!djangor   Zdjango.confr   Zdjango.forms.modelsr   Zdjango.utils.translationr   r   Zwagtail.admin.forms.collectionsr   r   r   Zwagtail.admin.forms.tagsr	   Zwagtail.admin.widgetsr
   Zwagtail.documents.modelsr   Zwagtail.documents.permissionsr   r.   Zwagtail.modelsr   Zwagtail.searchr   r&   r   r   r3   rB   rG   ZGroupDocumentPermissionFormSetr   r   r   r   <module>   s.   $