
    si                         d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZmZmZ d	 Zedd       Zedd       Zed        Zy
)z
decorator functions for base
    )messages)HttpResponseHttpResponseRedirect)render)EmployeeWorkInformation)_thread_locals   )MultipleApprovalManagersShiftRequestWorkTypeRequestc                       fdS )Nc                        fdS )Nc                      | gi S N )funcargs	decoratorkwargss    3/var/www/python-projects/worksol/base/decorators.py<lambda>z,<lambda>.<locals>.<lambda>.<locals>.<lambda>   s    9<<<     r   )r   r   r   s   ``r   r   z<lambda>.<locals>.<lambda>   s
     / r   r   )r   s   `r   r   r      s
      r   Nc                      	 d fd	}|S )Nc                    t         j                  j                  |      }| j                  j	                  d      sZ| j                  j
                  |j                  j                  j                  k(  s#| j                  j
                  |j                  k(  r | g|d|i|S t        j                  | d       t        | j                  j                  dd            S )]
        This method is used to check the employee can change a shift request or not
        idzbase.change_shiftrequestshift_request_idYou dont have permission.HTTP_REFERER/)r   objectsgetuserhas_permemployee_getemployee_idemployee_work_inforeporting_manager_idr   infor   META)requestr   r   r   shift_requestfunctions        r   check_permissionz9shift_request_change_permission.<locals>.check_permission   s     %,,004D0ELL!!"<=||((((;;PPQ||((M,E,EEGXdX=MXQWXXg:;#GLL$4$4^S$IJJr   r   r   r.   r   r   r/   s   `   r   shift_request_change_permissionr1      s     K* r   c                      	 d fd	}|S )Nc                    t         j                  j                  |      }| j                  j	                  d      sZ| j                  j
                  |j                  j                  j                  k(  s#| j                  j
                  |j                  k(  r | g|d|i|S t        j                  | d       t        | j                  j                  dd            S )r   r   zbase.change_worktyperequestwork_type_request_idr   r    r!   )r   r"   r#   r$   r%   r&   r'   r(   r)   r   r*   r   r+   )r,   r4   r   r   work_type_requestr.   s        r   r/   z=work_type_request_change_permission.<locals>.check_permission1   s     ,3377;O7PLL!!"?@||(( ,,??TTU||((,=,I,II5IMS  	g:;#GLL$4$4^S$IJJr   r   r   r0   s   `   r   #work_type_request_change_permissionr6   /   s     "K. r   c                       fd}|S )z
    This method is used to check permission to employee for enter to the function if the employee
    do not have permission also checks, has reporting manager.
    c                    g d}t        t        d      }t        | dd       s|| _        |j                  }|j                  }|v rFt
        j                  j                  |j                        j                         }|r | g|i |S t        j                  j                  |      j                         }|j                        s|r | g|i |S t        j                  |d       |j                  j                  dd      }	d|	 d	}
d
}||j                  j!                         v rt#        |d      S t%        |
      S )N)zleave.view_leaverequestzleave.change_leaverequestzleave.delete_leaverequestr,   )r'   )r)   r   r    r!   z <script>window.location.href = "z
"</script>HTTP_HX_REQUESTzdecorator_404.html)getattrr   r,   r$   r&   r
   r"   filterr   existsr   r%   r   r*   r+   r#   keysr   r   )selfr   r   
leave_permr,   r$   employeeis_approval_manager
is_managerprevious_urlscriptkeyr.   perms               r   	_functionz$manager_can_enter.<locals>._functionR   sA   


 .)4tY-"DL||$$:":"B"B"I"I$KK #J #fh   #6t6v66,44;;!) < 

&( 	 ==*D242622MM'#>?"<<++NC@L7~ZPF#Cgll''))g';<<''r   r   )r.   rF   rG   s   `` r   manager_can_enterrH   K   s    (> r   r   )__doc__django.contribr   django.httpr   r   django.shortcutsr   employee.modelsr   horilla.horilla_middlewaresr   modelsr
   r   r   decorator_with_argumentsr1   r6   rH   r   r   r   <module>rQ      sg    $ : # 3 6 K K   2  6 % %r   