| 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/base/__pycache__/ |
Upload File : |
o
hͦh`� � @ sj d Z ddlZddlZddlZddlZddlmZmZ ddlmZ ddlm Z ddl
mZmZm
Z
ddlZddlmZ ddlmZ dd lmZ dd
lmZ ddlmZmZmZ ddlmZmZmZ dd
l m!Z!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z,m-Z- ddl.m/Z/m0Z0m1Z1m2Z2 ddl3m4Z4m5Z5m6Z6 ddl7m8Z8 ddl9m:Z:m;Z; ddl<m=Z= ddl>m?Z? ddl@mAZA ddlBmCZD ddlEmFZF ddlGmHZH ddlImJZJ ddlKmLZLmMZM ddlNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZY dd lZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZm�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z� dd!l�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z� dd"l�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z� dd#l�m�Z� dd$l�m�Z�m�Z� dd%l�m�Z�m�Z�m�Z�m�Z�m�Z� dd&l�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z� dd'l�m�Z� dd(l�m�Z�m�Z�m�Z�m�Z�m�Z� dd)l�m�Z�m�Z� dd*l�m�Z� dd+l�m�Z�m�Z�m�Z� dd,l�m�Z� dd-l�m�Z� d.d/� Z�d0d1� Z�d2d3� Z�d4d5� Z�d6d7� Z�e�d8d9� �Z�e�d:d;� �Z�e�d<d=� �Z�e�d>d?� �Z�e�d@dA� �Z�e�dBdC� �Z�e�dDdE� �Z�e�dFdG� �Z�dHdI� Z�dJdK� Z�dLdM� Z�G dNdO� dOe"�Z�G dPdQ� dQe"�Z�e�e!dRdS� e�e!dTes� e�e!dUdV� e�dWdX� �Z�dYdZ� Z�G d[d\� d\�Z�e�d]d^� �Z�e�e�d_�d`da� ��Z�e�dbdc� �Z�e�e�e�dd�dedf� ���Z�e�eHdgg�e�dh�didj� ���Z�e�e�dk�dldm� ��Z�e�e�dk�dndo� ��Z�e�e�e�dd�dpdq� ���Z�e�e�dk�drds� ��Z�e�e�dk�dtdu� ��Z�e�e�dv�eHdgg�dwdx� ���Z�e�e�dv�eHdgg�dydz� ���Z�e�e eHdgd{g�d|d}� ���Z�e�e�eà d~d� ����Z e�e�eà d�d�� ����Ze�e�d��d�d�� ���Ze�e�d��d�d�� ���Ze�e�d��d�d�� ���Zd�d�� �Ze�e�e�d��d�d�� ����Ze�e�d��d�d�� ���Ze�e�e�d��d�d�� ����Ze�eHdgg�e�d��d�d�� ����Z e�e�d��d�d�� ���Z
e�e�e�d��d�d�� ����Ze�e�d��d�d�� ���Ze�e�e�d��d�d�� ����Z
e�e�e�d��d�d�� ����Ze�e�d��d�d�� ���Ze�e�e�d��d�d�� ����Ze�e�d��d�d�� ���Ze�e�e�d��d�d�� ����Ze�e�e�d��d�d�� ����Ze�e�e�d��d�d�� ����Ze�e�d��d�d�� ���Ze�e�e�d��d�d�� ����Ze�e�e�d��d�d�� ����Ze�e�dd�dĄ ���Ze�e�e�dŃd�dDŽ ����Ze�e�e�dȃd�dʄ ����Ze�e�d˃d�d̈́ ���Ze�e�e�dd�dЄ ����Ze�e�dуd�dӄ ���Ze�e�e�dԃd�dք ����Ze�e�e�dуd�d ����Ze�e�d�dڄ ���Z e�e�e�dۃd�d݄ ����Z!e�e�dۃd�d߄ ���Z"�d4d�d��Z#e�e�e�dۃd�d� ����Z$e�e�dۃd�d� ���Z%e�e�d�d�d� ���Z&e�e�e�d�eHdgg�d�d� �����Z'e�e�d�d�d� ���Z(e�e�e�d�d�d� ����Z)e�e�e�d�d�d� ����Z*e�e�d�d�d�� ���Z+e�e�e�d��d�d�� ����Z,e�e�e�d��d�d�� ����Z-e�e�d��d�d�� ���Z.e�e�eǐd ��d�d� ����Z/e�e�eǐd��d�d� ����Z0e�eǐd��d�d� ���Z1e�e�eǐd ��d
�d� ����Z2e�e�eǐd��d
�d� ����Z3e�eƐd��d�d� ���Z4e�e�eƐd��d�d� ����Z5e�e�eƐd��d�d� ����Z6e�eĐd�d� ���Z7e�e�eƐd��d�d� ����Z8e�eƐd��d�d� ���Z9�d�d� �Z:e�e�eƐd��d �d!� ����Z;e�eƐd��d"�d#� ���Z<e�eƐd$��d%�d&� ���Z=e�e�eƐd$�eHdgg��d'�d(� �����Z>�d)�d*� �Z?e�eƐd+��d,�d-� ���Z@e�eǐd.��d4�d/�d0����ZAe�eHdgg�e�dh��d1�d2� ����ZBe�e�e�dh��d3�d4� ����ZCeŐd5�d6� ��ZDe�eƐd7��d8�d9� ���ZEe�eĐd:�d;� ���ZF�d<�d=� �ZGe�eĐd>�d?� ���ZH�d@�dA� �ZIeŐdB�dC� ��ZJe�eƐdD��dE�dF� ���ZKeŐdG�dH� ��ZLeŐdI�dJ� ��ZMe�e�eM� �dK�dL� ����ZNe�e�eHdgg��dM�dN� ����ZOeŐdO�dP� ��ZPe�eǐdQ�eHdgg��dR�dS� ����ZQe�eĐdT�dU� ���ZReŐdV�dW� ��ZSe�eĐdX�dY� ���ZTeŐdZ�d[� ��ZUe�eƐd\��d]�d^� ���ZVeŐd_�d`� ��ZWe�eĐda�db� ���ZXe�eĐdc�dd� ���ZYe�e�eL� �de�df� ����ZZeŐdg�dh� ��Z[eŐdi�dj� ��Z\eŐdk�dl� ��Z]e�eƐdm�eHdgg��dn�do� ����Z^e�eƐdm��dp�dq� ���Z_eŐdr�ds� ��Z`e�eHdgg�eƐdm��dt�du� ����Zae�eHdgg��dv�dw� ���Zbe�eǐdx�eHdgg��dy�dz� ����ZceŐd{�d|� ��ZdeŐd}�d~� ��ZeeŐd�d�� ��ZfeŐd��d�� ��ZgeŐd��d�� ��ZheŐd��d�� ��ZieŐd��d�� ��ZjeŐd��d�� ��ZkeŐd��d�� ��Zle�e�d���d��d�� ���Zme�d��eF�d��d�� ���ZneŐd��d�� ��Zoe�d��eF�d��d�� ���ZpeŐd��d�� ��ZqeŐd��d�� ��Zre�eǐd���d��d�� ���ZseŐd��d�� ��ZteŐd��d�� ��ZueŐd��d�� ��ZveŐd��d�� ��ZweŐd��d�� ��ZxeŐd��d�� ��ZyeŐd��d�� ��ZzeŐd��d�� ��Z{e�eǐd���d��d�� ���Z|e�eǐd���d��d�� ���Z}e�e�eǐd���d��d�� ����Z~e�e�eǐd���d��d�� ����Ze�e�eǐd���d��d�� ����Z�e�e�eǐd���d��d�� ����Z�e�eǐd���d��d�� ���Z�e�e�eǐd���d��d ����Z�e�e�eǐdÃ�dĐdń ����Z�e�e�eǐdÃ�dƐdDŽ ����Z�e�e�eǐdÃ�dȐdɄ ����Z�e�e�eǐdÃ�dʐd˄ ����Z��d̐d̈́ �Z�e�e�eǐd�dϐdЄ ����Z�e�eǐdу�dҐdӄ ���Z�e�eĐdԐdՄ ���Z�e�eĐddׄ ���Z�e�eĐdؐdل ���Z�e�eĐdڐdۄ ���Z�e�eĐdܐd݄ ���Z�e�eĐdސd߄ ���Z�e�eĐd�d� ���Z�e�eĐd�d� ���Z�eŐd�d� ��Z�e�eǐd��d�d� ���Z�e�e�eǐd��d�d� ����Z�e�e�eǐd��d�d� ����Z�e�e�eǐd��d�d� ����Z�eŐd�d� ��Z�eŐd�d�� ��Z��d��d�� �Z�eŐd��d�� ��Z�e�eǐd���d��d�� ���Z�e�eǐd���d��d�� ���Z�eŐd �d� ��Z��d�d� �Z�e�eĐd�d� ���Z�e�e�eǐd��d�d� ����Z��d �d
� �Z��d�d� �Z��d
�d� �Z�e�eǐd��d�d� ���Z�eŐd�d� ��Z�eŐd�d� ��Z�e�eĐd�d� ���Z�e�e�eǐd��d�d� ����Z�e�e�eǐd��d�d� ����Z�e�eHdgg�eǐd��d�d � ����Z�eŐd!�d"� ��Z�eŐd#�d$� ��Z�e�e�eǐd%��d&�d'� ����Z�eŐd(�d)� ��Z�e�eĐd*�d+� ���Z�e�e�eǐd,��d-�d.� ����Z�e�e�eǐd/��d0�d1� ����Z�e�eĐd2�d3� ���Z�dS (5 zO
views.py
This module is used to map url pattens with django views or methods
� N)�datetime� timedelta)� MIMEImage)�path)�parse_qs�unquote� urlencode)�forms)�apps)�settings)�messages)�authenticate�login�logout)�Group�
Permission�User)�PasswordResetConfirmView�PasswordResetView)�ContentFile)�EmailMultiAlternatives)�call_command)� Paginator)�ProtectedError�Q)�Http404�HttpResponse�HttpResponseRedirect�JsonResponse)�get_object_or_404�redirect�render)�render_to_string)�reverse�reverse_lazy)�timezone)�
strip_tags)� localdate)�gettext)�csrf_exempt)�require_http_methods)�ConfiguredEmailBackend)�shift_request_change_permission�#work_type_request_change_permission)�CompanyLeaveFilter�
HolidayFilter�
PenaltyFilter�RotatingShiftAssignFilters�RotatingShiftRequestReGroup�RotatingWorkTypeAssignFilter�RotatingWorkTypeRequestReGroup�ShiftRequestFilter�ShiftRequestReGroup�WorkTypeRequestFilter�WorkTypeRequestReGroup),�AnnouncementExpireForm�AssignPermission�AssignUserGroup�AuditTagForm�ChangePasswordForm�CompanyForm�CompanyLeaveForm�DepartmentForm�
DriverForm�DynamicMailConfForm�DynamicMailTestForm�DynamicPaginationForm�EmployeeShiftForm�EmployeeShiftScheduleForm�EmployeeShiftScheduleUpdateForm�EmployeeTypeForm�HolidayForm�HolidaysColumnExportForm�JobPositionForm�JobPositionMultiForm�JobRoleForm�MailTemplateForm�MultipleApproveConditionForm�PassWordResetForm�ResetPasswordForm�RotatingShiftAssign�RotatingShiftAssignExportForm�RotatingShiftAssignForm�RotatingShiftAssignUpdateForm�RotatingShiftForm� RotatingWorkTypeAssignExportForm�RotatingWorkTypeAssignForm� RotatingWorkTypeAssignUpdateForm�RotatingWorkTypeForm�ShiftAllocationForm�ShiftRequestColumnForm�ShiftRequestCommentForm�ShiftRequestForm�TagsForm�
UserGroupForm�WorkTypeForm�WorkTypeRequestColumnForm�WorkTypeRequestCommentForm�WorkTypeRequestForm)
�choosesubordinates�closest_numbers�export_data�filtersubordinates�filtersubordinatesemployeemodel�format_date�generate_colors�get_key_instances�get_pagination�is_reportingmanager�
paginator_qry�random_color_generator�sortby) � WEEK_DAYS�WEEKS�Announcement�AnnouncementExpire�AnnouncementView�BaserequestFile�BiometricAttendance�Company�
CompanyLeaves�DashboardEmployeeCharts�
Department�DynamicEmailConfiguration�DynamicPagination�
EmployeeShift�EmployeeShiftDay�EmployeeShiftSchedule�EmployeeType�Holidays�HorillaMailTemplate�JobPosition�JobRole�MultipleApprovalCondition�MultipleApprovalManagers�
RotatingShift�RotatingWorkType�RotatingWorkTypeAssign�ShiftRequest�ShiftRequestComment�Tags�WorkType�WorkTypeRequest�WorkTypeRequestComment)�EmployeeFilter)�ActiontypeForm� EmployeeGeneralSettingPrefixForm)�
Actiontype�DisciplinaryAction�Employee�EmployeeGeneralSetting�EmployeeWorkInformation)�delete_permission�duplicate_permission�hx_request_required�login_required�manager_can_enter�permission_required)�group_by_queryset)�APPS�DB_INIT_PASSWORD�DYNAMIC_URL_PATTERNS�FILE_STORAGE�NO_PERMISSION_MODALS)�get_horilla_model_class�remove_dynamic_url)�HistoryTrackingFieldsForm)�AccountBlockUnblock�AuditTag�HistoryTrackingFields)�Notification)�notifyc C �
t | d�S )z
Custom 404 method
z404.html�r! ��request� r� �/var/www/erp/base/views.py� custom404� s
r� c C s8 | j j}z
|jjj}W ||kS ty td� Y S w )z�
If the instance have employee id field then you can use this method to know the request
user employee is the reporting manager of the instance
z,This Employee Dont Have any work information)�user�employee_get�employee_id�employee_work_info�reporting_manager_id� Exceptionr )r� �instance�manager�employee_work_info_managerr� r� r� �is_reportingmanger� s ���r� c C sD t j�� } | s d} t jjdd�}|D ]}t|d�rd} | S q| S )a�
Determines if the database initialization process should be triggered.
This function checks whether there are any users in the database. If there are no users,
or if there are superusers without associated employees, it indicates that the database
needs to be initialized.
Returns:
bool: True if the database needs to be initialized, False otherwise.
T)�is_superuserr� F)r �objects�exists�filter�hasattr)�initialize_database�
superusersr� r� r� r� �initialize_database_condition� s
�r� c C s� t � rT| jdkrP| j�d�tkrHg d�}dddddd d
dd�}|d
d� |�� D �7 }|D ]}t�tj d|�}t
d|� q,t�| t
d�� tt�S t�| t
d�� tt�S td�S )N�POST�load_data_password)zuser_data.jsonzemployee_info_data.jsonzbase_data.jsonzwork_info_data.jsonzattendance_data.jsonzleave_data.jsonzasset_data.jsonzrecruitment_data.jsonzonboarding_data.jsonzoffboarding_data.jsonz
pms_data.jsonzpayroll_data.json)�
attendance�leave�asset�recruitment�
onboarding�offboarding�pms�payrollc S s g | ]\}}t �|�r|�qS r� )r
�is_installed)�.0�app�filer� r� r� �
<listcomp>� s ��z&load_demo_database.<locals>.<listcomp>� load_data�loaddatazDatabase loaded successfully.zDatabase Authentication Failed�/)r� �methodr� �getr� �itemsr �joinr �BASE_DIRr r �success�_�errorr �home)r� �
data_files�
optional_appsr� � file_pathr� r� r� �load_demo_database� s0
���r� c C sb t � r-| jdkr(| j�d�}ddlm} ||krtt�S t� | t
d�� td�S t| d�S td�S ) z�
Handles the database initialization process via a user interface.
Parameters:
request (HttpRequest): The request object.
Returns:
HttpResponse: The rendered HTML template or a redirect response.
r� �passwordr )r� z8The password you entered is incorrect. Please try again.�)<script>window.location.reload()</script>z%initialize_database/horilla_user.htmlr� )
r� r� �_postr� �horilla.horilla_settingsr� r �initialize_database_userr �warningr� r r! )r� r� �db_passwordr� r� r� r� s
�
r� c C s | j dkr�| j�d�}|�d�}|�d�}|�d�}||kr#t| d�S |�d�}|�d�}|�d �}|�d
�}|�d�} tjj|d��� }
|
rPt|
d
�sP|
� � tjj
|||d�}
t� }|
|_||_
||_||_||_| |_|�� t| ||d�}
t| |
� t| ddtddid�i�S t| d�S )z�
Handles the user creation step during database initialization.
Parameters:
request (HttpRequest): The request object.
Returns:
HttpResponse: The rendered HTML template for company creation or user signup.
r� r� �usernamer� �confirm_passwordz,initialize_database/horilla_user_signup.html� firstname�lastname�badge_id�email�phone�r� r� )r� r� r� �r� r� �(initialize_database/horilla_company.html�form�hqT��initial)r� �__dict__r� r! r r� r� �firstr� �delete�create_superuserr� �employee_user_idr� �employee_first_name�employee_last_namer� r� �saver
r r>