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 G dd deeZdS )    )quote)reverse)cached_property)capfirst)gettext_lazy)ngettext)BeforeAfterHookMixin)ReferenceIndex)SnippetBulkAction)get_permission_namec                       s   e Zd ZedZdZedZdZdZdhZ	e
 fddZd	d
 Zdd Zdd Zdd ZedddZ fddZdd Z  ZS )DeleteBulkActionDeletedeletezDelete selected snippetsz5wagtailsnippets/bulk_actions/confirm_bulk_delete.html   Zseriousc                    s
   t   S N)superget_actionable_objectsself	__class__ c/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/snippets/bulk_actions/delete.py_actionable_objects   s    z$DeleteBulkAction._actionable_objectsc                 C   s   | j S r   )r   r   r   r   r   r      s    z'DeleteBulkAction.get_actionable_objectsc                 C   s   |   d }| d| j|S )Nr   Zbefore_delete_snippetr   Zrun_hookrequestr   objectsr   r   r   run_before_hook*   s    z DeleteBulkAction.run_before_hookc                 C   s   |   d }| d| j|S )Nr   Zafter_delete_snippetr   r   r   r   r   run_after_hook0   s    zDeleteBulkAction.run_after_hookc                 C   s.   t | dd d u r(| jjtd| j| _| jS )Ncan_delete_itemsr   )getattrr   userZhas_permr   modelr    )r   snippetr   r   r   
check_perm4   s
    
zDeleteBulkAction.check_permNc                 K   s.   |d j jjdd |D d  t|dfS )Nr   c                 S   s   g | ]
}|j qS r   )pk).0r$   r   r   r   
<listcomp>?       z3DeleteBulkAction.execute_action.<locals>.<listcomp>)Zpk__inr   )r#   r   filterr   len)clsr   r"   kwargsr   r   r   execute_action<   s    
zDeleteBulkAction.execute_actionc                    sl   t  jf i |}t|d dkrh|d d }|d }|t| t|j	dt
|jfdd |S )Nitems   r   itemusage)args)Zusage_countZ	usage_url)r   get_context_datar+   updater	   Zget_grouped_references_tocountr   Zsnippet_viewsetZget_url_namer   r&   )r   r-   contextZitem_contextr1   r   r   r   r4   C   s    

z!DeleteBulkAction.get_context_datac                 C   sN   |dkr*t dt| jjj| jd d S tdd|t| jjj|d S d S )Nr0   z$%(model_name)s '%(object)s' deleted.r   )
model_nameobjectz!%(count)d %(model_name)s deleted.)r8   r6   )_r   r#   Z_metaZverbose_nameZactionable_objectsr   Zverbose_name_plural)r   Znum_parent_objectsZnum_child_objectsr   r   r   get_success_messageV   s    z$DeleteBulkAction.get_success_message)N)__name__
__module____qualname__r:   Zdisplay_nameZaction_typeZ
aria_labelZtemplate_nameZaction_priorityclassesr   r   r   r   r   r%   classmethodr.   r4   r;   __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.views.genericr   Zwagtail.modelsr	   Z1wagtail.snippets.bulk_actions.snippet_bulk_actionr
   Zwagtail.snippets.permissionsr   r   r   r   r   r   <module>   s   