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mZ ddlmZmZ ddlmZ G dd dejZG dd deeeZdS )    )quote)reverse)cached_property)capfirst)gettext)gettext_lazy)AdminURLFinder)tables)get_latest_str)HeaderButton)DraftStateMixinReferenceIndex   )BaseListingViewBaseObjectMixin)PermissionCheckedMixinc                   @   s   e Zd Zdd ZdS )TitleColumnc                 C   s   d|d iS )Ntitleedit_link_title )selfinstanceZparent_contextr   r   `/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/admin/views/generic/usage.pyget_link_attrs   s    zTitleColumn.get_link_attrsN)__name__
__module____qualname__r   r   r   r   r   r      s   r   c                       s   e Zd ZdZedZdZdZdZdZ	e
dd Z fddZd	d
 Zdd Zdd Zdd Zdd Ze
dd Zdd Ze
dd Z fddZdd fdd
Z  ZS )	UsageView   UsageNZchangec                 C   s   t | jjdS )Ndescribe_on_delete)boolrequestGETgetr   r   r   r   r       s    zUsageView.describe_on_deletec                    s    t   }t|tr| S |S N)super
get_object
isinstancer   Zget_latest_revision_as_object)r   object	__class__r   r   r(   #   s    

zUsageView.get_objectc                 C   s    | j rt| j t|jfdS d S N)args)edit_url_namer   r   pkr   r   r   r   r   get_edit_url)   s    zUsageView.get_edit_urlc                 C   s    | j rt| j t|jfdS d S r-   )usage_url_namer   r   r0   r1   r   r   r   get_usage_url-   s    zUsageView.get_usage_urlc                 C   s   |  | jS r&   )r4   r*   r%   r   r   r   get_index_url1   s    zUsageView.get_index_urlc                 C   s
   t | jS r&   )r
   r*   r%   r   r   r   get_page_subtitle4   s    zUsageView.get_page_subtitlec                 C   st   g }| j r*|t| j t| jjjd | | j}|rP||t| jd |dt	d| 
 d | j| S )N)urllabel r   )r7   r8   Zsublabel)index_url_nameappendr   r   r*   _metaZverbose_name_pluralr2   r
   _r6   Zbreadcrumbs_items)r   itemsedit_urlr   r   r   get_breadcrumbs_items7   s*    zUsageView.get_breadcrumbs_itemsc                 C   s0   |  | j}g }|r,|ttd|dd |S )NZEditZedit)r8   r7   Z	icon_name)r2   r*   r;   r   r=   )r   r?   Zbuttonsr   r   r   header_buttonsQ   s    zUsageView.header_buttonsc                 C   s   t | j S r&   )r   Zget_references_tor*   Zgroup_by_source_objectr%   r   r   r   get_queryset_   s    zUsageView.get_querysetc              	   C   sZ   t dtdddd dtjdtdd	d d
tjd| jr@tdntdddd | jdgS )NnameNamer8   c                 S   s   | d S Nr?   r   rr   r   r   <lambda>i       z#UsageView.columns.<locals>.<lambda>)r8   accessorget_urlcontent_typeTypec                 S   s   t | d d jS )N
referencesr   )r   Z
model_namerF   r   r   r   rH   q   rI   )r8   rJ   fieldzIf you confirm deletionZFieldrN   c                 S   s   | d S rE   r   rF   r   r   r   rH   y   rI   )r8   rJ   rK   r    )r   r=   r	   ZColumnZReferencesColumnr    r%   r   r   r   columnsb   s*    
zUsageView.columnsc                    s   t | jj}g }|D ]|\}}||d}|||d< |d d u rbtdd|jji |d< d |d< n$t||d< tdd|jji |d< || qt	 j
|fi |S )N)r*   rN   r?   z(Private %(object)s)r*   r8   r   zEdit this %(object)s)r   r"   userr2   r=   r<   Zverbose_namestrr;   r'   	get_table)r   object_listkwargsZ
url_finderresultsr*   rN   rowr+   r   r   rS   ~   s     



zUsageView.get_table)rT   c                   s   t  j||| jd|S )N)rT   r*   )r'   get_context_datar*   )r   rT   r.   rU   r+   r   r   rX      s
    zUsageView.get_context_data)r   r   r   Zpaginate_byr   Z
page_titler:   r/   r3   Zpermission_requiredr   r    r(   r2   r4   r5   r6   r@   rA   rB   rP   rS   rX   __classcell__r   r   r+   r   r      s*   


r   N)Zdjango.contrib.admin.utilsr   Zdjango.urlsr   Zdjango.utils.functionalr   Zdjango.utils.textr   Zdjango.utils.translationr   r=   r   Zwagtail.admin.admin_url_finderr   Zwagtail.admin.uir	   Zwagtail.admin.utilsr
   Zwagtail.admin.widgets.buttonr   Zwagtail.modelsr   r   baser   r   Zpermissionsr   r   r   r   r   r   r   <module>   s   