
    si>*                     D   d Z ddlmZ ddlmZ ddlm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mZ dd
lmZ ddlmZmZmZmZmZmZ ddlmZ ddlm Z   ejB                  d      rddl"m#Z# ddl$m%Z% ddl&m'Z'  eed       e e       d       G d de                    Z( eed       e e       d       G d de                    Z) eed       e e       d       G d de                    Z* eed       e e       d       G d de                    Z+ eed       e e       d       G d de)                    Z, eed       e e       d       G d de)                    Z- eed       e e       d       G d  d!e                    Z. eed       e e       d       G d" d#e.                    Z/ eed       e e       d       G d$ d%e.                    Z0 eed       e e       d       G d& d'e                    Z1y())zG
this page handles the cbv methods of compensatory leave request page.
    )Any)apps)messages)HttpResponse)reversereverse_lazy)method_decorator)gettext_lazy)filtersubordinatesis_reportingmanager)login_required)HorillaDetailedViewHorillaFormViewHorillaListViewHorillaNavViewHorillaTabViewTemplateView)is_compensatory_leave_enabled)attendance_days
attendance)CompensatoryLeaveRequestFilter)CompensatoryLeaveForm)CompensatoryLeaveRequestdispatch)namec                       e Zd ZdZdZy)CompensatoryLeaveViewz
    for compensatory page
    z-cbv/compensatory_leave/compensatory_home.htmlN)__name__
__module____qualname____doc__template_name     H/var/www/python-projects/worksol/leave/cbv/compensatory_leave_request.pyr   r   !   s     DMr$   r   c            
           e Zd ZdZdeddf fdZeZeZ	 e
d      ddf e
d	      d
f e
d      df e
d      df e
d      df e
d      df e
d      df e
d      dfgZdZg dZd e
d      dfd e
d      dfd e
d       d!fgZd"Z xZS )#CompensatoryListViewz#
    generic list view of page
    kwargsreturnNc                 D    t        |   di | t        d      | _        y Nzcompensatory-listr#   super__init__r   
search_urlselfr(   	__class__s     r%   r.   zCompensatoryListView.__init__2        "6"!"56r$   Employeeemployee_idemployee_id__get_avatar
Leave Typeleave_type_idAttendance Datescompensatory_dateRequested Daysrequested_days
Created Bycreated_by__employee_getStatusstatus_displayDescriptiondescriptionCommentcompensatory_commentcompensatory_options))r4   employee_id__get_full_name)r7   leave_type_id__name)r9   r:   )r;   r<   )r=   created_by__get_full_name)r?   r@   zrejected--dotRejecteda#  
            onclick="
            $('#applyFilter').closest('form').find('[name=status]').val('rejected');
            $('[name=approved]').val('unknown').change();
            $('[name=requested]').val('unknown').change();
            $('#applyFilter').click();
            "

            zrequested--dot	Requesteda#  
            onclick="
            $('#applyFilter').closest('form').find('[name=status]').val('requested');
            $('[name=rejected]').val('unknown').change();
            $('[name=approved]').val('unknown').change();
            $('#applyFilter').click();
            "

            zapproved--dotApproveda#  
            onclick="
            $('#applyFilter').closest('form').find('[name=status]').val('approved');
            $('[name=rejected]').val('unknown').change();
            $('[name=requested]').val('unknown').change();
            $('#applyFilter').click();
            "

            zstatus-{status})r   r   r    r!   r   r.   r   filter_classr   model_columnsoption_methodsortby_mappingrow_status_indicationsrow_status_class__classcell__r2   s   @r%   r'   r'   +   s    7 7 7
 2L$E	
