U
    {h                     @   sz   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 G dd	 d	ejZG d
d deZdS )    )forms)TemplateResponse)gettext_lazyngettext)widgets)PageBulkAction)Pagec                       s   e Zd Z fddZ  ZS )MoveFormc              	      s`   | d}| d}| d}t j|| tj|tj tj	dd||dt
dd| jd	< d S )
Ndestinationtarget_parent_modelspages_to_moveTZbulk_move_to)Zcan_choose_rootZ
user_permsZtarget_modelsr   zSelect a new parent page)initialZquerysetZwidgetlabelchooser)popsuper__init__r   ZModelChoiceFieldr	   objectsallr   ZAdminPageMoveChooser_fields)selfargskwargsr   r   r   	__class__ s/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/admin/views/pages/bulk_actions/move.pyr      s    


zMoveForm.__init__)__name__
__module____qualname__r   __classcell__r   r   r   r   r
      s   r
   c                       s   e Zd ZedZdZedZdZdZe	Z
dZ fddZ fd	d
Zdd Zdd Z fddZ fddZdd Z fddZedddZ  ZS )MoveBulkActionZMovemovezMove selected pagesz6wagtailadmin/pages/bulk_actions/confirm_bulk_move.html
   Nc                    s    t  || t | _g | _d S N)r   r   setr   r   )r   requestmodelr   r   r   r   '   s    zMoveBulkAction.__init__c                    s4   t   }| jpt |d< | j|d< | j|d< |S )Nr   r   r   )r   get_form_kwargsr   r	   Zget_first_root_noder   r   )r   ctxr   r   r   r*   ,   s
    


zMoveBulkAction.get_form_kwargsc                 C   s   | | jj S r&   )permissions_for_userr(   userZcan_move)r   pager   r   r   
check_perm3   s    zMoveBulkAction.check_permc                 C   s   t dd|d|i }|S )Nz!%(num_pages)d page has been movedz#%(num_pages)d pages have been movedZ	num_pagesr   )r   num_parent_objectsZnum_child_objectsZsuccess_messager   r   r   get_success_message6   s    z"MoveBulkAction.get_success_messagec                    s$   t  |}|d   |d< |S )NitemZchild_pages)r   object_contextZget_descendantscount)r   objcontextr   r   r   r3   >   s    zMoveBulkAction.object_contextc           
         s0  t   \}} j}|rLt|d j  _|D ]} jt|j  q0dd |D  _ j	d krt
 jdkrg |d fdd|D ifS ||fS  j	jd }g }g }g }|D ]J}	|	|j|s||	 qtj|	j||	ds||	 q||	 q|| fdd|D  fd	d|D d
fS )Nr   c                 S   s   g | ]
}|j qS r   )id.0r.   r   r   r   
<listcomp>P   s     z9MoveBulkAction.get_actionable_objects.<locals>.<listcomp>Z pages_without_common_parent_pagec                    s$   g | ]}||  jj d qS )r2   can_editr,   r(   r-   r<   r8   r   r   r   r:   V   s   r   )r.   c                    s$   g | ]}||  jj d qS r;   r=   r8   r>   r   r   r:   q   s   c                    s$   g | ]}||  jj d qS r;   r=   r8   r>   r   r   r:   x   s   ) pages_without_destination_accesspages_with_duplicate_slugs)r   get_actionable_objectsr(   r'   Zspecific_classZallowed_parent_page_modelsr   intersection_updater   cleaned_formlencleaned_datar,   r-   Zcan_move_toappendr	   Z_slug_is_availableZslug)
r   r   Zobjects_without_accessr(   r5   r   pagesr?   r@   r.   r   r>   r   rA   C   sP    
 


z%MoveBulkAction.get_actionable_objectsc                 C   sF   | j }| jjd }|d s"|d rB|| _t|| jd|i|  S d S )Nr   r?   r@   r   )r(   rC   rE   r   r   template_nameZget_context_data)r   rG   Zpages_without_accessr(   r   r   r   r   prepare_action   s    zMoveBulkAction.prepare_actionc                    s   t   d| jjd iS )Nr   r   )r   get_execution_contextrC   rE   r>   r   r   r   rJ      s     
z$MoveBulkAction.get_execution_contextc                 K   s:   d}|d krd S |D ]}|j |d|d |d7 }q|dfS )Nr   z
last-child)posr-      )r$   )clsr   r   r-   r   r0   r.   r   r   r   execute_action   s    
zMoveBulkAction.execute_action)NN)r   r    r!   r   display_nameZaction_typeZ
aria_labelrH   Zaction_priorityr
   Z
form_classr   r   r*   r/   r1   r3   rA   rI   rJ   classmethodrN   r"   r   r   r   r   r#      s"   >r#   N)djangor   Zdjango.template.responser   Zdjango.utils.translationr   r   r   Zwagtail.adminr   Z7wagtail.admin.views.pages.bulk_actions.page_bulk_actionr   Zwagtail.modelsr	   ZFormr
   r#   r   r   r   r   <module>   s   