a
    Dg(                     @   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g d Zejdg Zejg d 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_revision)latest_revision_created_atstatuschildrenZdescendantsparentZ	ancestorstranslationsadmin_display_title)r   r   r   r!   Z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__ V/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/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	   Z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+   r2   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itemsZ_metar4   r5   )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v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.   r0   r2   r9   r;   r?   rI   rK   __classcell__r*   r*   r(   r+   r      sH   
			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&   