403Webshell
Server IP : 65.108.144.40  /  Your IP : 216.73.217.165
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64
User : dev ( 1000)
PHP Version : 8.2.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/erp/pms/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/erp/pms/__pycache__/signals.cpython-310.pyc
o

hͦh� �@s�dZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZddlm
Z
ddlmZddlmZddlmZdd	lmZe�e�ZgZgZd
d�ZdS)z
pms/signals.py
�N)�date)�m2m_changed�post_delete�	post_save�pre_save)�receiver)�&check_relationship_with_employee_model)�_thread_locals)�pre_bulk_update)�BonusPointSettingcshddlm�m}tttd�tttd���fdd���}dd����fdd	���fd
d������dS)
z
    Automation signals
    r)�get_model_class�split_query_string��sendercs����dS)z>
        signal method to handle automation post save
        N�)r�instance�kwargs)�start_connection�track_previous_instancer�/var/www/erp/pms/signals.py�automation_pre_create s
z/start_automation.<locals>.automation_pre_createcSs&tD]
}tj||jd�qt��dS)z2
        Method to clear signals handlers
        rN)�SIGNAL_HANDLERSr�
disconnect�model_class�clear��handlerrrr�clear_connection)sz*start_automation.<locals>.clear_connectioncs���tjjdd�}|D]]}|j}�|��t��}d}d}|D]'\}}|jdkr2|dkr2|}|}n|jdks@|jdkrF|dkrF|}|}nqd�fd	d
�	}|j�d�}	||	|||d�}
t�|
�t	j
|
|
jd
�qdS)zQ
        Method to start signal connection accordingly to the automation
        T��	is_activeN�members�ManyToManyField�managers�owner�
ForeignKeycs4����fdd�}||_�|_�|_�|_�|_|S)Nc
s��dkrtt�jjd����fdd��}dSt��}|j}�j|jkrU�rO�rOt	|��}�dkrC|�
�}|D]
}	��|	|||�q6dS|}	��|	|||�dStd�dSdS)ze
                    Signal handler for post-save events of the model instances.
                    r!rc	s�|dks|dks|dks|dkrHt��}|j}�j|jkrF�r@�r@t|��}�dkr/|��}n|}|D]
}��||||�q3dStd�dSdStd�dS)	zw
                            Handle m2m_changed signal for the members field in YourModel.
                            �post_add�post_remove�
post_clearrr!�No type and fieldz
Not post add.N)	r�today�end_date�	bonus_for�status�getattr�all�create_employee_bonus�logger)	rr�actionr�field_1�field_2�field_value�	employees�employee��bonus_point_setting�field�typerr�members_changedUs(

���zzstart_automation.<locals>.start_connection.<locals>.create_signal_handler.<locals>.signal_handler.<locals>.members_changedr(N)
rrr �throughrr)r*r+r,r-r.r/r0)
rr�argsrr;r2r3r4r5r6)r8r9rr:rr�signal_handlerOs*
����zastart_automation.<locals>.start_connection.<locals>.create_signal_handler.<locals>.signal_handler)�__name__rr:r9r8)�namer8r:r9r>�rr7r�create_signal_handlerNs:zIstart_automation.<locals>.start_connection.<locals>.create_signal_handler�_signal_handler)r:r9r)NN)r�objects�filter�modelr�applicable_for�idr�appendr�connectr)�bonus_point_settingsr8�
model_path�related_fieldsr9r:�
field_name�
relation_typerB�handler_name�dynamic_signal_handler)rrrArr1s>


�C�
��z*start_automation.<locals>.start_connectioncsfdd�}|�tjjdd�}|D] ���j��tt�d����fdd�����_��_t�	��qdS)	zX
        method to add signal to track the automations model previous instances
        cSs6tD]}tj||jd�tj||jd�qt��dS)zB
            Method to clear instance handler signals
            rN)�INSTANCE_HANDLERSrrrr
rrrrr� clear_instance_signal_connection�sz[start_automation.<locals>.track_previous_instance.<locals>.clear_instance_signal_connectionTrrcsHttdd�}|jr�jj|jd���}|r�|d�t_�j�d��_�S)z]
                Signal handler for pres-save events of the model instances.
                �requestN)rH)�
bonus_settingr�_instance_handler)	r-r	�pkrDrE�first�previous_recordrHr?)rrrrT�rU�instance_handlerrrrr[�s�zKstart_automation.<locals>.track_previous_instance.<locals>.instance_handlerN)
rrDrErFrrrrUrRrI)rSrK)rrZrr�s	

�z1start_automation.<locals>.track_previous_instanceN)�#horilla_automations.methods.methodsrr
rrrr)r
rr)rrrrr�start_automations

i*
r])�__doc__�copy�logging�	threading�types�datetimer�django.db.models.signalsrrrr�django.dispatchr�employee.methods.methodsr�horilla.horilla_middlewaresr	�horilla.signalsr
�
pms.modelsr�	getLoggerr?r0rrRr]rrrr�<module>s 


Youez - 2016 - github.com/yon3zu
LinuXploit