U
    {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 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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& G dd deZ'dS )    )OrderedDict)settings)Http404)path)SessionAuthentication)Response)PagesAPIViewSet)Page   )ConvertAliasPageAPIAction)CopyPageAPIAction)CopyForTranslationAPIAction)CreatePageAliasAPIAction)DeletePageAPIAction)MovePageAPIAction)PublishPageAPIAction)RevertToPageRevisionAPIAction)UnpublishPageAPIAction)ForExplorerFilterHasChildrenFilter)AdminPageSerializerc                
       s   e Zd ZeZegZeee	e
eeeeed	Zejeeg Zejdddddddg Zejd	g Zejdddd	g Zg Zejd
dgZe fddZdd Zdd Z fddZdd Z  fddZ! fddZ"dd Z#e fddZ$  Z%S )PagesAdminAPIViewSet)	Zconvert_aliascopydeletepublishZ	unpublishmoveZcopy_for_translationZcreate_aliasZrevert_to_page_revisionZlatest_revision_created_atstatuschildrenZdescendantsparentZ	ancestorstranslationsZadmin_display_titleZfor_explorerZhas_childrenc                    s&   t  |}ttdds"|d |S )NZWAGTAIL_I18N_ENABLEDFr   )superget_detail_default_fieldsgetattrr   remove)clsmodelZdetail_default_fields	__class__ _/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/admin/api/views.pyr!   K   s    
z.PagesAdminAPIViewSet.get_detail_default_fieldsc                 C   s   t  S )zY
        Returns the page that is used when the `&child_of=root` filter is used.
        )r	   Zget_first_root_nodeselfr(   r(   r)   get_root_pageU   s    z"PagesAdminAPIViewSet.get_root_pagec                 C   s
   t j S )z
        Returns a queryset containing all pages that can be seen by this user.

        This is used as the base for get_queryset and is also used to find the
        parent pages when using the child_of and descendant_of filters as well.
        )r	   objectsallr*   r(   r(   r)   get_base_queryset[   s    z&PagesAdminAPIViewSet.get_base_querysetc                    s"   t   }|jdd  }|S )Nr
   )depth)r    get_querysetexcludeZdefer_streamfieldsZspecific)r+   Zquerysetr&   r(   r)   r1   d   s    
z!PagesAdminAPIViewSet.get_querysetc                 C   s>   t  }| j D ](\}}t d|jjfd|jjfg||< q|S )Nverbose_nameverbose_name_plural)r   Z
seen_typesitems_metar3   r4   )r+   typesnamer%   r(   r(   r)   get_type_infom   s    


z"PagesAdminAPIViewSet.get_type_infoc                    s   t  |}|  |jd< |S NZ__types)r    listing_viewr9   data)r+   requestresponser&   r(   r)   r;   z   s    z!PagesAdminAPIViewSet.listing_viewc                    s    t  ||}|  |jd< |S r:   )r    detail_viewr9   r<   )r+   r=   pkr>   r&   r(   r)   r?      s    z PagesAdminAPIViewSet.detail_viewc                 C   sd   |   }|| jkr"td| d| j| | |}|j|jd}| sVt|jddS |||jS )Nzunrecognised action '')r<   i  )r   )	Z
get_objectactionsr   
serializerr<   Zis_validr   errorsexecute)r+   r=   r@   action_nameinstanceactionZaction_datar(   r(   r)   action_view   s    
z PagesAdminAPIViewSet.action_viewc                    s.   t   }|td| ddiddg |S )zF
        This returns a list of URL patterns for the endpoint
        z"<int:pk>/action/<str:action_name>/postrI   rH   )r8   )r    get_urlpatternsextendr   Zas_view)r$   Zurlpatternsr&   r(   r)   rK      s    
	z$PagesAdminAPIViewSet.get_urlpatterns)&__name__
__module____qualname__r   Zbase_serializer_classr   Zauthentication_classesr   r   r   r   r   r   r   r   r   rB   r   Zfilter_backendsr   r   Zmeta_fieldsZbody_fieldsZlisting_default_fieldsZdetail_only_fieldsZknown_query_parametersunionclassmethodr!   r,   r/   r1   r9   r;   r?   rI   rK   __classcell__r(   r(   r&   r)   r      sb   
			r   N)(collectionsr   Zdjango.confr   Zdjango.httpr   Zdjango.urlsr   Zrest_framework.authenticationr   Zrest_framework.responser   Zwagtail.api.v2.viewsr   Zwagtail.modelsr	   Zactions.convert_aliasr   Zactions.copyr   Zactions.copy_for_translationr   Zactions.create_aliasr   Zactions.deleter   Zactions.mover   Zactions.publishr   Zactions.revert_to_page_revisionr   Zactions.unpublishr   filtersr   r   Zserializersr   r   r(   r(   r(   r)   <module>   s&   