
    si$                        d 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 dd	lmZ dd
lmZ ddlmZmZmZmZmZ ddlmZ ddlmZmZ ddl m!Z!  eed       e ed      d       G d de                    Z" eed       e ed      d       G d de                    Z# eed       e ed      d       G d de                    Z$ eed       e ed      d       G d de                    Z% eed       e ed      d       G d de                    Z& G d de      Z'y)z.
this page handles cbv of assigned leave page
    )Any)messages)HttpResponse)reversereverse_lazy)method_decorator)gettext_lazy)manager_can_enter)filtersubordinates)login_required)HorillaDetailedViewHorillaFormViewHorillaListViewHorillaNavViewTemplateView)AssignedLeaveFilter)AssignLeaveFormAvailableLeaveColumnExportForm)AvailableLeavedispatch)nameleave.view_availableleavec                       e Zd ZdZdZy)AssignedLeaveViewPagez!
    for assigned leave page
    z+cbv/assigned_leave/assigned_leave_home.htmlN)__name__
__module____qualname____doc__template_name     </var/www/python-projects/worksol/leave/cbv/assigned_leave.pyr   r      s     BMr!   r   c            
            e Zd ZdZeZeZdeddf fdZ	dZ
 fd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 xZS )AssignedleaveListz
    list view of the page
    kwargsreturnNc                 R    t        |   di | t        d      | _        d| _        y )Nassign-filterassignedleavedeleter    )super__init__r   
search_urlview_idselfr%   	__class__s     r"   r+   zAssignedleaveList.__init__0   s&    "6"!/2,r!   z
                hx-get='{assigned_leave_detail_view}?instance_ids={ordered_ids}'
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
                c                 R    t         |          }t        | j                  |d      }|S )Nr   )r*   get_querysetr   request)r/   querysetr0   s     r"   r2   zAssignedleaveList.get_queryset<   s-    7')%LL($?
 r!   Employeeemployee_idemployee_id__get_avatarzBadge IDemployee_id__badge_id