:'@A	
</*	
	 34	
	./	
<45	
8&'	
=	=)	
9-.	G +MN jM	
 kN	
 jM	
7(T )r$   r'   c                   V     e Zd ZdZdeddf fdZ ed      ZdZ e	       Z
dZd	Z xZS )
CompensatoryNavViewz
    nav bar
    r(   r)   Nc                 l    t        |   di | t        d      | _        dt	        d       d| _        y )Nzcompensatory-tab-viewz
             hx-get="zcreate-compensatory-leavez"
             hx-target="#genericModalBody"
             data-target="#genericModal"
             data-toggle="oh-modal-toggle"
         r#   )r-   r.   r   r/   r   create_attrsr0   s     r%   r.   zCompensatoryNavView.__init__   sA    "6"!"9:!"#>?@ A
r$   Compensatory Leave Requestsz5cbv/compensatory_leave/compensatory_leave_filter.htmlformz#listContainer)r   r   r    r!   r   r.   rN   	nav_titlefilter_body_templater   filter_instancefilter_form_context_namesearch_swap_targetrT   rU   s   @r%   rW   rW   z   sB       /0IR46O%)r$   rW   c                   0     e Zd ZdZdZdeddf fdZ xZS )CompensatoryLeaveTabViewz
    tabview of the page
    z)cbv/compensatory_leave/inherit_class.htmlr(   r)   Nc                 8   t        |   di | t        d      t        d       dg| _        | j
                  j                  j                  d      st        | j
                        r2| j                  j                  t        d      t        d       d       y y )NzMy Compensatory Leave Requestsmy-compensatory-tab)titleurlz#leave.change_leaveallocationrequestrZ   zcompensatory-tabr#   )
r-   r.   rN   r   tabsrequestuserhas_permr   appendr0   s     r%   r.   z!CompensatoryLeaveTabView.__init__   s    "6" ;<!"789
	 <<%%1
 .II<=%&89: /r$   )r   r   r    r!   r"   r   r.   rT   rU   s   @r%   rb   rb      s(     @M   r$   rb   c                   :     e Zd ZdZdeddf fdZ fdZdZ xZS )MyCompensatoryLeaveTabz!
    my compensate leave tab
    r(   r)   Nc                 D    t        |   di | t        d      | _        y )Nrd   r#   r,   r0   s     r%   r.   zMyCompensatoryLeaveTab.__init__   s     "6"!"78r$   c                     t         |          }| j                  j                  j                  }|j                  |j                        }|S )N)r5   )r-   get_querysetrh   ri   employee_getfilterid)r1   querysetemployeer2   s      r%   rp   z#MyCompensatoryLeaveTab.get_queryset   s>    7')<<$$11??x{{?;r$   a  
                {is_compensatory_request_rejected},
                hx-get='{my_compensatory_detail_view}?instance_ids={ordered_ids}'
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
                )	r   r   r    r!   r   r.   rp   	row_attrsrT   rU   s   @r%   rm   rm      s'    9 9 9Ir$   rm   c                   >     e Zd ZdZdeddf fdZ fdZdZdZ xZ	S )	CompensatoryLeaveTabz
    compensate leave tab
    r(   r)   Nc                 D    t        |   di | t        d      | _        y r+   r,   r0   s     r%   r.   zCompensatoryLeaveTab.__init__   r3   r$   c                 R    t         |          }t        | j                  |d      }|S )Nz#leave.view_compensatoryleaverequest)r-   rp   r   rh   )r1   rt   r2   s     r%   rp   z!CompensatoryLeaveTab.get_queryset   s-    7')%LL($I
 r$   compensatory_confirm_actionsa  
                {is_compensatory_request_rejected},
                hx-get='{compensatory_detail_view}?instance_ids={ordered_ids}'
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
                )
r   r   r    r!   r   r.   rp   action_methodrv   rT   rU   s   @r%   rx   rx      s.    7 7 7 3MIr$   rx   c            	           e Zd ZdZeZ ed      ZddddZ ed      df ed	      d
f ed      df ed      df ed      df ed      df ed      ddfgZ	y)CompensatoryGenericDetailViewz%
    Generic Detail view of page
    Details!compensatory_detail_name_subtitlecompensatory_detail_subtitler6   )re   subtitleavatarr;   r<   r7   r8   zCreated Daterequested_dater=   r>   r9   r:   rA   rB   zReject Reason!compensatory_detail_reject_reasonTN)
r   r   r    r!   r   rM   rN   re   headerbodyr#   r$   r%   r~   r~      s     %EiLE42+F 
	./	
</*	
>	,-	
<45	
	 34	
=	=)	
?	@$GDr$   r~   c                       e Zd ZdZdZy)MyCompensatoryDetailViewz)
    my compensatory tab detail view
    my_compensatory_detail_actionsNr   r   r    r!   r|   r#   r$   r%   r   r      s     5Mr$   r   c                       e Zd ZdZdZy)CompensatoryTabDetailViewz&
    compensatory tab detail view
    compensatory_detail_actionsNr   r#   r$   r%   r   r   
  s     2Mr$   r   c                   N     e Zd ZdZeZeZ ed      Z	 fdZ
dedef fdZ xZS )CompensatoryFormz
    for view
    z!Create Compensatory Leave Requestc                     t        |   di |}| j                  j                  j                  rt        d      | j                  _        |S )Nz!Update Compensatory Leave Requestr#   )r-   get_context_datar[   instancepkrN   
form_classverbose_name)r1   r(   contextr2   s      r%   r   z!CompensatoryForm.get_context_data  s?    '*4V499  +,-P+QDOO(r$   r[   r)   c                    |j                         r|j                  j                  rt        d      }n^|j	                         }t        |j                  |j                  j                               |_	        |j	                          t        d      }|j	                          t        j                  | j                  |       | j                  d      S t        | =  |      S )NzCompensatory Leave UpdatedzCompensatory Leave Createdz)<script>window.location.reload()</script>)is_validr   r   rN   saver   r5   attendance_idallr<   r   successrh   r   r-   
form_valid)r1   r[   messagecomp_reqr2   s       r%   r   zCompensatoryForm.form_valid&  s    ==?}}8999;*9(((*@*@*D*D*F+' 89IIKT\\73$$%PQQw!$''r$   )r   r   r    r!   r   rM   r   r   rN   new_display_titler   r   r   rT   rU   s   @r%   r   r     s>     %E&J=>(4 ( ( (r$   r   N)2r!   typingr   django.appsr   django.contribr   django.httpr   django.urlsr   r   django.utils.decoratorsr	   django.utils.translationr
   rN   base.methodsr   r   horilla_views.cbv_methodsr   horilla_views.generic.cbv.viewsr   r   r   r   r   r   leave.decoratorsr   leave.methodsr   is_installedleave.filtersr   leave.formsr   leave.modelsr   r   r'   rW   rb   rm   rx   r~   r   r   r   r#   r$   r%   <module>r      sz     # $ - 4 6 @ 4  ; )4\"<15 .z2/1
CDL D D 3D .z2/1
CJ)? J) D 3J)Z .z2/1
C*. * D 3*, .z2/1
C~  D 36 .z2/1
C1  D 30 .z2/1
C/  D 36 .z2/1
C$7  D 30 .z2/1
C5< 5 D 35 .z2/1
C2 = 2 D 32 .z2/1
C( ( D 3(r$   