o
    h                     @   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	 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mZ eddd Zeddd ZeddddZeddddZeddddZ edde!e de"fddZ#dS )    )settings)quote)
Permission)includepathreverse)gettext)hooks)widgets)LocalePageTranslatableMixin)SnippetListingButton   )SubmitPageTranslationViewSubmitSnippetTranslationViewregister_admin_urlsc                  C   s<   t dt ddt dt ddg} t dt| dfddgS )	Nzsubmit/page/<int:page_id>/submit_page_translation)namez;submit/snippet/<slug:app_label>/<slug:model_name>/<str:pk>/submit_snippet_translationztranslation/simple_translation)	namespace)r   r   as_viewr   r   )urls r   p/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/contrib/simple_translation/wagtail_hooks.pyr      s&   register_permissionsc                   C   s   t jjdddS )Nr   submit_translation)content_type__app_labelcodename)r   objectsfilterr   r   r   r   &register_submit_translation_permission)   s   r"   "register_page_listing_more_buttonsNc                 c   s    | dr=|  s?t| dr| j}ntjj| jddjdddd	 }|rAt
d| jgd	}tjtd
|dddV  d S d S d S d S )N%simple_translation.submit_translation_has_untranslated_localeT	inclusive	locale_idflatid__in*simple_translation:submit_page_translationargs	Translateglobe<   )	icon_namepriority)has_permis_roothasattrr%   r   r    excludeget_translationsvalues_listexistsr   idwagtailadmin_widgetsButton_)pageusernext_urlhas_locale_to_translate_tourlr   r   r   page_listing_more_buttons0   s$   
rE   register_page_header_buttonsc              	   c   s    |   s?|drAtjj| jddjdddd }|rCtd| j	gd}t
jtd	|d
dtdd|  i iddV  d S d S d S d S )Nr$   Tr&   r(   r)   r+   r-   r.   r0   r1   titlezTranslate this pageP   )r3   attrsr4   )r6   r5   r   r    r8   r9   r:   r;   r   r<   r=   r>   r?   get_admin_display_title)r@   rA   	view_namerB   rC   rD   r   r   r   page_header_buttonsG   s.   
	rL    register_snippet_listing_buttonsc                 c   s    t | }t|trJ|drLtjj| jddjdddd	 }|rNt
d|jj|jjt| jgd}ttd	|d
tddt| i iddV  d S d S d S d S )Nr$   Tr&   r(   r)   r+   z-simple_translation:submit_snippet_translationr.   r0   z
aria-labelzTranslate '%(title)s'rG   d   )rI   r4   )type
issubclassr   r5   r   r    r8   r9   r:   r;   r   _meta	app_label
model_namer   pkr   r?   str)snippetrA   rB   modelrC   rD   r   r   r   rM   `   s4   
-construct_translated_pages_to_cascade_actionspagesactionc                 C   sx   t tddsd S i }|dkr#| D ]}tjj|ddjdd||< q|S |dks+|dkr:| D ]}tjj|dd||< q-|S )	N'WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREEF	unpublishr&   T)alias_of__isnullmovedelete)getattrr   r   r    translation_ofr!   )rY   rZ   	page_listr@   r   r   r   rX   }   s   )N)$django.confr   django.contrib.admin.utilsr   django.contrib.auth.modelsr   django.urlsr   r   r   django.utils.translationr   r?   wagtailr	   wagtail.adminr
   r=   wagtail.modelsr   r   r   wagtail.snippets.widgetsr   viewsr   r   registerr   r"   rE   rL   rM   listrU   rX   r   r   r   r   <module>   s,    

