o
    hp                     @   s   d dl 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mZmZmZ d dlmZmZmZmZ dd	lmZ e d
Zd%ddZdd Zdd Zdd Zdd Ze Zedd Zdd Zdd Z dd Z!dd Z"dd  Z#d!d" Z$d#d$ Z%dS )&    N)contextmanager)Local)cache)transaction)post_deletepost_migrate	post_save
pre_deletepre_migrate)LocalePageReferenceIndexSite   )update_reference_index_taskwagtailc                 K      t   d S Nr   clear_site_root_paths_cache)instanceupdate_fieldskwargs r   W/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/signal_handlers.pypost_save_site_signal_handler      r   c                 K   r   r   r   r   r   r   r   r   post_delete_site_signal_handler   r   r   c                 K   s   |j r|jdd d d S d S )NF)commit
log_action)live	unpublishsenderr   r   r   r   r   pre_delete_page_unpublish   s   r%   c                 K   s   t d|j|j d S )NzPage deleted: "%s" id=%d)loggerinfotitleidr#   r   r   r   post_delete_page_log_deletion&   s   r*   c                 K   s   t d d S )Nwagtail_locales_display_name)r   deleter#   r   r   r   !reset_locales_display_names_cache*   s   r-   c                   c   s     zdt _dV  W t `dS t `w )a  
    A context manager that can be used to temporarily disable the reference index auto-update signal handlers.

    For example:

    with disable_reference_index_auto_update():
        my_instance.save()  # Reference index will not be updated by this save
    TN)$reference_index_auto_update_disabledvaluer   r   r   r   #disable_reference_index_auto_update1   s
   
r0   c                 K   s@   | ddrd S ttddrd S t| jj| jjt| j	 d S )NrawFr/   )
getgetattrr.   r   enqueue_meta	app_label
model_namestrpkr   r   r   r   update_reference_index_on_saveB   s   r:   c                 K   sH   t tddrd S t  t|  W d    d S 1 sw   Y  d S )Nr/   F)r3   r.   r   atomicr   remove_for_objectr   r   r   r    remove_reference_index_on_deleteO   s
   
"r=   c                 C       t jt| d tjt| d d S N)r$   )r   connectr:   r   r=   modelr   r   r   1connect_reference_index_signal_handlers_for_modelW      rC   c                  K      t jD ]}t| qd S r   )r   tracked_modelsrC   r   rB   r   r   r   'connect_reference_index_signal_handlers\      

rH   c                 C   r>   r?   )r   
disconnectr:   r   r=   rA   r   r   r   4disconnect_reference_index_signal_handlers_for_modela   rD   rK   c                  K   rE   r   )r   rF   rK   rG   r   r   r   *disconnect_reference_index_signal_handlersf   rI   rL   c                   C   sl   t jttd tjttd tjttd tjt	td t jt
td tjt
td tt tt d S r?   )r   r@   r   r   r   r   r	   r%   r   r*   r-   r   r
   rL   r   rH   r   r   r   r   register_signal_handlersk   s   
rM   r   )&logging
contextlibr   asgiref.localr   django.core.cacher   	django.dbr   django.db.models.signalsr   r   r   r	   r
   wagtail.modelsr   r   r   r   tasksr   	getLoggerr&   r   r   r%   r*   r-   r.   r0   r:   r=   rC   rH   rK   rL   rM   r   r   r   r   <module>   s0    


