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
 d dlmZ d dlmZmZmZ d dlmZmZmZmZmZmZmZ d d	lmZ d d
lmZmZ d dlmZ d dl m!Z!m"Z" d dl#m$Z$ G dd deZ%G dd deZ&G dd deZ'G dd deZ(G dd de(e&e'Z)G dd dee&e'Z*G dd dee%e
Z+G dd dee&e%e
Z,G dd deZ-G d d! d!eZ.G d"d# d#eZ/G d$d% d%eZ0e0d&e" d'd(Z1d)S )*    )forms)cached_property)format_html)gettext_lazy)View)versioned_static)Column
DateColumnDownloadColumn)BaseChooseViewChooseResultsViewMixinChooseViewMixinChosenResponseMixinChosenViewMixinCreateViewMixinCreationFormMixin)ChooserViewSet)BaseChooserBaseChooserAdapter)ChooserBlock)get_document_modelget_document_model_string)permission_policyc                       s   e Zd Z fddZ  ZS )DocumentChosenResponseMixinc                    s$   t  |}||j|jd |S )N)urlfilename)superget_chosen_response_dataupdater   r   )selfdocumentZresponse_data	__class__ ^/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/documents/views/chooser.pyr      s    z4DocumentChosenResponseMixin.get_chosen_response_data)__name__
__module____qualname__r   __classcell__r#   r#   r!   r$   r      s   r   c                       s(   e Zd ZdZdd Z fddZ  ZS )DocumentCreationFormMixinuploadc                 C   s   ddl m} || jS )Nr   )get_document_form)Zwagtail.documents.formsr+   model)r   r+   r#   r#   r$   get_creation_form_class(   s    z1DocumentCreationFormMixin.get_creation_form_classc                    sB   t   }|| jjdd | jjdv r>| j| jjd|d< |S )Nzdocument-chooser-upload)userprefix)POSTPUT)Zuploaded_by_userinstance)r   get_creation_form_kwargsr   requestr.   methodr,   r   kwargsr!   r#   r$   r3   -   s    
z2DocumentCreationFormMixin.get_creation_form_kwargs)r%   r&   r'   Zcreation_tab_idr-   r3   r(   r#   r#   r!   r$   r)   %   s   r)   c                       sX   e Zd ZdZdZdZdZdd Zdd Ze	d	d
 Z
e fddZ fddZ  ZS )BaseDocumentChooseViewz wagtaildocs/chooser/results.html
   z-created_atZ#construct_document_chooser_querysetc                 C   s   | j | jjdgS )Nchoose)r   Z%instances_user_has_any_permission_forr4   r.   r   r#   r#   r$   get_object_listA   s    
z&BaseDocumentChooseView.get_object_listc                 C   s   |   }|| jj| jdS )N)collections)Zget_filter_form_classr4   GETr=   )r   Z
FilterFormr#   r#   r$   get_filter_formF   s    z&BaseDocumentChooseView.get_filter_formc                 C   s&   | j | jjd}t|dk r"d S |S )Nr:      )r   Z#collections_user_has_permission_forr4   r.   len)r   r=   r#   r#   r$   r=   J   s    z"BaseDocumentChooseView.collectionsc                    sL   t  jtdtddtdtdddg }| jrH|dtd	td
d |S )Nr   File)labelZ
created_atCreatedz16%)rC   widthr@   Z
collection
Collection)r   columnsr
   _r	   r=   insertr   )r   rG   r!   r#   r$   rG   T   s    zBaseDocumentChooseView.columnsc                    s   t  | _t |S Nr   r,   r   get)r   r4   r!   r#   r$   rL   `   s    zBaseDocumentChooseView.get)r%   r&   r'   Zresults_template_nameZper_pageZorderingZconstruct_queryset_hook_namer<   r?   r   r=   propertyrG   rL   r(   r#   r#   r!   r$   r8   ;   s   
	r8   c                       s   e Zd Z fddZ  ZS )DocumentChooseViewMixinc                    s    t  jf i |}| j|d< |S )Nr=   )r   get_context_datar=   )r   r7   contextr!   r#   r$   rO   f   s    
