
    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mZ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 ddlmZmZm Z   eed       e ed      d       e ede      d       G d de                           Z! eed       e ed      d       e ede      d       G d de                           Z" eed       e ed      d       e ede      d       G d de                           Z# eed       G d de             Z$ eed       e ed      d       e ede      d       G d de                           Z%y)z
CBV of resigantions page
    )Any)messages)HttpResponse)reversereverse_lazy)method_decorator)gettext_lazy)check_feature_enabledlogin_requiredpermission_required)HorillaDetailedViewHorillaFormViewHorillaListViewHorillaNavViewTemplateView)LetterFilter)ResignationLetterForm)OffboardingOffboardingGeneralSettingResignationLetterdispatch)namez"offboarding.view_resignationletterresignation_requestc                   ,     e Zd ZdZdef fdZdZ xZS )ResignationLettersViewz1
    for reimbursements and encashments page
    kwargsc                 l    t        |   di |}t        j                  j	                         }||d<   |S )Noffboardings )superget_context_datar   objectsall)selfr   contextr   	__class__s       ?/var/www/python-projects/worksol/offboarding/cbv/resignation.pyr!   z'ResignationLettersView.get_context_data+   s8    '*4V4"**..0".    z cbv/resignation/resignation.html)__name__
__module____qualname____doc__r   r!   template_name__classcell__r&   s   @r'   r   r      s      7Mr(   r   c                        e Zd ZdZeZeZdeddf fdZ	dZ
dZd ed	      d
fd ed      dfd ed      dfgZdZdZ ed      ddf ed      df ed      df ed      df ed      dfgZddiZg dZ xZS ) ResignationListViewz
    list view
    r   returnNc                     t        |   di | t        d      | _        | j                  j
                  j                  d      rd| _        y y )Nlist-resignation-requestz$offboarding.change_resignationletteractions_columnr   )r    __init__r   
search_urlrequestuserhas_permaction_methodr$   r   r&   s     r'   r6   zResignationListView.__init__D   sG    "6"!"<=<<%%&LM!1D Nr(      option_columnzrejected--dotRejectedz
            onclick="
            $('#applyFilter').closest('form').find('[name=status]').val('rejected');
            $('#applyFilter').click();
            "
            zapproved--dotApprovedz
            onclick="
            $('#applyFilter').closest('form').find('[name=status]').val('approved');
            $('#applyFilter').click();
            "
            zrequested--dot	Requestedz
            onclick="
            $('#applyFilter').closest('form').find('[name=status]').val('requested');
            $('#applyFilter').click();
            "
            zstatus-{status}z
                hx-get='{get_detail_url}?instance_ids={ordered_ids}'
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
                Employeeemployee_idemployee_id__get_avatarTitletitlePlanned To Leaveplanned_to_leave_onStatus
get_statusDescriptiondescription_colzX
                            style="width:200px !important"
                            ))rB   rC   rD   )rG   rH   )rI   rJ   )r)   r*   r+   r,   r   modelr   filter_classr   r6   records_per_pageoption_method_row_status_indicationsrow_status_class	row_attrscolumnsheader_attrssortby_mappingr.   r/   s   @r'   r1   r1   4   s     EL2 2 2 #M jM		
 jM		
 kN		
+B )I 
:'@A	
7W	
	 56	
8l#	
=	,-G 	  LNr(   r1   c            	            e 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
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gZ xZS )ResinationLettersNavz
    Nav bar
    r   r2   Nc                 l    t        |   di | t        d      | _        dt	        d       d| _        y )Nr4   z
            hx-get="zresignation-requests-createz"
            hx-target="#genericModalBody"
            data-target="#genericModal"
            data-toggle="oh-modal-toggle"
        r   )r    r6   r   r7   r   create_attrsr<   s     r'   r6   zResinationLettersNav.__init__   sA    "6"!"<=!!"?@A B	r(   Resignationsformzcbv/resignation/filter.htmlz#listContainerFrC   rB   rH   zPlanned to leave datestatusrI   .employee_id__employee_work_info__department_id
Department0employee_id__employee_work_info__job_position_idzJob Position5employee_id__employee_work_info__reporting_manager_idzReporting Manager)r)   r*   r+   r,   r   r6   rQ   	nav_titler   filter_instancefilter_form_context_namefilter_body_templatesearch_swap_targetapply_first_filtergroup_by_fieldsr.   r/   s   @r'   rY   rY      s       .!I"nO%8) 
*&	"9 :;	1X;	91\?K	;Q~=NOC!"	

Or(   rY   c                   D     e Zd ZdZeZeZ ed      Z	dede
f fdZ xZS )ResignationLettersFormViewz/
    Create and edit form for resignations
    zCreate Resignation Letterr]   r2   c                    |j                         rm|j                  j                  rt        d      }nt        d      }|j	                          t        j                  | j                  |       | j                         S t        | )  |      S )z
        Handle a valid form submission.
        If the form is valid, save the instance and display a success message.
        z Resignation updated successfullyz Resignation created successfully)is_validinstancepkrQ   saver   successr8   r   r    
form_valid)r$   r]   messager&   s      r'   rr   z%ResignationLettersFormView.form_valid   sm    
 ==?}}>?>?IIKT\\73$$&&w!$''r(   )r)   r*   r+   r,   r   rM   r   
form_classrQ   new_display_titler   rr   r.   r/   s   @r'   rk   rk      s9     E&J56(4 ( ( (r(   rk   c                        e Zd ZdZdZdef fdZ ed      df ed      ddf ed	      d
f ed      df ed      dfgZdZ	e
ZddddZ xZS )ResignationLetterDetailViewz%
    detail view of resignations
    z cbv/resignation/detail_view.htmlr   c                     t        |   di |}| j                  j                  d      }t        j
                  j                  |      }|d   j                  }||d<   ||d<   |S )z
        To set title.
        ro   )idresignationletterrF   letterr   )r    r!   r   getr   r"   rF   )r$   r   r%   ro   r{   rF   r&   s         r'   r!   z,ResignationLetterDetailView.get_context_data   sl     '*4V4[[__T""**..".5+,22 "r(    Actionsr>   TrG   rH   rI   rJ   rK   detail_description_colr5   employee_id__get_full_nameresgnation_subtitlerD   )rF   subtitleavatar)r)   r*   r+   r,   r-   r   r!   rQ   bodyr;   r   rM   headerr.   r/   s   @r'   rw   rw      s     7M
 
 
2	
9-	
	 56	
8l#	
=	34D %ME .)+Fr(   rw   N)&r,   typingr   django.contribr   django.httpr   django.urlsr   r   django.utils.decoratorsr   django.utils.translationr	   rQ   horilla_views.cbv_methodsr
   r   r   horilla_views.generic.cbv.viewsr   r   r   r   r   offboarding.filtersr   offboarding.formsr   offboarding.modelsr   r   r   r   r1   rY   rk   rw   r   r(   r'   <module>r      s    # $ - 4 6 
  - 3 X X .z2<=J /1JK	7\ 7	 37 .z2<=J /1JK	L/ L	 3L^ .z2<=J /1JK	 >  	 3 F .z2( ( 3(2 .z2<=J /1JK	#"5 #	 3#r(   