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	 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 d dlmZ d dlmZmZmZ d dlmZ ddlm Z  G dd deeZ!G dd de!Z"G dd de!Z#dS )    )messages)unquote)PermissionDenied)transaction)Http404)get_object_or_404redirect)reverse)gettext)gettext_lazy)TemplateView)SingleObjectMixin)CopyPageForTranslationAction)DraftStateMixinPageTranslatableMixin)!get_snippet_model_from_url_params   )SubmitTranslationFormc                       s^   e Zd ZdZedZdd Zdd Zdd Zdd
dZ	 fddZ
dd Z fddZ  ZS )SubmitTranslationViewz0simple_translation/admin/submit_translation.html	Translatec                 C   s   | j S N)titleself r   h/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/contrib/simple_translation/views.py	get_title   s   zSubmitTranslationView.get_titlec                 C   s
   t | jS r   )strobjectr   r   r   r   get_subtitle      
z"SubmitTranslationView.get_subtitlec                 C   s&   | j jdkrt| j| j jS t| jS )NPOST)requestmethodr   r   r"   r   r   r   r   get_form   s   
zSubmitTranslationView.get_formNc                 C   s   t r   )NotImplementedError)r   translated_objectr   r   r   get_success_url#   s   z%SubmitTranslationView.get_success_urlc                    s(   t  jdi |}|d|  i |S )Nformr   )superget_context_dataupdater%   )r   kwargscontext	__class__r   r   r+   &   s   z&SubmitTranslationView.get_context_datac                 K   s*  |   }| r|jd }|j}t l |jd D ] }t| jtr2t	| j|||d}|j
dd q| j|  qd }t|jd dkr[|jd d  }	| j|jd d }ntdd	t|jd i }	t| j| |	 t| |W  d    S 1 sw   Y  | jd
i |}
| |
S )Ninclude_subtreelocales)pagelocaler1   userT)skip_permission_checksr   r   z%(locales_count)s localeslocales_countr   )r%   is_validcleaned_datar5   r   atomic
isinstancer   r   r   executecopy_for_translationsavelenget_display_nameget_translation_r   successr#   get_success_messager   r(   r+   render_to_response)r   r#   r-   r)   r1   r5   r4   actionsingle_translated_objectr2   r.   r   r   r   post/   s@   

  
zSubmitTranslationView.postc                    s6   |j dgs	t|  | _t j|g|R i |S )Nz%simple_translation.submit_translation)r5   	has_permsr   
get_objectr   r*   dispatch)r   r#   argsr-   r/   r   r   rK   Y   s   
zSubmitTranslationView.dispatchr   )__name__
__module____qualname__template_namer   r   r   r    r%   r(   r+   rH   rK   __classcell__r   r   r/   r   r      s    
	*r   c                   @   s6   e Zd ZedZdd Zdd ZdddZd	d
 ZdS )SubmitPageTranslationViewzTranslate pagec                 C   s
   | j  S r   )r   get_admin_display_titler   r   r   r   r    d   r!   z&SubmitPageTranslationView.get_subtitlec                 C   s$   t t| jd dj}| rt|S )Npage_id)id)r   r   r-   specificis_rootr   )r   r3   r   r   r   rJ   g   s   z$SubmitPageTranslationView.get_objectNc                 C   s,   |r
t d|jgdS t d|   jgdS )Nzwagtailadmin_pages:editrL   wagtailadmin_explore)r	   rU   rJ   
get_parent)r   translated_pager   r   r   r(   p   s   z)SubmitPageTranslationView.get_success_urlc                 C   s   t d| j |d S )NzAThe page '%(page_title)s' was successfully created in %(locales)s)
page_titler2   )rB   r   rS   r   r2   r   r   r   rD   x   s
   z-SubmitPageTranslationView.get_success_messager   )	rM   rN   rO   r   r   r    rJ   r(   rD   r   r   r   r   rR   a   s    
	rR   c                   @   s.   e Zd Zdd Zdd Zd
ddZdd	 ZdS )SubmitSnippetTranslationViewc                 C   s   t dd| jjji S )NzTranslate %(model_name)s
model_name)rB   r   _metaverbose_namer   r   r   r   r      s   
z&SubmitSnippetTranslationView.get_titlec                 C   sT   t | jd | jd }t|tstt|tt| jd d}t|t	r(|
 }|S )N	app_labelr_   pk)rc   )r   r-   
issubclassr   r   r   r   r   r;   r   get_latest_revision_as_object)r   modelr   r   r   r   rJ      s   

z'SubmitSnippetTranslationView.get_objectNc                 C   s,   | j d }|r
|j}t| jjd|gdS )Nrc   editrX   )r-   rc   r	   r   snippet_viewsetget_url_name)r   translated_snippetrc   r   r   r   r(      s   
z,SubmitSnippetTranslationView.get_success_urlc                 C   s    t d| jjjt| j|d S )Nz@Successfully created %(locales)s for %(model_name)s '%(object)s')r_   r   r2   )rB   r   r`   ra   r   r]   r   r   r   rD      s
   z0SubmitSnippetTranslationView.get_success_messager   )rM   rN   rO   r   rJ   r(   rD   r   r   r   r   r^   ~   s
    

r^   N)$django.contribr   django.contrib.admin.utilsr   django.core.exceptionsr   	django.dbr   django.httpr   django.shortcutsr   r   django.urlsr	   django.utils.translationr
   rB   r   django.views.genericr   django.views.generic.detailr   $wagtail.actions.copy_for_translationr   wagtail.modelsr   r   r   wagtail.snippets.views.snippetsr   formsr   r   rR   r^   r   r   r   r   <module>   s$    M