a
    Dg                     @   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   s:   | j dkr*tf tdtj d d|S | jf i |S )N
collectionr   )labelZquerysetZempty_label)namer   _r   ZobjectsallZ	formfield)Zdb_fieldkwargs r   V/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/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|i | | 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 v r| j  |r@d| j v 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_loadingr0   r   )Zbase_form_overrider0   Z	base_formr   r   r   get_document_base_formG   s    
r2   c                 C   sr   | j }d|v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listr2   _metar*   getr
   	get_fieldrelated_modelcopyr   r   modelr7   ZBaseFormr*   r4   r   r   r   get_document_formR   s     rA   c                 C   sx   dd | j D }d|v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       z+get_document_multi_form.<locals>.<listcomp>r   r&   r3   r5   )r8   appendr2   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)!Z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   r2   rA   rG   ZGroupDocumentPermissionFormSetr   r   r   r   <module>   s.   $