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 :  /home/dev/code/erp/employee/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/dev/code/erp/employee/__pycache__/forms.cpython-310.pyc
o

��g+[�@sdZddlZddlZddlmZddlmZddlmZddl	m
Z
ddlmZddl
mZmZdd	lmZdd
lmZddlmZddlmZmZdd
lmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&ddl'm(Z(ddl)m*Z*e�+e,�Z-Gdd�dej.�Z.Gdd�de.�Z/Gdd�de.�Z0Gdd�de.�Z1Gdd�de.�Z2Gdd�de.�Z3Gdd�de.�Z4Gdd�de.�Z5gd ed!�f�d"ed#�f�d$ed%�f�d&ed'�f�d(ed)�f�d*ed+�f�d,ed-�f�d.ed/�f�d0ed1�f�d2ed3�f�d4ed5�f�d6ed7�f�d8ed9�f�d:ed;�f�d<ed=�f�d>ed?�f�d@edA�f�dBedC�f�dDedE�f�dFedG�f�dHedI�f�dJedK�f�dLedM�f�dNedO�f�dPedQ�f�dRedS�f�dTedU�f�dVedW�f�dXedY�f�dZed[�f�d\ed]�f�d^ed_�f�d`eda�f�dbedc�f�ddede�f�dfedg�f�dhedi�f�djedk�f�dledm�f�Z6gdn�Z7Gdodp�dpej8�Z9Gdqdr�drej8�Z:Gdsdt�dte.�Z;Gdudv�dvej<�Z=Gdwdx�dxej>�Z?Gdydz�dze.�Z@Gd{d|�d|e.�ZAGd}d~�d~e.�ZBGdd��d�e.�ZCGd�d��d�e.�ZDGd�d��d�e.�ZEGd�d��d�ej.�ZFdS)�a�
forms.py

This module contains the form classes used in the application.

Each form represents a specific functionality or data input in the
application. They are responsible for validating
and processing user input data.

Classes:
- YourForm: Represents a form for handling specific data input.

Usage:
from django import forms

class YourForm(forms.Form):
    field_name = forms.CharField()

    def clean_field_name(self):
        # Custom validation logic goes here
        pass
�N)�date)�Any)�forms)�User)�Q)�	DateInput�	TextInput��render_to_string)�gettext)�gettext_lazy)�
eval_validate�reload_queryset)�
Actiontype�
BonusPoint�DisciplinaryAction�Employee�EmployeeBankDetails�EmployeeGeneralSetting�EmployeeNote�EmployeeTag�EmployeeWorkInformation�	NoteFiles�Policy�PolicyMultipleFile)�horilla_middlewares)�AccountBlockUnblockcs eZdZdZ�fdd�Z�ZS)�	ModelFormzC
    Overriding django default model form to apply some styles
    cs�t�j|i|��ttjdd�}t|j�|j��D]�\}}|j}t	|t
j�r,t�
�|_t	|t
jt
jt
jt
jf�rKt|j���}|jj�d|d��nUt	|t
jf�rqd}|jdur^t|j�}td�j|d�|_|jj�ddi�n/t	|t
j�r�|jdur�t|j�}|jj�d|d	d
d��nt	|t
jt
jf�r�|jj�ddi�z|jjj d
vr�|j!j"|jd_WnYz|j!j"j#|jd_WqYqdS)N�request�oh-input w-100)�class�placeholder��---Choose {label}---��labelr �/oh-select oh-select-2 select2-hidden-accessible��()r r!�rows�colszoh-switch__checkbox)r�employee_id�
company_id)$�super�__init__�getattrr�_thread_localsr�fields�items�widget�
isinstancerrr�today�initial�NumberInput�
EmailInputr�	FileInput�transr%�title�attrs�update�Select�format�empty_label�Textarea�
CheckboxInput�CheckboxSelectMultiple�_meta�model�__name__�user�employee_get�get_company)�self�args�kwargsr�_�fieldr3r%��	__class__��#/home/dev/erp/erp/employee/forms.pyr.?sh

��

�

�������zModelForm.__init__)rF�
__module__�__qualname__�__doc__r.�
__classcell__rQrQrOrRr:src@�eZdZdZGdd�d�ZdS)�UserForm�
    Form for User model
    c@�eZdZdZdZeZdS)z
UserForm.Meta�7
        Meta class to add the additional info
        )�groupsN�rFrSrTrUr1rrErQrQrQrR�Meta�r^N�rFrSrTrUr^rQrQrQrRrXz�rXc@rW)�UserPermissionFormrYc@rZ)zUserPermissionForm.Metar[)r\�user_permissionsNr]rQrQrQrRr^�r_r^Nr`rQrQrQrRrb�rarbcsFeZdZdZGdd�d�Z�fdd�Zdd�Zdd	�Zd
d�Z�Z	S)�EmployeeFormz!
    Form for Employee model
    c@s0eZdZdZeZdZdZdeddd�d�iZ	dS)	zEmployeeForm.Metar[�__all__)�employee_user_id�additional_info�is_from_onboarding�is_directly_converted�	is_active�dobr)�type�id�r<N)
