a
    Dg	                     @   sP   d dl mZ d dlmZ d dlmZmZ d dlmZ dd	d
Z	G dd dZ
dS )    )reverse)cached_property)get_latest_strget_valid_next_url_from_request)page_permission_policywagtailadmin_explorewagtailadmin_explore_rootT c           
      C   s   t |}|sg S | j|dj|ddjdd}g }|D ]B} |  rR|rRt|}	nt|| jfd}	||	| t	| d q8|S )N)Z	inclusiveT)defer)args)urllabel)
r   Zexplorable_root_instanceZget_ancestorsZdescendant_ofZspecificZis_rootr   idappendr   )
pageuserZurl_nameZroot_url_nameZinclude_selfZquerystring_valueZccaZpagesitemsr    r   ^/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/admin/views/pages/utils.pyget_breadcrumbs_items_for_page   s     


r   c                       s0   e Zd ZdZdZedd Z fddZ  ZS )GenericPageBreadcrumbsMixinaz  
    A mixin that allows a view for pages that extends a generic view to combine
    the page explorer breadcrumbs with the generic view's breadcrumbs.

    This is done by generating the explorer breadcrumbs items for the page as a
    normalised breadcrumbs items list, and then concatenating that with the last
    item of the generic view's generated breadcrumbs items.
       c                 C   s   t | j| jjS N)r   objectrequestr   selfr   r   r   breadcrumbs_items7   s    z-GenericPageBreadcrumbsMixin.breadcrumbs_itemsc                    s   | j t  | j d   S r   )r   superget_breadcrumbs_itemsbreadcrumbs_items_to_taker   	__class__r   r   r   ;   s    
z1GenericPageBreadcrumbsMixin.get_breadcrumbs_items)	__name__
__module____qualname____doc__r    r   r   r   __classcell__r   r   r!   r   r   +   s
   	
r   N)r   r   Tr	   )Zdjango.urlsr   Zdjango.utils.functionalr   Zwagtail.admin.utilsr   r   Zwagtail.permissionsr   r   r   r   r   r   r   <module>   s       