Leave Typeleave_type_idAvailable Daysavailable_daysCarryforward Dayscarryforward_daysTotal Leave Daystotal_leave_daysAssigned Dateassigned_dateztaken Leavesleave_takenassigned_leave_actions)r   r   r   r   r   modelr   filter_classr   r+   	row_attrsr2   _columnsaction_method__classcell__r0   s   @r"   r$   r$   &   s     E&L- - -
I 
:'@A	
:/0	
</*	
	./	
	!45	
	 23	
?	_-	
>	M*	G -Mr!   r$   c                   $    e Zd ZdZdZdeddf fdZ ed      Z e	       Z
dZd	Zd
Zd ed      fd ed      fd ed      fd ed      fd ed      fd ed      fd ed      fd ed      fd ed      fd ed      fd ed       fgZ xZS )!AssignedLeaveNavViewz
    navbar of the page
    z(cbv/assigned_leave/nav_fixed_filter.htmlr%   r&   Nc                     t        |   di | t        d      | _        t	        d      ddt	        d      dt        d       ddt	        d	      d
dg| _        dt        d       d| _        y )Nr(   ImportaA  
                        onclick="
                        importAssignedLeave();
                        "
                        data-toggle = "oh-modal-toggle"
                        data-target = "#assignLeaveTypeImport
                        "
                        style="cursor: pointer;"
                    )actionattrsExportz
                        data-toggle = "oh-modal-toggle"
                        data-target = "#genericModal"
                        hx-target="#genericModalBody"
                        hx-get ="zassigned-leave-nav-exportzG"
                        style="cursor: pointer;"
                    Deletez
                            onclick="leaveAssigBulkDelete()"
                            data-action ="delete"
                            style="cursor: pointer; color:red !important"
                             z
                data-toggle="oh-modal-toggle"
                data-target="#objectCreateModal"
                hx-target="#objectCreateModalTarget"
                hx-get="assignz"
            r    )r*   r+   r   r,   rH   actionsr   create_attrsr.   s     r"   r+   zAssignedLeaveNavView.__init__Z   s    "6"!/2 H+ H+" #**E"F!G H		 H+!/
B! &h/0 1	r!   zAll Assigned Leavesformz'cbv/assigned_leave/assigned_filter.htmlz#listContainerr6   r5   r:   r9   r<   r;   r>   r=   r@   r?   rB   rA   5employee_id__employee_work_info__reporting_manager_idzReporting Manager.employee_id__employee_work_info__department_id
Department0employee_id__employee_work_info__job_position_idzJob Position1employee_id__employee_work_info__employee_type_idzEmployement Type+employee_id__employee_work_info__company_idCompany)r   r   r   r   r   r   r+   rH   	nav_titler   filter_instancefilter_form_context_namefilter_body_templatesearch_swap_targetgroup_by_fieldsrK   rL   s   @r"   rN   rN   Q   s     ?M* * *X '(I)+O%D) 
*&	!L/*	1-./	a 345	Q123	!O,-C!"	
 
:1\?K	;Q~=NO	<a@R>ST	6)EOr!   rN   c                   ,     e Zd ZdZdZdef fdZ xZS )AssignedLeaveExportz'
    view for Export leave assigns
    z-cbv/assigned_leave/assigned_leave_export.htmlr%   c                     t         j                  j                         }t               }t	        |      }t        |   di |}||d<   ||d<   |S )z%
        context to get data
        )r4   export_columnexport_filterr    )r   objectsallr   r   r*   get_context_data)r/   r%   leavesri   rj   contextr0   s         r"   rm   z$AssignedLeaveExport.get_context_data   sV      ''++-68+V<'*4V4#0 #0 r!   )r   r   r   r   r   r   rm   rK   rL   s   @r"   rg   rg      s!     DM
 
 
r!   rg   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gZ	dZ
y)AssignedLeaveDetailViewz
    detail view
    Details#assigned_leave_detail_name_subtitle&assigned_leave_detail_postion_subtitler7   )titlesubtitleavatarr9   r:   r;   r<   r=   r>   r?   r@   rA   rB   zLeave Reset Date
reset_dateassigned_leave_detail_actionsN)r   r   r   r   r   rE   rH   ttileheaderbodyrJ   r    r!   r"   rq   rq      s     EiLE6<+F 
</*	
	./	
	!45	
	 23	
?	_-	
	-D 4Mr!   rq   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 )AssignedLeaveFormViewz
    form view
    zAssign Leavesc                     t        |   di |}| j                  j                  j                  rt        d      | j                  _        |S )NzUpdate Available Leaver    )r*   rm   rX   instancepkrH   
form_classverbose_name)r/   r%   ro   r0   s      r"   rm   z&AssignedLeaveFormView.get_context_data   s?    '*4V499  +,-E+FDOO(r!   rX   r&   c                    |j                         rm|j                  j                  rt        d      }nt        d      }|j	                          t        j                  | j                  |       | j                         S t        | )  |      S )Nz$Available Leave Updated Successfullyz$Available Leave Created Successfully)is_validr   r   rH   saver   successr3   r   r*   
form_valid)r/   rX   messager0   s      r"   r   z AssignedLeaveFormView.form_valid   sk    ==?}}BCBCIIKT\\73$$&&w!$''r!   )r   r   r   r   r   r   r   rE   rH   new_display_titlerm   r   r   rK   rL   s   @r"   r~   r~      s<     !JE/*
( 
(< 
( 
(r!   r~   N)(r   typingr   django.contribr   django.httpr   django.urlsr   r   django.utils.decoratorsr   django.utils.translationr	   rH   base.decoratorsr
   base.methodsr   horilla_views.cbv_methodsr   horilla_views.generic.cbv.viewsr   r   r   r   r   leave.filtersr   leave.formsr   r   leave.modelsr   r   r$   rN   rg   rq   r~   r    r!   r"   <module>r      sn    # $ - 4 6 - + 4  . G ' .z2#$?@zRBL B S 3B .z2#$?@zR&- &- S 3&-R .z2#$?@zRH> H S 3HV .z2#$?@zR,  S 3( .z2#$?@zR41 4 S 342(O (r!   