a
    Dg                     @   s   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 d dlmZ dd Zdd ZdS )    )settings)PermissionDenied)get_object_or_404redirect)TemplateResponse)reverse)gettext)hooks)MovePageAction)messages)MoveForm)Pagec                 C   s   t t|d}|| j}| s$tt|j }t	| j
p<d ||d}| jdkr|| r||jd r||jd }td|j|jS t| d||dS )Nid)page_to_movetarget_parent_modelsPOSTnew_parent_pagezwagtailadmin_pages:move_confirmz/wagtailadmin/pages/move_choose_destination.html)r   	move_form)r   r   Zpermissions_for_useruserZcan_mover   setZspecific_classZallowed_parent_page_modelsr   r   methodZis_validZcleaned_datar   r   r   )requestpage_to_move_idr   Z
page_permsr   r   r    r   ]/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/admin/views/pages/move.pymove_choose_destination   s4    


r   c              	      s  t t|dj t t|dj}tj j| dsTt| tdd ji  t	d j
S tdD ]"}||  |}t|dr^|  S q^ h}ttdd	rtd
D ]6}| gd}|rt|tr| D ]}|| qqt|}| jdkrt |d| jd}	|	  ttdd	rZ   }
|D ]6}| |
v r"t|||jd| jd}	|	  q"tj| tdd  i tt d j
fdtdgd tdD ]$}||  }t|dr|  S qt	d|j
S t!| d |t" fdd|D dS )Nr   )pagezrThe slug '%(page_slug)s' is already in use at the selected parent page. Make sure the slug is unique and try againZ	page_slugzwagtailadmin_pages:moveZbefore_move_pagestatus_codeZWAGTAIL_I18N_ENABLEDFZ-construct_translated_pages_to_cascade_actionsmover   z
last-child)posr   zPage '%(page_title)s' moved.Z
page_titlezwagtailadmin_pages:edit)argsZEdit)ZbuttonsZafter_move_pageZwagtailadmin_explorez$wagtailadmin/pages/confirm_move.htmlc                    s$   g | ]}|j s|j jkr|jqS r   )Zalias_of_idr   ).0translationr   r   r   
<listcomp>   s   z move_confirm.<locals>.<listcomp>)r   destinationZtranslations_to_move_count)#r   r   ZspecificZspecific_deferredZ_slug_is_availableZslugr   error_r   r   r	   Z	get_hookshasattrgetattrr   
isinstancedictvaluesupdatelistr   r
   r   executeZ
get_parentZget_translationsZget_translationlocalesuccessZget_admin_display_titlebuttonr   r   len)r   r   Zdestination_idr&   fnresultZpages_to_moveZfn_pagesZadditional_pagesactionZparent_page_translationsr#   r   r$   r   move_confirm2   s    






r8   N)Zdjango.confr   Zdjango.core.exceptionsr   Zdjango.shortcutsr   r   Zdjango.template.responser   Zdjango.urlsr   Zdjango.utils.translationr   r(   Zwagtailr	   Zwagtail.actions.move_pager
   Zwagtail.adminr   Zwagtail.admin.forms.pagesr   Zwagtail.modelsr   r   r8   r   r   r   r   <module>   s   #