o
    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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instanceparent_contextr   r   a/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/admin/views/generic/usage.pyget_link_attrs      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   UsageN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   get_latest_revision_as_object)r   object	__class__r   r   r+   #   s   

zUsageView.get_objectc                 C       | 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)      zUsageView.get_edit_urlc                 C   r1   r2   )usage_url_namer   r   r5   r6   r   r   r   get_usage_url-   r8   zUsageView.get_usage_urlc                 C   s   |  | jS r)   )r:   r.   r(   r   r   r   get_index_url1   r   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}|r(||t| jd |dt	d| 
 d | j| S )N)urllabel r!   )r=   r>   sublabel)index_url_nameappendr   r   r.   _metaverbose_name_pluralr7   r
   _r<   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 )NEditedit)r>   r=   	icon_name)r7   r.   rB   r   rE   )r   rH   buttonsr   r   r   header_buttonsQ   s   zUsageView.header_buttonsc                 C   s   t | j S r)   )r   get_references_tor.   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Namer>   c                 S      | d S NrH   r   rr   r   r   <lambda>i       z#UsageView.columns.<locals>.<lambda>)r>   accessorget_urlcontent_typeTypec                 S   s   t | d d jS )N
referencesr   )r   
model_namerV   r   r   r   rX   q   s    )r>   rZ   fieldzIf you confirm deletionFieldr^   c                 S   rT   rU   r   rV   r   r   r   rX   y   rY   )r>   rZ   r[   r#   )r   rE   r	   ColumnReferencesColumnr#   r(   r   r   r   columnsb   s*   
zUsageView.columnsc                    s   t | jj}g }|D ]>\}}||d}|||d< |d d u r1t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.   r^   rH   z(Private %(object)s)r.   r>   r   zEdit this %(object)s)r   r%   userr7   rE   rC   verbose_namestrrB   r*   	get_table)r   object_listkwargs
url_finderresultsr.   r^   rowr/   r   r   rh   ~   s    



zUsageView.get_table)ri   c                   s   t  j||| jd|S )N)ri   r.   )r*   get_context_datar.   )r   ri   r3   rj   r/   r   r   rn      s
   zUsageView.get_context_data)r   r   r   paginate_byr   
page_titlerA   r4   r9   permission_requiredr   r#   r+   r7   r:   r;   r<   rI   rN   rQ   rd   rh   rn   __classcell__r   r   r/   r   r      s,    


r   N)django.contrib.admin.utilsr   django.urlsr   django.utils.functionalr   django.utils.textr   django.utils.translationr   rE   r   wagtail.admin.admin_url_finderr   wagtail.admin.uir	   wagtail.admin.utilsr
   wagtail.admin.widgets.buttonr   wagtail.modelsr   r   baser   r   permissionsr   r   r   r   r   r   r   <module>   s    