rFrSrTrUrrEr1�excluder�widgetsrQrQrQrRr^�s�r^cs�t�j|i|��d|jdjjd<d|jdjjd<d|jdjjd<|�d�}r@i}|jdur:|j�d�|d<||d<dSd	|��i|_	dS)
N�email�autocomplete�phone�address�instancez%H:%Mrkr6�badge_id)
r-r.r1r3r<�getrk�strftime�get_next_badge_idr6)rJrKrLrur6rOrQrRr.�s
zEmployeeForm.__init__cOsd|i}td|�S)N�formz,employee/create_form/personal_info_as_p.htmlr	)rJrKrL�contextrQrQrR�as_p�s
zEmployeeForm.as_pc
Cs�ddlm}ddlm}|d�d}|�}g}z�|D].}|D])}t|t�rG|���|���rG|�|�}|dt	|�krG||d}t
�d|�}qq|r�g}d}	t|�D]M}t	|�}
d}|D]}|d	krh|d}q]|rq||d�}t|t
�rz|d
}|	s�ttt|��t�r�t|�d}d}	t|t�r�d�||
�}|�dt|��qSd
�|�}W|SW|Sty�}
zt�|
�|d�d}WYd}
~
|Sd}
~
ww)z:
        This method is used to generate badge id
        r)�get_initial_prefix)�get_ordered_badge_idsNr}�z-zA-Z]+|\d+|[^a-zA-Z\d\s]F�0���Tz{:0{}d}r")�base.context_processorsr}�employee.methods.methodsr~r4�str�lower�
startswith�index�len�re�findall�reversed�listr
�intr?�insert�join�	Exception�logger�	exception)rJr}r~�prefix�data�result�sublist�itemr��incremented�
total_letters�total_zero_leads�letter�erQrQrRry�s`�
��

��
��zEmployeeForm.get_next_badge_idcCsn|jd}|r5tj��}|j|d�j|jr|jjndd�}|��r(t	�
td���t�
d|�s5t	�
td���|S)z;
        This method is used to clean the badge id
        rv)rvN)�pkzBadge ID must be unique.z\dz)Badge ID must contain at least one digit.)�cleaned_datar�objects�get_all�filterrorur��existsr�ValidationErrorr:r��search)rJrv�
all_employees�querysetrQrQrR�clean_badge_id�s

��zEmployeeForm.clean_badge_id)
rFrSrTrUr^r.r|ryr�rVrQrQrOrRrd�s3rdcsZeZdZdZejjdd�Zej	ed�Z
Gdd�d�Zdd��fd	d
�
Z�fdd�Z
�ZS)
�EmployeeWorkInformationForm�0
    Form for EmployeeWorkInformation model
    N)�employee_work_info)r�c@s6eZdZdZeZdZeddid�eddid�d�ZdS)z EmployeeWorkInformationForm.Metar[rerlrrn��date_joining�contract_end_dateN)	rFrSrTrUrrEr1rrprQrQrQrRr^s
�r^F)�disablecs~t�j|i|��d|jdjjd<|jdjj�ddi�|jD]}|j|j|j|jjd<|r8d|j|_q!dd	d
ddd
d�}ddddddd�}|j��D]l\}}t	|t
j�r�|j|vr�|jdur�|�|j�}|j
jtkr�|r�t|j�}	td�j|	d�}
t
jd|
fgt|j
�d|���|j|	|jt
jdd|�|j��d�d�d�d�|j|<|j|jdtd ��|	�fg7_qPdS)!Nrqrr�job_position_id�onchangezjobChange($(this))r!T�
department�job_position�job_role�	work_type�
employee_type�employee_shift)�
Department�Job Position�Job Role�	Work Type�
Employee Type�Shiftz#dynamicDeptz#dynamicJobPositionz#dynamicJobRolez#dynamicWorkTypez#dynamicEmployeeTypez
#dynamicShiftr#r$r"rmr&zonDynamicCreate(this.value,"z");�r r�rn)�choices�requiredr%r6r3�createzCreate New {} )r-r.r1r3r<r=r%�disabledr2r4r�ModelChoiceFieldrwr�rErrMr?�ChoiceFieldr��values_listr�r6r>r�)rJr�rKrLrN�field_names�urlsr%�
field_name�translated_labelr@rOrQrRr.sh��
��	�	

�����
���z$EmployeeWorkInformationForm.__init__cs t���}d|jvr|jd=|S)Nr+)r-�clean�errors)rJr�rOrQrRr�Us

z!EmployeeWorkInformationForm.clean)rFrSrTrUrr�r��	employeesrr�r+r^r.r�rVrQrQrOrRr�s9r�c@rW)�!EmployeeWorkInformationUpdateFormr�c@s:eZdZdZeZdZdZeddid�eddid�d�Z	dS)	z&EmployeeWorkInformationUpdateForm.Metar[re�r+rlrrnr�N)
rFrSrTrUrrEr1rorrprQrQrQrRr^as
�r^Nr`rQrQrQrRr�\rar�csHeZdZdZejejddd�d�d�ZGdd�d�Z�fd	d
�Z	�Z
S)�EmployeeBankDetailsForm�,
    Form for EmployeeBankDetails model
    r'r()r)r*rn�r3c@� eZdZdZeZdZddgZdS)zEmployeeBankDetailsForm.Metar[rer+rjN�rFrSrTrUrrEr1rorQrQrQrRr^w��r^csDt�j|i|��d|jdjjd<|��D]	}d|jjjd<qdS)Nrtrrrr )r-r.r1r3r<�visible_fieldsrN)rJrKrL�visiblerOrQrRr.�s