z(DocumentChooseViewMixin.get_context_data)r%   r&   r'   rO   r(   r#   r#   r!   r$   rN   e   s   rN   c                   @   s   e Zd ZdS )DocumentChooseViewNr%   r&   r'   r#   r#   r#   r$   rQ   l   s   rQ   c                   @   s   e Zd ZdS )DocumentChooseResultsViewNrR   r#   r#   r#   r$   rS   r   s   rS   c                       s   e Zd Z fddZ  ZS )DocumentChosenViewc                   s&   t  | _t j|g||R i |S rJ   rK   )r   r4   pkargsr7   r!   r#   r$   rL   y   s    zDocumentChosenView.get)r%   r&   r'   rL   r(   r#   r#   r!   r$   rT   x   s   rT   c                       s   e Zd Z fddZ  ZS )DocumentChooserUploadViewc                    s"   t  | _t j|g|R i |S rJ   )r   r,   r   dispatch)r   r4   rV   r7   r!   r#   r$   rX      s    z"DocumentChooserUploadView.dispatch)r%   r&   r'   rX   r(   r#   r#   r!   r$   rW   ~   s   rW   c                       s0   e Zd ZdZdZ fddZedd Z  ZS )BaseAdminDocumentChooserzdocument-chooserZDocumentChooserc                    s   t  jf i | t | _d S rJ   )r   __init__r   r,   r6   r!   r#   r$   rZ      s    z!BaseAdminDocumentChooser.__init__c                 C   s   t jtdtdtdgdS )N(wagtaildocs/js/document-chooser-modal.jsz"wagtaildocs/js/document-chooser.js+wagtaildocs/js/document-chooser-telepath.jsZjsr   ZMediar   r;   r#   r#   r$   media   s    zBaseAdminDocumentChooser.media)	r%   r&   r'   	classnamejs_constructorrZ   rM   r_   r(   r#   r#   r!   r$   rY      s
   rY   c                   @   s   e Zd ZdZedd ZdS )DocumentChooserAdapterz)wagtail.documents.widgets.DocumentChooserc                 C   s   t jtdtdgdS )Nr[   r\   r]   r^   r;   r#   r#   r$   r_      s
    zDocumentChooserAdapter.mediaN)r%   r&   r'   ra   r   r_   r#   r#   r#   r$   rb      s   rb   c                   @   s   e Zd ZdddZdS )BaseDocumentChooserBlockNc                 C   s   |rt d|j|jS dS d S )Nz<a href="{0}">{1}</a> )r   r   title)r   valuerP   r#   r#   r$   render_basic   s    z%BaseDocumentChooserBlock.render_basic)N)r%   r&   r'   rg   r#   r#   r#   r$   rc      s   rc   c                   @   sX   e Zd ZeZeZeZe	Z
eZeZeZeZdZedZedZedZedZedZdS )DocumentChooserViewSetzdoc-full-inversezChoose a documentZUploadu   Uploading…zChoose another documentzEdit this documentN)r%   r&   r'   rQ   Zchoose_view_classrS   Zchoose_results_view_classrT   Zchosen_view_classrW   Zcreate_view_classrY   Zbase_widget_classrb   Zwidget_telepath_adapter_classrc   Zbase_block_classr   ZiconrH   Zchoose_one_textZcreate_action_labelZcreate_action_clicked_labelZchoose_another_textZedit_item_textr#   r#   r#   r$   rh      s   rh   Zwagtaildocs_chooserzdocuments/chooser)r,   Z
url_prefixN)2Zdjangor   Zdjango.utils.functionalr   Zdjango.utils.htmlr   Zdjango.utils.translationr   rH   Zdjango.views.generic.baser   Zwagtail.admin.staticfilesr   Zwagtail.admin.ui.tablesr   r	   r
   Z#wagtail.admin.views.generic.chooserr   r   r   r   r   r   r   Zwagtail.admin.viewsets.chooserr   Zwagtail.admin.widgetsr   r   Zwagtail.blocksr   Zwagtail.documentsr   r   Zwagtail.documents.permissionsr   r   r)   r8   rN   rQ   rS   rT   rW   rY   rb   rc   rh   Zviewsetr#   r#   r#   r$   <module>   sF   $	*


