a
    DgT                     @   s  d dl mZ d dlmZ d dlmZ d dl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  m  m  m  mZ d d	lmZ d d
l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'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6m7Z7m8Z8 d dl9m:Z; d dl<m=Z= d dl>m?Z? d dl@mAZA eBddd ZCeBddd ZDG dd  d eZEeBd!d"d# ZFeBd$d%d& ZGG d'd( d(e%ZHeBd)d*d+ ZIG d,d- d-e#ZJeBd.d/d0 ZKeBd1d2d3 ZLeBd4d5d6 ZMeBd7d8d9 ZNG d:d; d;eZOee( eO e6e7e8fD ]ZPeBd<eP qheBd=d>d? ZQdS )@    )warn)settings)TemplateResponse)includepathreversereverse_lazy)add_never_cache_headers)gettextngettext)gettext_lazyN)hooks)ModelAdminURLFinderregister_admin_url_finder)MenuItem)get_site_for_user)
SearchArea)SummaryItem)
admin_urlsget_document_model)DocumentsAdminAPIViewSetGroupDocumentPermissionFormSet)permission_policy)DocumentLinkHandler)&ContentstateDocumentLinkConversionRule)$EditorHTMLDocumentLinkConversionRule)AddTagsBulkActionAddToCollectionBulkActionDeleteBulkAction)viewset)BaseViewRestriction)RemovedInWagtail70Warning)require_wagtail_loginregister_admin_urlsc                   C   s   t dttddgS )Nz
documents/Zwagtaildocs)	namespace)r   r   r    r&   r&   ^/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/documents/wagtail_hooks.pyr$   (   s    construct_admin_apic                 C   s   |  dt d S )N	documents)Zregister_endpointr   )Zrouterr&   r&   r'   r(   /   s    c                   @   s   e Zd Zdd ZdS )DocumentsMenuItemc                 C   s   t |jg dS N)addchangedeleter   user_has_any_permissionuserselfrequestr&   r&   r'   is_shown5   s    
zDocumentsMenuItem.is_shownN__name__
__module____qualname__r5   r&   r&   r&   r'   r*   4   s   r*   Zregister_admin_menu_itemc                   C   s   t tdtdddddS NZ	Documentswagtaildocs:indexr)   doc-full-inversei  )nameZ	icon_nameorder)r*   _r   r&   r&   r&   r'   register_documents_menu_item;   s    r@   Zregister_rich_text_featuresc                 C   sf   |  t | ddtjddtddtdidd	gd
 | ddt | ddt	 | j
d d S )Ndraftailzdocument-linkZDOCUMENTr<   DocumentZdocumentChooserzwagtaildocs_chooser:choose)typeZicondescriptionZchooserUrlsz(wagtaildocs/js/document-chooser-modal.js)ZjsZ
editorhtmlZcontentstate)Zregister_link_typer   Zregister_editor_plugindraftail_featuresZEntityFeaturer
   r   Zregister_converter_ruler   r   Zdefault_featuresappend)featuresr&   r&   r'   register_document_featureF   s*    