�z EmployeeBankDetailsForm.__init__)rFrSrTrUr�	CharFieldrArtr^r.rVrQrQrOrRr�ps
r�cs.eZdZdZGdd�d�Z�fdd�Z�ZS)�EmployeeBankDetailsUpdateFormr�c@r�)z"EmployeeBankDetailsUpdateForm.Metar[rer+rjNr�rQrQrQrRr^�r�r^csXt�j|i|��|��D]	}d|jjjd<q
|jD]}|j|j|j|jjd<qdS)Nrr r!)r-r.r�rNr3r<r1r%)rJrKrLr�rNrOrQrRr.�s
�z&EmployeeBankDetailsUpdateForm.__init__)rFrSrTrUr^r.rVrQrQrOrRr��sr�rvzBadge ID�employee_first_namez
First Name�employee_last_namez	Last Namerq�Emailrs�Phone�
experience�
Experience�gender�Genderrkz
Date of Birth�country�Country�state�State�city�Cityrt�Address�zipzZip Code�marital_statuszMarital Status�children�Childrenrjz	Is active�emergency_contactzEmergency Contact�emergency_contact_namezEmergency Contact Name�emergency_contact_relationzEmergency Contact Relation�employee_work_info__emailz
Work Email�employee_work_info__mobilez
Work Phone�!employee_work_info__department_idr��#employee_work_info__job_position_idr��employee_work_info__job_role_idr��employee_work_info__shift_idr�� employee_work_info__work_type_idr��(employee_work_info__reporting_manager_idzReporting Manager�$employee_work_info__employee_type_idr��employee_work_info__locationz
Work Location� employee_work_info__date_joiningzDate Joining�employee_work_info__company_id�Company� employee_bank_details__bank_namez	Bank Name�employee_bank_details__branch�Branch�%employee_bank_details__account_numberzAccount Number�&employee_bank_details__any_other_code1zBank Code #1�&employee_bank_details__any_other_code2zBank Code #2�employee_bank_details__countryzBank Country�employee_bank_details__statez
Bank State�employee_bank_details__cityz	Bank City)rvr�r�rjrqrsr�c@s"eZdZejeejgd�d�ZdS)�EmployeeExportExcelForm)rvr�r�rqrsr�r�r�r�r�r�r�r�r�)r�r3r6N)rFrSrTr�MultipleChoiceField�
excel_columnsrC�selected_fieldsrQrQrQrRr�s
�rcs>eZdZejeed�d�Zeje�	�d�Z
�fdd�Z�ZS)�BulkUpdateFieldFormzSelect Fields to Update)r�r%r�csTt�j|i|��dd�|jdjD�}||jd_|��D]	}d|jjjd<qdS)NcSs g|]\}}|tvr||f�qSrQ)�fields_to_remove)�.0�valuer%rQrQrR�
<listcomp>�s
�z0BulkUpdateFieldForm.__init__.<locals>.<listcomp>�
update_fieldsz>oh-select oh-select-2 select2-hidden-accessible oh-input w-100r )r-r.r1r�r�rNr3r<)rJrKrL�updated_choicesr�rOrQrRr.�s
���zBulkUpdateFieldForm.__init__)
rFrSrTrrrrMr
r��HiddenInput�bulk_employee_idsr.rVrQrQrOrRr�s�rcsFeZdZdZGdd�d�Z�fdd�Zddedef�fd	d
�
Z�Z	S)�EmployeeNoteFormz%
    Form for EmployeeNote model
    c@seZdZdZeZdZdS)zEmployeeNoteForm.Metar[)�descriptionN)rFrSrTrUrrEr1rQrQrQrRr^r_r^cs2t�j|i|��tdd�|jd<d|jd_dS)N�filesr$�
note_filesF)r-r.�MultipleFileFieldr1r��rJrKrLrOrQrRr.szEmployeeNoteForm.__init__.�commit�returncs�g}g}d}|j�d�r/|j�d�}|d|j_g}|D]}t�}||_|��|�|j�qt��|�}|r=|j	j
|�||fS)Nrr)r�getlistru�attachementr�save�appendr�r-r�add)rJrr�multiple_attachment_ids�attachements�
file_instancerurOrQrRrs zEmployeeNoteForm.save).)
rFrSrTrUr^r.�boolrrrVrQrQrOrRrs
 rc@seZdZdZdS)�MultipleFileInputTN)rFrSrT�allow_multiple_selectedrQrQrQrRr"(sr"cs*eZdZ�fdd�Zd�fdd�	Z�ZS)rcs$|�dt��t�j|i|��dS)Nr3)�
setdefaultr"r-r.rrOrQrRr.-szMultipleFileField.__init__NcsRt�j�t|ttf�r��fdd�|D�}n�|��g}t|�dkr%gg}|dS)Ncsg|]}�|���qSrQrQ)r
�d�r6�single_file_cleanrQrRr4sz+MultipleFileField.clean.<locals>.<listcomp>r)r-r�r4r��tupler�)rJr�r6r�rOr&rRr�1szMultipleFileField.clean)N)rFrSrTr.r�rVrQrQrOrRr,srcs@eZdZdZGdd�d�Z�fdd�Zdd��fdd	�
Z�ZS)
�
PolicyFormz
    PolicyForm
    c@s2eZdZeZdZddgZdejddd�d�iZ	d	S)
zPolicyForm.Metare�attachmentsrj�bodyr"z
display:none;)zdata-summernote�stylernN)
rFrSrTrrEr1rorrArprQrQrQrRr^As��r^cs(t�j|i|��tddd�|jd<dS)N�AttachementsF)r%r��
attachment)r-r.rr1rrOrQrRr.Ks�zPolicyForm.__init__T)rc	svg}g}d}|j�d�r)|j�d�}g}|D]}t�}||_|��|�|j�qt��|�}|r7|jj	|�||fS)Nr.)
rrrr.rrr�r-r*r)	rJrrKrL�
attachemntr�attachemntsr rurOrQrRrQszPolicyForm.save)rFrSrTrUr^r.rrVrQrQrOrRr)<s

