
    vgw                         d Z 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 ddlmZ dd	lmZ d
 Zd Z eee      d        Z eee      d        Z eee      d        Zy)z
accessibility/signals.py
    N)cache)	post_save)receiver)ACCESSIBILITY_CACHE_USER_KEYS)DefaultAccessibility)EmployeeWorkInformation)post_bulk_updatec                      t        j                         j                         D ]!  \  } }|D ]  }t        j                  |        # y N)r   copyitemsr   delete)_user_id
cache_keyskeys      )/var/www/horilla/accessibility/signals.py_clear_accessibility_cacher      sC     = B B D J J L * 	CLL	    c                     | D ]M  }t        j                  |j                  j                  j                        }|s9t        j                  |       O y r   )r   getemployee_idemployee_user_ididr   r   )querysetinstance	cache_keys      r   _clear_bulk_employees_cacher      sG     $155  1144
	 LL#$r   )senderc                     | }|}t        j                         j                  |j                  j                  j
                  g       }|D ]  }t        j                  |        y)z7
    This method to track employee instance update
    N)r   r   r   r   r   r   r   r   )r   r   createdkwargs_sender_createdr   r   s           r   monitor_employee_updater$       s[     GH.33599--00"J  Sr   c                 d    | }|}|}t        j                  t              }|j                          yz<
    This method is used to track accessibility updates
    )targetN)	threadingThreadr   start)r   r   r    r!   r"   r#   	_instancethreads           r   monitor_accessibility_updater-   /   s-    
 GHI%?@F
LLNr   c                 j    | }|}t        j                  t        |            }|j                          yr&   )r(   r)   r   r*   )r   r   argsr!   r"   	_querysetr,   s          r   monitor_employee_bulk_updater1   ;   s-    
 GI%@%JKF
LLNr   )__doc__r(   django.core.cacher   django.db.models.signalsr   django.dispatchr   accessibility.middlewaresr   accessibility.modelsr   employee.modelsr   horilla.signalsr	   r   r   r$   r-   r1    r   r   <module>r;      s     # . $ C 5 3 ,$ 
)34 5 
)01 2 

#:; <r   