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 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   seriousc                    s
   t   S N)superget_actionable_objectsself	__class__ d/var/www/html/ndineBlogger/venv/lib/python3.10/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      |   d }| d| j|S )Nr   before_delete_snippetr   run_hookrequestr   objectsr   r   r   run_before_hook*   s   z DeleteBulkAction.run_before_hookc                 C   r   )Nr   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   user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>?   s    z3DeleteBulkAction.execute_action.<locals>.<listcomp>)pk__inr   )r)   r!   filterr   len)clsr!   r'   kwargsr   r   r   execute_action<   s
   zDeleteBulkAction.execute_actionc                    sl   t  jdi |}t|d dkr4|d d }|d }|t| t|j	dt
|jfdd |S )	Nitems   r   itemusage)args)usage_count	usage_urlr   )r   get_context_datar1   updater	   get_grouped_references_tocountr   snippet_viewsetget_url_namer   r,   )r   r3   contextitem_contextr7   r   r   r   r<   C   s   

z!DeleteBulkAction.get_context_datac                 C   sJ   |dkrt dt| jjj| jd d S tdd|t| jjj|d S )Nr6   z$%(model_name)s '%(object)s' deleted.r   )
model_nameobjectz!%(count)d %(model_name)s deleted.)rD   r?   )_r   r)   _metaverbose_nameactionable_objectsr   verbose_name_plural)r   num_parent_objectsnum_child_objectsr   r   r   get_success_messageV   s   z$DeleteBulkAction.get_success_messager   )__name__
__module____qualname__rF   display_nameaction_type
aria_labeltemplate_nameaction_priorityclassesr   r   r   r"   r$   r+   classmethodr4   r<   rM   __classcell__r   r   r   r   r      s"    r   N)django.contrib.admin.utilsr   django.urlsr   django.utils.functionalr   django.utils.textr   django.utils.translationr   rF   r   wagtail.admin.views.genericr   wagtail.modelsr	   1wagtail.snippets.bulk_actions.snippet_bulk_actionr
   wagtail.snippets.permissionsr   r   r   r   r   r   <module>   s    