r)c@�eZdZGdd�d�ZdS)�BonusPointAddFormc@s,eZdZeZddgZdejddid�iZdS)zBonusPointAddForm.Meta�points�reasonr�rnN)	rFrSrTrrEr1rrrprQrQrQrRr^ds
�r^N�rFrSrTr^rQrQrQrRr2csr2c�*eZdZGdd�d�Z�fdd�Z�ZS)�BonusPointRedeemFormc@seZdZeZdgZdS)zBonusPointRedeemForm.Metar3N)rFrSrTrrEr1rQrQrQrRr^ms
r^csZt���}tjj|jjd���}|j|dkrt	�
ddi��|ddkr+t	�
ddi��dS)Nr�r3z!Not enough bonus points to redeemrz+Points must be greater than zero to redeem.)r-r�rr�r�rur+�firstr3rr�)rJr��available_pointsrOrQrRr�qs
����zBonusPointRedeemForm.clean)rFrSrTr^r�rVrQrQrOrRr7lsr7csZeZdZGdd�d�Zejej��e	d�ej
ddd�d�d�Z�fd	d
�Zdd�Z
�ZS)
�DisciplinaryActionFormc@s0eZdZeZdZddgZdejddid�iZ	dS)	zDisciplinaryActionForm.Metarer�rj�
start_daterlrrnN)
rFrSrTrrEr1rorrrprQrQrQrRr^s�r^�Actionr&zactionTypeChange($(this))r�rn)r�r%r3csvt�j|i|��dtd�fgt|jdj�dd��}||jd_|jj	dur9|jdjdtd�fg7_dSdS)Nr"z---Choose Action---�actionrmr;r�zCreate new action type )
r-r.rMr�r1r�r�r�rur�)rJrKrL�action_choicesrOrQrRr.�s�"�zDisciplinaryActionForm.__init__cCsd|i}td|�}|S)zS
        Render the form fields as HTML table rows with Bootstrap styling.
        rzzcommon_form.htmlr	)rJr{�
table_htmlrQrQrRr|�s
zDisciplinaryActionForm.as_p)rFrSrTr^rr�rr��allrMr>r=r.r|rVrQrQrOrRr:~s���	r:cr6)�ActiontypeFormc@seZdZeZdZdgZdS)zActiontypeForm.MetarerjN)rFrSrTrrEr1rorQrQrQrRr^�s
r^cs.t�j|i|��|jdjj�ddi�dS)N�action_typer�zactionChange($(this)))r-r.r1r3r<r=rrOrQrRr.�s
��zActiontypeForm.__init__)rFrSrTr^r.rVrQrQrOrRrA�srAc@rW)�EmployeeTagFormz
    Employee Tags form
    c@s2eZdZdZeZdZdgZdeddd�d�iZ	dS)	zEmployeeTagForm.Metaz3
        Meta class for additional options
        rerj�colorzheight:50px)rlr,rnN)
rFrSrTrUrrEr1rorrprQrQrQrRr^�sr^Nr`rQrQrQrRrC�rarCc@r1)� EmployeeGeneralSettingPrefixFormc@s8eZdZeZdgZejddid�ejddid�d�Z	dS)z%EmployeeGeneralSettingPrefixForm.Metar�r rrnzoh-select oh-select-2 w-100)�badge_id_prefixr,N)
rFrSrTrrErorrr>rprQrQrQrRr^�s
�r^Nr5rQrQrQrRrE�srE)GrU�loggingr��datetimer�typingr�djangor�django.contrib.auth.modelsr�django.db.modelsr�django.formsrr�django.template.loaderr
�django.utils.translationrrMrr:�base.methodsr
r�employee.modelsrrrrrrrrrrrr�horillar�horilla_audit.modelsr�	getLoggerrFr�rrXrbrdr�r�r�r�rr	�Formrrr�ClearableFileInputr"�	FileFieldrr)r2r7r:rArCrErQrQrQrR�<module>s�8
@rT
�
�
�
�
�
�
�
�
	�

�
�
�

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 �
!�
"�
#�
$�
%�
&�
'�)&'	&

Youez - 2016 - github.com/yon3zu
LinuXploit