U
    {hV                     @   s   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mZmZmZ d d	lmZ d d
lmZ G dd deZG dd deZG dd deZG dd deZdS )    )HttpResponseForbidden)get_object_or_404redirect)gettext_lazy)hooks)messages)CollectionForm)TitleColumn)
CreateView
DeleteViewEditView	IndexView)
Collection)collection_permission_policyc                       sl   e Zd ZeZeZdZdZdZ	dZ
edZedZdZeded	d
dddgZdZdd Z fddZ  ZS )Indexcollectionsz+wagtailadmin/collections/index_results.htmlwagtailadmin_collections:addwagtailadmin_collections:indexZCollectionszAdd a collectionfolder-open-1nameNamewagtailadmin_collections:edit01)labelZurl_nameZid_accessoraccessorTc                 C   s    | j | jjdddgjddS )Naddchangedelete   depth)permission_policyZ%instances_user_has_any_permission_forrequestuserexcludeself r(   g/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/admin/views/collections.pyget_queryset#   s     zIndex.get_querysetc                    s   t  | S )N)super	get_tableZget_indented_choices)r'   Zobject_list	__class__r(   r)   r,   (   s    zIndex.get_table)__name__
__module____qualname__r   r"   r   modelcontext_object_nameZresults_template_nameadd_url_nameindex_url_namer   
page_titleZadd_item_labelheader_iconr	   columns_show_breadcrumbsr*   r,   __classcell__r(   r(   r-   r)   r      s(   	r   c                       sV   e Zd ZeZeZeZe	dZ
e	dZdZdZdZdZdZd fd	d
	Zdd Z  ZS )CreatezAdd collectionz Collection '%(object)s' created.r   r   r   r   TNc                    s.   t  |}| j| jjd}||jd _|S )Nr   parent)r+   get_formr"   !instances_user_has_permission_forr#   r$   fieldsqueryset)r'   
form_classformr   r-   r(   r)   r=   8   s     zCreate.get_formc                 C   s*   | j jdd}| j jd }|j|d |S )NF)commitr<   instance)rB   savecleaned_dataZ	add_child)r'   rE   r<   r(   r(   r)   save_instanceA   s    zCreate.save_instance)N)r/   r0   r1   r   r"   r   r2   r   rA   r   r6   success_messager4   edit_url_namer5   r7   r9   r=   rH   r:   r(   r(   r-   r)   r;   ,   s   	r;   c                       sv   e Zd ZeZeZeZdZ	e
dZe
dZe
dZdZdZdZdZd	Zd
Zdd Zdd Zd fdd	Zdd Z  ZS )Editz"wagtailadmin/collections/edit.htmlz Collection '%(object)s' updated.z0The collection could not be saved due to errors.Delete collectionr   r   wagtailadmin_collections:deleteZ
collectionr   Tc                    s<   |j r|jrdS | j|dddh} fdd|D  S dS )z
        Is this instance used for assigning GroupCollectionPermissions to the user?
        If so, this user is not allowed do move the collection to a new part of the tree
        Tr   r   r   c                    s   h | ]}|j  jkr|qS r(   )Zcollection_idpk).0Z
permissionrD   r(   r)   	<setcomp>d   s   z1Edit._user_may_move_collection.<locals>.<setcomp>N)Z	is_activeZis_superuserr"   Z(_get_user_permission_objects_for_actions)r'   r$   rE   Zpermissionsr(   rD   r)   _user_may_move_collectionW   s     
zEdit._user_may_move_collectionc                 C   s   | j | jjdjddS )Nr   r   r    r"   r>   r#   r$   r%   r&   r(   r(   r)   r*   j   s     zEdit.get_querysetNc                    s   t  |}| jj}| j|ds0|jd nL| ||j	sL|jd n0| j
|d}||jd _|j	jdd|jd _|j	 j|jd< |S )Nr   r<   T)Z	inclusive)r+   r=   r#   r$   r"   Zuser_has_permissionr?   poprQ   rE   r>   r@   Zget_descendantsZdisabled_querysetZ
get_parentrN   initial)r'   rA   rB   r$   r   r-   r(   r)   r=   o   s      zEdit.get_formc                 C   s.   | j  }d| j jkr*|| j jd d |S )Nr<   zsorted-child)rB   rF   Zchanged_datamoverG   )r'   rE   r(   r(   r)   rH      s    
zEdit.save_instance)N)r/   r0   r1   r   r"   r   r2   r   rA   template_namer   rI   error_messageZdelete_item_labelrJ   r5   delete_url_namer3   r7   r9   rQ   r*   r=   rH   r:   r(   r(   r-   r)   rK   H   s"   rK   c                       sd   e Zd ZeZeZedZdZ	dZ
dZedZedZdZdd	 Zd
d Z fddZdd Z  ZS )Deletez Collection '%(object)s' deleted.r   r   rM   rL   z0Are you sure you want to delete this collection?r   c                 C   s   | j | jjdjddS )Nr   r   r    rR   r&   r(   r(   r)   r*      s     zDelete.get_querysetc                    s.    fddt dD }dd }tt||S )Nc                    s   g | ]}| j qS r(   )object)rO   hookr&   r(   r)   
<listcomp>   s   z2Delete.get_collection_contents.<locals>.<listcomp>Zdescribe_collection_contentsc                 S   s   | o| d dkS )Ncountr   r(   )Z	item_typer(   r(   r)   is_nonempty   s    z3Delete.get_collection_contents.<locals>.is_nonempty)r   Z	get_hookslistfilter)r'   collection_contentsr^   r(   r&   r)   get_collection_contents   s
    
zDelete.get_collection_contentsc                    s,   t  jf |}|  }|r(d| _||d< |S )Nz.wagtailadmin/collections/delete_not_empty.htmlra   )r+   get_context_datarb   rV   )r'   kwargscontextra   r-   r(   r)   rc      s    zDelete.get_context_datac                 C   sH   t |  |d| _|  }|r$t S t||   | j  t	| j
S )N)id)r   r*   rZ   rb   r   r   successZget_success_messager   r   r5   )r'   r#   rN   ra   r(   r(   r)   post   s    
zDelete.post)r/   r0   r1   r   r"   r   r2   r   rI   r5   rJ   rX   r6   Zconfirmation_messager7   r*   rb   rc   rh   r:   r(   r(   r-   r)   rY      s   rY   N)Zdjango.httpr   Zdjango.shortcutsr   r   Zdjango.utils.translationr   Zwagtailr   Zwagtail.adminr   Zwagtail.admin.forms.collectionsr   Zwagtail.admin.ui.tablesr	   Zwagtail.admin.views.genericr
   r   r   r   Zwagtail.modelsr   Zwagtail.permissionsr   r   r;   rK   rY   r(   r(   r(   r)   <module>   s   F