
    siZ                         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      9/var/www/python-projects/worksol/accessibility/signals.py_clear_accessibility_cacher      sC     = B B D J J L * 	CLL	    c                     | D ]q  }d }|j                   rI|j                   j                  r3t        j                  |j                   j                  j                        }|s]t        j                  |       s y r   )employee_idemployee_user_idr   getidr   r   )querysetinstance	cache_keys      r   _clear_bulk_employees_cacher      sc     $	H$8$8$I$I599$$5588I LL#$r   )senderc                     | }|}|j                   rj|j                   j                  rS|j                   j                  j                  }t        j                  |g       }|D ]  }t        j                  |        yyy)zP
    This method tracks updates to an employee's work information instance.
    N)r   r   r   r   r   r   r   )	r   r   createdkwargs_sender_createduser_idr   r   s	            r   monitor_employee_updater%   "   sr     GH 4 4 E E&&77::266wC
 	CLL		 !F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.   3   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_updater2   ?   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.   r2    r   r   <module>r<      s     # . $ C 5 3 ,$ 
)34 5  
)01 2 

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