rH   c                   @   s$   e Zd ZdZdZdd Zdd ZdS )DocumentsSummaryItemi,  z0wagtaildocs/homepage/site_summary_documents.htmlc                 C   s.   t | jjd }t| jjh d |dS )N	site_name>   r-   r,   chooser.   )Z
total_docsrJ   )r   r4   r1   r   Z%instances_user_has_any_permission_forcount)r3   Zparent_contextrJ   r&   r&   r'   get_context_datah   s    z%DocumentsSummaryItem.get_context_datac                 C   s   t | jjg dS r+   )r   r0   r4   r1   )r3   r&   r&   r'   r5   r   s    zDocumentsSummaryItem.is_shownN)r7   r8   r9   r>   Ztemplate_namerM   r5   r&   r&   r&   r'   rI   d   s   
rI   Z construct_homepage_summary_itemsc                 C   s   | t|  d S N)rF   rI   )r4   itemsr&   r&   r'   add_documents_summary_itemx   s    rP   c                   @   s   e Zd Zdd ZdS )DocsSearchAreac                 C   s   t |jg dS r+   r/   r2   r&   r&   r'   r5   ~   s    
zDocsSearchArea.is_shownNr6   r&   r&   r&   r'   rQ   }   s   rQ   Zregister_admin_search_areac                   C   s   t tdtdddddS r:   )rQ   r?   r   r&   r&   r&   r'   register_documents_search_area   s    rR   Zregister_group_permission_panelc                   C   s   t S rN   r   r&   r&   r&   r'   #register_document_permissions_panel   s    rS   Zdescribe_collection_contentsc                 C   sJ   t  jj| d }|rFtdd| j  }|tdd|d|i |dS d S )N)
collectionr;   z?collection_id=%dz%(count)s documentz%(count)s documentsrL   )rL   Z
count_texturl)r   ZobjectsfilterrL   r   idr   )rT   Z
docs_countrU   r&   r&   r'   describe_collection_docs   s    rX   Zbefore_serve_documentc           	      C   s   | j  D ]}||s
|jtjkrddlm} ||d| id}t	d|j
gd}ttdd}ttd	rtd
td ttd	|}||d}t|||}t| |  S |jtjtjfv r
t| d  S q
dS )a_  
    Check whether there are any view restrictions on this document which are
    not fulfilled by the given request object. If there are, return an
    HttpResponse that will notify the user of that restriction (and possibly
    include a password / login form that will allow them to proceed). If
    there are no such restrictions, return None
    r   )PasswordViewRestrictionFormZ
return_url)instanceinitialZ&wagtaildocs_authenticate_with_password)argsZ&WAGTAILDOCS_PASSWORD_REQUIRED_TEMPLATEz"wagtaildocs/password_required.htmlZ#DOCUMENT_PASSWORD_REQUIRED_TEMPLATEzwThe `DOCUMENT_PASSWORD_REQUIRED_TEMPLATE` setting is deprecated - use `WAGTAILDOCS_PASSWORD_REQUIRED_TEMPLATE` instead.)category)form
action_url)nextN)rT   Zget_view_restrictionsZaccept_requestZrestriction_typer!   ZPASSWORDZwagtail.formsrY   Zget_full_pathr   rW   getattrr   hasattrr   r"   r   r	   ZLOGINZGROUPSr#   )	documentr4   ZrestrictionrY   r^   r_   Zpassword_required_templatecontextresponser&   r&   r'   check_view_restrictions   sJ    	



rf   c                   @   s   e Zd ZdZeZdS )DocumentAdminURLFinderzwagtaildocs:editN)r7   r8   r9   Zedit_url_namer   r&   r&   r&   r'   rg      s   rg   Zregister_bulk_actionZregister_admin_viewsetc                   C   s   t S rN   )chooser_viewsetr&   r&   r&   r'   !register_document_chooser_viewset   s    ri   )Rwarningsr   Zdjango.confr   Zdjango.template.responser   Zdjango.urlsr   r   r   r   Zdjango.utils.cacher	   Zdjango.utils.translationr
   r   r   r?   Z1wagtail.admin.rich_text.editors.draftail.featuresZadminZ	rich_textZeditorsrA   rG   rE   Zwagtailr   Zwagtail.admin.admin_url_finderr   r   Zwagtail.admin.menur   Zwagtail.admin.navigationr   Zwagtail.admin.searchr   Zwagtail.admin.site_summaryr   Zwagtail.documentsr   r   Z!wagtail.documents.api.admin.viewsr   Zwagtail.documents.formsr   Zwagtail.documents.permissionsr   Zwagtail.documents.rich_textr   Z(wagtail.documents.rich_text.contentstater   Z'wagtail.documents.rich_text.editor_htmlr   Z$wagtail.documents.views.bulk_actionsr   r   r   Zwagtail.documents.views.chooserr    rh   Zwagtail.modelsr!   Zwagtail.utils.deprecationr"   Zwagtail.wagtail_hooksr#   registerr$   r(   r*   r@   rH   rI   rP   rQ   rR   rS   rX   rf   rg   action_classri   r&   r&   r&   r'   <module>   sh   $










5