
    si '                         d Z ddl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 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mZ ddlm Z m!Z!m"Z" ddl#m$Z$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+ G d de      Z,y) z7
This page handles the cbv methods for onboarding view
    N)Any)forms)messages)HttpResponse)render)reverse)method_decorator)gettext_lazy)Employee)login_required)HorillaDetailedViewHorillaFormView)notify)recruitment_manager_can_enterstage_manager_can_enter)OnboardingTaskFormOnboardingViewStageFormOnboardingViewTaskForm)CandidateTaskOnboardingStageOnboardingTask)	Candidatedispatch)namezonboarding.add_onboardingstagec                   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 )StageCreateFormz/
    Form view for create and update stage
    zCreate Stagec                 l   t        |   di |}| j                  j                  d      }t	        j
                         | j                  j                  d   _        || j                  j                  d   _	        | j                  j                  j                  rt        d      | j                  _        |S )Nobj_idrecruitment_idzUpdate Stage )superget_context_datakwargsgetr   HiddenInputformfieldswidgetinitialinstancepk_
form_classverbose_name)selfr#   contextr   	__class__s       B/var/www/python-projects/worksol/onboarding/cbv/onboarding_view.pyr"   z StageCreateForm.get_context_data.   s    '*4V4*494E4E4G		)*15;		)*299  +,^+<DOO(    r&   returnc                 (   |j                         ra|j                  j                  rt        d      }nt        d      }|j	                         }|j
                  j                  t        j                  j                  |j                  j                  d                   |j
                  j                         D cg c]  }|j                   }}t        j                  | j                   t        |             t#        j$                  t&              5  t)        j*                  | j                   j,                  j.                  |ddddd	d
t1        d      	       d d d        | j3                  d      S t4        | m  |      S c c}w # 1 sw Y   .xY w)NzStage Updated SuccessfullyzNew stage created successfullyemployee_idid__inz*You are chosen as onboarding stage manageru@   لقد تم اختيارك كمدير مرحلة التدريب.u4   Sie wurden als Onboarding-Stage-Manager ausgewählt.uC   Ha sido seleccionado/a como responsable de etapa de incorporación.uM   Vous avez été choisi(e) en tant que responsable de l'étape d'intégration.people-circleonboarding-view	recipientverbverb_arverb_deverb_esverb_friconredirectz*<script>window.location.reload();</script>)is_validr*   r+   r,   saver6   setr   objectsfilterdatagetlistallemployee_user_idr   successrequest
contextlibsuppress	Exceptionr   senduseremployee_getr   r   r!   
form_valid)r/   r&   messagestageemployeeusersr1   s         r2   rU   zStageCreateForm.form_valid7   sB   ==?}}89<=IIKE!!  ''tyy/@/@/O'P @E?P?P?T?T?VW8X..WEWT\\1W:6$$Y/ LL%%22#E^Rak($%67
 $$%QRRw!$''! X s   >FAFF)__name__
__module____qualname____doc__r   r-   r   modelr,   new_display_titler"   r   rU   __classcell__r1   s   @r2   r   r   !   s=    
 )JE.)(6 (< ( (r3   r   zonboarding.add_onboardingtaskc                   b     e Zd ZdZeZeZ ed      Z	 fdZ
dedef fdZdedef fdZ xZS )TaskCreateFormz$
    form view for create tasks
    zCreate Taskc                 d   t        |   d
i |}t        j                         | j                  j
                  d   _        | j                  j                  d      }t        j                  j                  |      }|| j                  j
                  d   _        |j                  j                         j                  dd      }t        j                  j!                  |      }|| j                  j
                  d   _        || j                  j
                  d   _        | j                  |d	<   |S )Nstage_idr   idcandidate_idT)flatr7   
candidatesr&   r    )r!   r"   r   r%   r&   r'   r(   r#   r$   r   rG   r)   	candidaterK   values_listr   rH   queryset)r/   r#   r0   r   rW   candidate_idscand_querysetr1   s          r2   r"   zTaskCreateForm.get_context_dataa   s    '*4V4.3.?.?.A		$+*''++v+6/5		$,++-99.t9T!))000F2?		&/1>		&.))r3   r&   r4   c                 2   | j                   j                  j                  rt        d      | j                  _        |j                         s>|j                  j                         }t        | j                  | j                  ||d      S t        | 5  |      S )NzUpdate Request)r&   errors)r&   r*   r+   r,   r-   r.   rD   rq   as_datar   rN   template_namer!   form_invalid)r/   r&   rq   r1   s      r2   rt   zTaskCreateForm.form_invalidq   sx    99  +,-=+>DOO(}}[[((*Fd00462R  w#D))r3   c                    |j                         rt        d      }| j                  j                  d   }| j                  j                  d   }| j                  j
                  j                  d      }| j                  j                  d   }t        ||      }|j                          |j                  j                  |       |j                  j                  |       |r%|D ]   }t        |||      }	|	j                          " |j                  j                         D 
