o
    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   s:   | j dkrtdtdtj d d|S | jdi |S )N
collectionr   )labelquerysetempty_label )namer   _r   objectsall	formfield)db_fieldkwargsr   r   W/var/www/html/ndineBlogger/venv/lib/python3.10/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)changed_datar    _set_document_file_metadatar"   storagedeleter   r   savesearch_index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   	FileInputwidgetsr   r   r   r   Meta>   s    r5   c                 C   s   | j d }t| |S )Nr/   )cleaned_datar	   )r#   r/   r   r   r   
clean_tagsA   s   
zBaseDocumentForm.clean_tags)T)
r0   r1   r2   documents_permission_policyr   r   r,   r5   r7   __classcell__r   r   r%   r   r   #   s    r   c                  C   s0   t tdd} | rddlm} || }|S t}|S )NWAGTAILDOCS_DOCUMENT_FORM_BASE r   )import_string)getattrr   django.utils.module_loadingr<   r   )base_form_overrider<   	base_formr   r   r   get_document_base_formG   s   rA   c                 C   sr   | j }d|vrt|dg }t }d }|jjdtkr0| jdj}|jj	 }t|d|d< t
| |||tdS )Nr   r/   	tag_modelformfieldsr4   formfield_callback)admin_form_fieldslistrA   _metar4   getr
   	get_fieldrelated_modelcopyr   r   modelrF   BaseFormr4   rC   r   r   r   get_document_formR   s    rR   c                 C   sx   dd | j D }d|vr|d t }d }|jjdtkr3| 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/   rB   rD   )rH   appendrA   rJ   r4   rK   r
   rL   rM   rN   r   r   rO   r   r   r   get_document_multi_formp   s    
rW   add_documentAddzAdd/edit documents you ownchange_documentEditzEdit any documentchoose_documentChoosezSelect documents in chooserszBwagtaildocs/permissions/includes/document_permissions_formset.htmlN)!djangor   django.confr   django.forms.modelsr   django.utils.translationr   r   wagtail.admin.forms.collectionsr   r   r   wagtail.admin.forms.tagsr	   wagtail.admin.widgetsr
   wagtail.documents.modelsr   wagtail.documents.permissionsr   r8   wagtail.modelsr   wagtail.searchr   r-   r   r   rA   rR   rW   GroupDocumentPermissionFormSetr   r   r   r   <module>   s0    $