o
    hT                     @   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 q4e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/wagtaildocs)	namespace)r   r   r    r'   r'   _/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/documents/wagtail_hooks.pyr$   (   s   construct_admin_apic                 C   s   |  dt d S )N	documents)register_endpointr   )routerr'   r'   r(   r)   /   s   c                   @      e Zd Zdd ZdS )DocumentsMenuItemc                 C      t |jg dS N)addchangedeleter   user_has_any_permissionuserselfrequestr'   r'   r(   is_shown5      
zDocumentsMenuItem.is_shownN__name__
__module____qualname__r:   r'   r'   r'   r(   r.   4       r.   register_admin_menu_itemc                   C      t tdtdddddS N	Documentswagtaildocs:indexr*   doc-full-inversei  )name	icon_nameorder)r.   _r   r'   r'   r'   r(   register_documents_menu_item;      rK   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-linkDOCUMENTrF   DocumentdocumentChooserzwagtaildocs_chooser:choose)typeicondescriptionchooserUrlsz(wagtaildocs/js/document-chooser-modal.js)js
editorhtmlcontentstate)register_link_typer   register_editor_plugindraftail_featuresEntityFeaturer
   r   register_converter_ruler   r   default_featuresappend)featuresr'   r'   r(   register_document_featureF   s*   
ra   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>   r1   r2   chooser3   )
total_docsrc   )r   r9   r6   r   %instances_user_has_any_permission_forcount)r8   parent_contextrc   r'   r'   r(   get_context_datah   s   z%DocumentsSummaryItem.get_context_datac                 C   s   t | jjg dS r0   )r   r5   r9   r6   )r8   r'   r'   r(   r:   r   s   zDocumentsSummaryItem.is_shownN)r=   r>   r?   rI   template_nameri   r:   r'   r'   r'   r(   rb   d   s
    
rb    construct_homepage_summary_itemsc                 C   s   | t|  d S N)r_   rb   )r9   itemsr'   r'   r(   add_documents_summary_itemx   s   rn   c                   @   r-   )DocsSearchAreac                 C   r/   r0   r4   r7   r'   r'   r(   r:   ~   r;   zDocsSearchArea.is_shownNr<   r'   r'   r'   r(   ro   }   r@   ro   register_admin_search_areac                   C   rB   rC   )ro   rJ   r   r'   r'   r'   r(   register_documents_search_area   rL   rq   register_group_permission_panelc                   C      t S rl   r   r'   r'   r'   r(   #register_document_permissions_panel      rt   describe_collection_contentsc                 C   sJ   t  jj| d }|r#tdd| j  }|tdd|d|i |dS d S )N)
collectionrE   z?collection_id=%dz%(count)s documentz%(count)s documentsrg   )rg   
count_texturl)r   objectsfilterrg   r   idr   )rw   
docs_country   r'   r'   r(   describe_collection_docs   s   r~   before_serve_documentc           	      C   s   | j  D ]a}||sf|jtjkrTddlm} ||d| id}t	d|j
gd}ttdd}ttd	rAtd
td ttd	|}||d}t|||}t| |  S |jtjtjfv rft| 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   )PasswordViewRestrictionForm
return_url)instanceinitial&wagtaildocs_authenticate_with_password)args&WAGTAILDOCS_PASSWORD_REQUIRED_TEMPLATEz"wagtaildocs/password_required.html#DOCUMENT_PASSWORD_REQUIRED_TEMPLATEzwThe `DOCUMENT_PASSWORD_REQUIRED_TEMPLATE` setting is deprecated - use `WAGTAILDOCS_PASSWORD_REQUIRED_TEMPLATE` instead.)category)form
action_url)nextN)rw   get_view_restrictionsaccept_requestrestriction_typer!   PASSWORDwagtail.formsr   get_full_pathr   r|   getattrr   hasattrr   r"   r   r	   LOGINGROUPSr#   )	documentr9   restrictionr   r   r   password_required_templatecontextresponser'   r'   r(   check_view_restrictions   sN   	



r   c                   @   s   e Zd ZdZeZdS )DocumentAdminURLFinderzwagtaildocs:editN)r=   r>   r?   edit_url_namer   r'   r'   r'   r(   r      s    r   register_bulk_actionregister_admin_viewsetc                   C   rs   rl   )chooser_viewsetr'   r'   r'   r(   !register_document_chooser_viewset   ru   r   )Rwarningsr   django.confr   django.template.responser   django.urlsr   r   r   r   django.utils.cacher	   django.utils.translationr
   r   r   rJ   1wagtail.admin.rich_text.editors.draftail.featuresadmin	rich_texteditorsrN   r`   r[   wagtailr   wagtail.admin.admin_url_finderr   r   wagtail.admin.menur   wagtail.admin.navigationr   wagtail.admin.searchr   wagtail.admin.site_summaryr   wagtail.documentsr   r   !wagtail.documents.api.admin.viewsr   wagtail.documents.formsr   wagtail.documents.permissionsr   wagtail.documents.rich_textr   (wagtail.documents.rich_text.contentstater   'wagtail.documents.rich_text.editor_htmlr   $wagtail.documents.views.bulk_actionsr   r   r   wagtail.documents.views.chooserr    r   wagtail.modelsr!   wagtail.utils.deprecationr"   wagtail.wagtail_hooksr#   registerr$   r)   r.   rK   ra   rb   rn   ro   rq   rt   r~   r   r   action_classr   r'   r'   r'   r(   <module>   sj    $








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