cg c]  }
|
j                   }}
t        j                   | j                  j"                  j$                  |dd	d
dddt'        d      	       t)        j*                  | j                  t        |             | j-                         S t.        | a  |      S c c}
w )NzNew Task Created Successfullyrj   re   managers
task_title)rw   re   )rh   re   onboarding_task_id,You are chosen as an onboarding task manager>   لقد تم اختيارك كمدير مهام التدريب.6   Sie wurden als Onboarding-Aufgabenmanager ausgewählt.D   Ha sido seleccionado/a como responsable de tareas de incorporación.M   Vous avez été choisi(e) en tant que responsable des tâches d'intégration.r9   r:   r;   )rD   r,   r&   cleaned_datarN   POSTrJ   r   rE   r6   rF   rj   r   rK   rL   r   rR   rS   rT   r   r   rM   r   r!   rU   )r/   r&   rV   rj   re   rv   titleonboarding_taskcandtaskmanagerrY   r1   s               r2   rU   zTaskCreateForm.form_valid|   s   ==?78G//=Jyy--j9H||((00<HII**<8E,QO  "''++H5&&**:6&  D(%)!)+:D
 IIK   /::>>@ ((E  KK!!..CXP^g$ !23
 T\\1W:6$$&&w!$''#s   $G)rZ   r[   r\   r]   r   r^   r   r-   r,   r_   r"   r   r   rt   r   rU   r`   ra   s   @r2   rc   rc   T   sP    
 E'J-( 	* 	* 	*$(1 $(l $( $(r3   rc   z onboarding.change_onboardingtaskc                   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 )TaskUpdateFormViewz$
    form view for update tasks
    zUpdate Taskc                     t        |   di |}t        j                         | j                  j
                  d   _        | j                  |d<   |S )Nre   r&   r    )r!   r"   r   r%   r&   r'   r(   )r/   r#   r0   r1   s      r2   r"   z#TaskUpdateFormView.get_context_data   sG    '*4V4.3.?.?.A		$+))r3   r&   r4   c                    |j                         r|j                  j                  rt        j                  j                  | j                  j                  j                        }|j                         }|j                  j                  t        j                  j                  |j                  j                  d                   |j                  j                         D ]J  }|j                   |j"                  j                         vr|j%                          :|j&                  |_        L t)        j*                  | j,                  t/        d             |j                  j                         D cg c]  }|j0                   }}t3        j4                  | j,                  j6                  j8                  |ddddd	d
t;        d      	       |j                          | j=                         S t>        |   |      S c c}w )Nrf   r6   r7   zTask updated successfully..ry   rz   r{   r|   r}   r9   r:   r;   )!rD   r*   r+   r   rG   r$   r&   rE   r6   rF   r   rH   rI   rJ   candidatetask_setrK   rh   rj   deletere   r   rM   rN   r,   rL   r   rR   rS   rT   r   r   r!   rU   )r/   r&   r   r   	cand_taskrX   rY   r1   s          r2   rU   zTaskUpdateFormView.form_valid   s   ==?}}"0"8"8"<"<		@R@R@U@U"<"Vyy{  $$$$++4993D3D]3S+T "1!B!B!F!F!H ;I --T__5H5H5JJ!((*-1]]	*	;
   q1N/OP>B>N>N>R>R>T2:H--  LL%%22#G\Tbk($%67
 IIK$$&&w!$''#s   6G?)rZ   r[   r\   r]   r   r^   r   r-   r,   r_   r"   r   rU   r`   ra   s   @r2   r   r      s=    
 E#J-((1 (l ( (r3   r   c                   p     e Zd ZdZdeddf fdZdZeZ e	d      Z
dd	d
dZddiZddddddddgZ xZS )OnboardingCandidateDetailViewz(
    detail view of onboarding view
    r#   r4   Nc                     t        |   di | t        d      dft        d      dft        d      dft        d      dft        d	      d
ft        d      dfg| _        y )NzJob Positionget_job_positionContactmobilezJoining Datejoining_datezOnboarding Portal Stageonboarding_portal_htmlStatusonboarding_status_colTasksonboarding_task_colr    )r!   __init__r,   body)r/   r#   r1   s     r2   r   z&OnboardingCandidateDetailView.__init__   sl    "6"~ 23y\8$~/()+CDx[12wZ./
	r3   z$cbv/onboarding_view/detail_view.htmlDetailsr   email
get_avatar)r   subtitleavatarr      Viewzeye-outlinez~
                     class="oh-btn oh-btn--light w-50"
                     href="{get_individual_url}"
                     )actionrB   attrsEditzcreate-outlinezw
                    class="oh-btn oh-btn--info w-50"
                    href ="{get_update_url}"
                    )rZ   r[   r\   r]   r   r   rs   r   r^   r,   r   headercolsactionsr`   ra   s   @r2   r   r      sw    	
 	
 	
 ;MEiLEF "2&D !	
 $	
Gr3   r   )-r]   rO   typingr   djangor   django.contribr   django.httpr   django.shortcutsr   django.urlsr   django.utils.decoratorsr	   django.utils.translationr
   r,   employee.modelsr   horilla_views.cbv_methodsr   horilla_views.generic.cbv.viewsr   r   notifications.signalsr   onboarding.cbv_decoratorsr   r   onboarding.formsr   r   r   onboarding.modelsr   r   r   recruitment.modelsr   r   rc   r   r   r    r3   r2   <module>r      s      # $ #  4 6 $ 4 P ( 
 M L ( .z2!"BC*,(o ,( 3,(^ .z2;<:H(_ H( 3H(V .z2>?j/( /( 3/(d-$7 -r3   