
    sip                        d Z ddl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 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 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/m0Z0 ddl1m2Z2  e
ed       e
 e)d      d       G d de                    Z3 e
ed       e
 e)d      d       G d de                     Z4 e
ed       e
 e)d      d       G d d e!                    Z5d! Z6d" Z7d# Z8d$ Z9e9e'jt                  _9        e6e'jv                  _6        e7e'jv                  _7        e8e'jv                  _8         e
ed       e
 e)d      d       G d% d&e                    Z<d' Z=e=e'jt                  _=        d( Z>e>e'jt                  _>        d) Z?e?e.j                  _?         G d* d+e0      ZA e
ed       e
 e)d      d       G d, d-e                    ZB G d. d/e      ZC e
ed       e
 e*d      d       G d0 d1e                    ZD e
ed       e
 e)d      d       G d2 d3e                    ZEy)4z
onboarding/cbv/pipeline.py
    N)messages)HttpResponse)reversereverse_lazy)method_decorator)gettext_lazy)View)TemplateView)eval_validate)_thread_locals)login_requiredrender_template)HorillaKanbanView)Pipeline)HorillaFormViewHorillaListViewHorillaNavViewHorillaTabView)filters)forms)models)all_manager_can_enterstage_manager_can_enter)stage_manages)CandidateDetail)recruitment_managesdispatch)namezrecruitment.view_recruitment)permc                       e Zd ZdZdZy)PipelineViewz
    PipelineView
    z%cbv/pipeline/onboarding/pipeline.htmlN)__name__
__module____qualname____doc__template_name     ;/var/www/python-projects/worksol/onboarding/cbv/pipeline.pyr!   r!   $   s    
 <Mr(   r!   c                   v     e Zd ZdZ ed      Z ed      ZdZdZ	dZ
ej                  ZdZd
 fdZ fd	Z xZS )PipelineNavz
    HorillaNavView
    cbv-pipeline-tab-onboardingr   z#pipelineContainerFz$cbv/pipeline/onboarding/filters.htmlformc                     t        |   di | | j                  j                  j	                  d      rdt        d       d| _        nd | _        ddt        d       dd	d
dt        d       ddd	g| _        y )Nzrecruitment.add_recruitmentz
                hx-get="zrecruitment-createz?closed=false"
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
            listzlist-outliner,   z3
                    title ='List'
                )typeiconurlattrscardzgrid-outlinez
?view=cardz3
                    title ='Card'
                r'   )super__init__requestuserhas_permr   create_attrs
view_typesselfkwargs	__class__s     r)   r6   zPipelineNav.__init__B   s    "6"<<%%&CD%%&:;< =!D !%D &&'DEF	 &&'DEFjQ	
r(   c                     t        |   di |}t        j                         }t        j                         }||d<   ||d<   |S )z
        context data
        stage_filter_objcandidate_filter_objr'   )r5   get_context_dataonboarding_filtersOnboardingStageFilterOnboardingCandidateFilter)r=   r>   contextrA   rB   r?   s        r)   rC   zPipelineNav.get_context_dataa   sP     '*4V4-CCE1KKM&6"#*>&'r(   )returnN)r"   r#   r$   r%   r   
search_url_	nav_titlesearch_swap_targetapply_first_filterfilter_body_templaterD   RecruitmentFilterfilter_instancefilter_form_context_namer6   rC   __classcell__r?   s   @r)   r+   r+   0   sP    
 ;<J*I-A(::O%
>	 	r(   r+   c                   "     e Zd ZdZ fdZ xZS )RecruitmentTabViewz
    RecruitmentTabView
    c           
         t        |   d#i | t        j                  | j                  j
                        j                  j                  d      }| j                  j
                  j                  dd      }g | _	        |D ]  }i }||d<   t        dd|j                  i      }|dk(  rt        d	d
|j                  i      }||d<   t        d      |d<   g |d<   | j                  j                  j                  d      st        | j                  |      rv|d   j!                  t        d      dt        dd|j                  i       dd       |d   j!                  t        d      dt        dd|j                  i       dd       | j                  j                  j                  d      r;|d   j!                  t        d      dt        dd|j                  i       dd       | j                  j                  j                  d      r:|d   j!                  t        d      dt        d        d!|j                   d"d       | j                  j!                  |        y )$NT)	is_activeviewr/   titlezcandidate-card-cbv-onboardingpkr>   zget-stages-onboardingrecruitment_idr2   Stagesbadge_labelactionszonboarding.add_onboardingstagez	Add Stagez
                            data-toggle="oh-modal-toggle"
                            data-target="#genericModal"
                            hx-get="zstage-creationobj_idz"
                            hx-target="#genericModalBody"
                            style="cursor: pointer;"
                        actionr3   zManage Stage Orderz onboarding-stage-sequence-updaterecruitment.change_recruitmentEditz
                                    data-toggle="oh-modal-toggle"
                                    data-target="#genericModal"
                                    hx-get="zrecruitment-update-pipelinez"
                                    hx-target="#genericModalBody"
                                    style="cursor: pointer;"
                                    onclick="
                                    "
                                    zrecruitment.delete_recruitmentDeletez
                                        data-toggle="oh-modal-toggle"
                                        data-target="#deleteConfirmation"
                                        hx-get="generic-deletez"?model=recruitment.Recruitment&pk=z"
                                        hx-target="#deleteConfirmationBody"
                                        style="cursor: pointer;"
                                        r'   )r5   r6   rD   rO   r7   GETqsfiltergettabsr   rZ   rJ   r8   r9   r   append)r=   r>   recruitments	view_typerectabr2   r?   s          r)   r6   zRecruitmentTabView.__init__v   s   "6");;DLL<L<LMPPWW X 
 LL$$((8		 C	"CCCL94.QCF"+5Esvv4N CJ!"8CC	N||  ))0$T\\37I%%"#K.&% &--=xQTQWQWFX%Y$Z ["	 I%%"#$8"9&% &--OY]_b_e_eXf%g$h i"	 ||  ))*JKI%%"#F)&- .55R\`bebhbh[i-j,k l%"( ||  ))*JKI%%"#H+&1 299I1J0KKmnqntntmu v)",	 IIS!GC	"r(   )r"   r#   r$   r%   r6   rR   rS   s   @r)   rU   rU   m   s    
J" J"r(   rU   c                 ^    t        d| j                  | j                  j                  d      S )z
    Edit stage path
    zstage-update)rZ   r`   r[   )r   rZ   r\   r=   s    r)   edit_stage_pathrs      s+     dgg9L9L9O9OP r(   c                 6    t        d       d| j                   S )z
    Generic delete
    rf   z?model=recruitment.Stage&pk=r   rZ   rr   s    r)   generic_delete_pathrv      s!     &'((DTWWINNr(   c                 6    t        d       d| j                   S )z
    bulk_send_mail
    z	send-mailz?onboarding_stage_id=)r   rZ   rr   s    r)   bulk_send_mail_pathrx      s      ;'((=dggYGGr(   c                 N    t        dd| j                  j                  i       dS )z
    allocate path
    zallocation-viewrZ   r[   z#?model=recruitment.models.Candidater   candidate_idrZ   rr   s    r)   allocation_pathr|      s,     'T5F5F5I5I/JKLLoppr(   c                        e Zd ZdZej
                  Zej                  Z	dZ
dZdej                  ej                   ed      ddgddd	d
ddddddd
gdgZ fdZ xZS )CandidatePipelinez
    CandidatePipeline
    onboarding_stage_idselectedCandidateRecordszcandidate-lists-cbv-onboardingzonboarding_stage_id={pk}z#recruitment_id={recruitment_id__pk}rd   5onboarding.cbv.accessibility.edit_stage_accessibilityz
                    hx-target="#genericModalBody"
                    hx-get="{edit_stage_path}"
                    data-toggle="oh-modal-toggle"
                    data-target="#genericModal"
                rb   accessibilityr3   	Bulk Mailz
                    hx-target="#objectCreateModalTarget"
                    hx-get="{bulk_send_mail_path}"
                    data-toggle="oh-modal-toggle"
                    data-target="#objectCreateModal"
                ra   re   7onboarding.cbv.accessibility.delete_stage_accessibilityz
                    data-target="#deleteConfirmation"
                    data-toggle="oh-modal-toggle"
                    hx-get="{generic_delete_path}"
                    hx-target="#deleteConfirmationBody"
                )fieldmodelri   r2   
parametersr_   c                 d    t         |          }|j                  d      | _        | j                  S )Nsequence)r5   get_querysetorder_byqueryset)r=   r   r?   s     r)   r   zCandidatePipeline.get_queryset!  s,    7') ))*5}}r(   )r"   r#   r$   r%   onboarding_modelsCandidateStager   rD   rF   filter_classgrouperselected_instances_key_nameOnboardingStagerE   r   allowed_fieldsr   rR   rS   s   @r)   r~   r~      s    
 ,,E%??L#G"< +&66(>> @A*5 %%\	 * '%^	)(	
*NX r(   r~   c                    t        t        dd      }t        |di       }|j                  | j                  j                  j
                        ht        j                  j                  j                  | j                  j                        }||| j                  j                  j
                  <   ||_
        t        d| |j                  | j                  j                  j
                     d      S )z
    Stage drop down
    r7   Nall_rec_stagesr\   z,cbv/pipeline/onboarding/stage_drop_down.html)instancestages)pathrG   )getattrr   rj   r   r\   rZ   r   r   objectsri   all_onboarding_stagesr   )r=   r7   r   r   s       r)   stage_drop_downr   '  s     ni6G#G-=rB  !9!9!H!H!K!KLT"22::AA33BB B 
 MSd66EEHHI(=%;33((77::
 r(   c                 H    t        dd| j                  j                  i      S )z!
    Get detail url pipeline
    zonboarding-cand-detail-viewrZ   r[   rz   rr   s    r)   get_detail_url_pipeliner   A  s#     0$@Q@Q@T@T9UVVr(   c                 <    dt        dd| j                  i       dS )z
    task fetch
    z]
        <div id="selectedInstanceIds" data-ids="[]"></div>
        <div
            hx-get="zget-cand-taskrZ   r[   zC?field=stage_id"
            hx-trigger="load"
        ></div>
    ru   rr   s    r)   
task_fetchr   K  s.     _T$''NCD E r(   c                   <     e Zd ZdZg dZddiZ fdZ fdZ xZS )CandidateOnboardingDetailz(
    Extended candidate detail view
    ))Gendergender)PhonemobileStager   )Rating
rating_bar)Recruitmentr\   )Job Positionjob_position_id)Tasksr   Tr      c                 $    t        |   di | y )Nr'   )r5   r6   r<   s     r)   r6   z"CandidateOnboardingDetail.__init__l  s    "6"r(   c                     | j                         }d| j                  j                  j                          |j                  j
                  j                   | _        t        | $  |g|i |}|S )Nordered_ids_)

get_objectr   r"   loweronboarding_stager   rZ   ordered_ids_keyr5   rj   )r=   r7   argsr>   r   responser?   s         r)   rj   zCandidateOnboardingDetail.geto  sf    ??$!-djj.A.A.G.G.I-J8KdKdKxKxK{K{J|}7;w888r(   )	r"   r#   r$   r%   bodycolsr6   rj   rR   rS   s   @r)   r   r   [  s*    D "D# r(   r   c                   0    e Zd ZdZej
                  Zej                  Z	dZ
dZdZg dZdZdddddZg d	Zg d
ZdgZdZ ed      ddd ed      ddd ed      ddd ed      dddgZdZ fdZd" fd	Zd Z fdZ fdZdZ fd Z fd!Z xZS )#CandidateListz
    CandidateList
    Fr   rec_idr\   zcbv/pipeline/empty.htmlzstyle='width:313px;'zstyle='width:100px;'zstyle='width:200px;')rb   r   r   get_interview_count)Namecandidate_id__candidate_namecandidate_id__get_avatarEmailcandidate_id__mail_indication)Contactcandidate_id__mobiler   )r   candidate_id__rating_bar)r   candidate_id__job_position_id)r   r   r   r   z
                hx-get='{get_detail_url_pipeline}'
                data-toggle="oh-modal-toggle"
                data-target="#genericModal"
                hx-target="#genericModalBody"
                Allocationszclipboard-outlinea.  
                    class="oh-btn oh-btn--danger-outline oh-btn--light-bkg w-100"
                    hx-get = "{allocation_path}"
                    data-toggle="oh-modal-toggle"
                    data-target="#allocationModal"
                    hx-target="#allocationModalBody"
                )rb   r1   r3   	Send Mailzmail-open-outlineaB  
                    class="oh-btn oh-btn--danger-outline oh-btn--light-bkg w-100"
                    hx-get = "{candidate_id__get_send_mail}"
                    data-toggle="oh-modal-toggle"
                    data-target="#objectDetailsModal"
                    hx-target="#objectDetailsModalTarget"
                	View Noteznewspaper-outlineaz  
                    class="oh-btn oh-btn--danger-outline oh-btn--light-bkg w-100 oh-activity-sidebar__open"
                    hx-get="{candidate_id__get_view_note_url}"
                    data-target="#activitySidebar"
                    hx-target="#activitySidebar"
                    onclick="$('#activitySidebar').addClass('oh-activity-sidebar--show')"
                Document Requestzdocument-attach-outlinea:  
                     hx-get="{candidate_id__get_document_request}"
                    data-target="#genericModal"
                    hx-target="#genericModalBody"
                    class="oh-btn oh-btn--danger-outline oh-btn--light-bkg w-100"
                    data-toggle="oh-modal-toggle"
                c                 l    d| j                   j                  d    | _        t        |   |g|i |S )Nr   r   )r7   rg   selected_instances_key_idr5   rj   )r=   r7   r   r>   r?   s       r)   rj   zCandidateList.get  sA    &t||'7'78M'N&OP 	& w{74T4V44r(   c                 0    t        |   ||g|i |}|S )N)r5   r   )r=   r   filteredr   r>   r?   s        r)   r   zCandidateList.get_queryset  s#    7'(LTLVLr(   c                 >   | j                   j                  dk(  ry| j                   j                  j                  d      xs | j                   j                  j                  d      xs t	        | j                   t
        j                  j                  j                  | j                   j                  d               xs_ t        | j                   j                  t
        j                  j                  j                  | j                   j                  d               S )z:
        Check has perm to update candidate stage
        rg   Tz onboarding.change_candidatestagerc   r\   rZ   r   )r7   methodr8   r9   r   r   r   r   rj   rg   r   r   rr   s    r)   bulk_update_accessibilityz'CandidateList.bulk_update_accessibility  s     <<%'LL&&'IJ ||  ))*JK"!--5599||''(89 :  !!!1199==||''(=> > 	
r(   c           
         t         |          }| j                  j                  d   }| j                  j                  d   }|j                  d   j
                  j                  |      |j                  d   _        t        j                  j                  j                  |      }|D ]  }t        j                  j                  dgt        t        j                  j                        z   |j                  dt        j                  j!                  ddi	      
      |j                  d|j"                   <    | j%                         s|d= |S )Nr\   r   r   )stage_id__pk) z
----------Fclasszoh-select oh-select-2 w-100)r3   )choiceslabelrequiredwidgetbulk_task_status_)r5   get_bulk_formr7   rg   fieldsr   ri   r   OnboardingTaskr   r   ChoiceFieldr/   CandidateTaskchoice
task_titleSelectrZ   r   )r=   r-   r\   stage_idtaskstaskr?   s         r)   r   zCandidateList.get_bulk_form  s6   w$&))*:;<<##$9:6:kk!7

(6668 	)*3 "0088??X?V 	D9>9P9P& (66==>? oo{{))"$AB *  :Q 
:DKK+DGG956	 --/*+r(   c           
         t         	|   |      }|j                  j                         D ci c]J  \  }}t	        j
                  d|      r/t        t	        j
                  d|      j                  d            |L }}}|j                  j                  dd      }t        |      }|j                         D ]@  \  }}t        j                  j                  j                  ||      j                  |       B |S c c}}w )Nzbulk_task_status_(\d+)   instance_idsz[])"candidate_id__onboarding_stage__inonboarding_task_id)status)r5   handle_bulk_submissionPOSTitemsresearchintgrouprj   r   r   r   r   ri   update)
r=   r7   r   keyvaluemapped_datar   rZ   r   r?   s
            r)   r   z$CandidateList.handle_bulk_submission  s    71': &ll002
Uyy2C8 		3S9??BCUJ
 

 ||''=$\2%++- 	$JB++33::3?TV ; fFf#	$ 
s   AC<
   c                    t        |   di | dt        j                  j                  j                          | j                  j                  d    | _        | j                  j                  | _
        t        j                  j                  j                  | j                  j                        j!                  dd      | _        | j"                  | j                  _        t        j$                  j                  j                  | j                  j                        j!                  dd      | _        | j&                  | j                  _        t        j(                  j                  j                  | j                  j                        j!                  dd      | _        | j*                  | j                  _        y )	Nr   r   )employee_id__employee_user_idrZ   Tflat)&recruitment_managers__employee_user_idr'   )r5   r6   recruitment_models	Candidater"   r   r7   rg   r   r   rI   r   r   r   ri   r8   values_listmanaging_onboarding_tasksr   managing_onboarding_stagesr   managing_recruitmentsr<   s     r)   r6   zCandidateList.__init__!  sx   "6"!-.@.J.J.S.S.Y.Y.[-\]a]i]i]m]m  oD  ^E  ]F   G,,++ ,,44;;.2ll.?.? < k$Tk* 	&
 261O1O. --55<<.2ll.?.? = k$Tk* 	'
 372Q2Q/%7%C%C%K%K%R%R37<<3D3D &S &

+d+
& 	" .2-G-G*r(   c                 `   | j                   j                  d   }t        j                  j                  j                  |      }t        |   di |}|D ]g  }|d   j                  d|j                   dt        dd|j                  i       d	t        d
       d|j                   d	d|j                   df       i |d   j                  dt        dd|i       ddf       t        | j                  j                  dd            | j                   j                   | j"                  <   |S )Nr   )r   columnsz
                <div class="oh-hover-btn-container">
                <button class="oh-hover-btn"
                style="border: none !important;"
                >
                z
                </button>
                <div class="oh-hover-btn-drawer oh-hover-btn-table-drawer">
                  <button
                   hx-get="ztask-updaterZ   r[   a  "
                   hx-target="#genericModalBody"
                   data-toggle="oh-modal-toggle"
                   data-target="#genericModal"
                   class="oh-hover-btn__small"
                   style="
                   border:1px hsl(8,77%,56%) solid;
                   "
                   title="Edit"
                   >
                    <ion-icon name="create-outline"></ion-icon>
                   </button>
                  <a
                    hx-get="rf   z$?model=onboarding.OnboardingTask&pk=a  "
                    hx-target="#deleteConfirmationBody"
                    data-target="#deleteConfirmation"
                    data-toggle="oh-modal-toggle"
                    class="oh-hover-btn__small"
                    style="
                    border:1px hsl(8,77%,56%) solid;
                    "
                    title="Delete"

                  >
                  <ion-icon name="trash-outline"></ion-icon>
                  </a>
                </div>
              </div>
            get__taskz
            <button
                class="oh-checkpoint-badge text-success"
                data-toggle="oh-modal-toggle"
                data-target="#genericModal"
                hx-get="ztask-creationr`   z{"
                hx-target="#genericModalBody"
                >
                + Task
            </button>
            r   candidate_id__pkTr  r'   )r7   rg   r   r   r   ri   r5   rC   rl   r   r   rZ   idr/   r   r  sessionr   )r=   r>   r   r   rG   r   r?   s         r)   rC   zCandidateList.get_context_data9  sc   <<##$9:!0088???R'*4V4 +	DI%%
 ! " $M$twwHI J %%5677[\`\c\c[d e-%L 477)5)O(*+	X 		!!
 !(8KLM N
 	
  6:MM%%&8t%D6
T112 r(   )NF) r"   r#   r$   r%   r   r   r   rD   PipelineCandidateFilterr   filter_selectedquick_export	next_prevfilter_keys_to_removecustom_empty_templateheader_attrsr  default_columnsbulk_update_fields	row_attrsrJ   r_   records_count_in_tabrj   r   r   r   r   records_per_pager6   rC   rR   rS   s   @r)   r   r   v  s   
 ,,E%==LOLIO5(('5	LGO 	I &'
	
 n'
	
 n'
	
 *+-
	
E-G\ !5
.2 H0C Cr(   r   c                       e Zd ZdZej
                  ZdZdZdZ	g dZ
ej                  Zej                  ZdZddd	d
dZdZ ed      dd ed      dd ed      dd ed      ddgZdddddddddddgZ fdZ xZS ) CandidateKanbanViewz
    CandidateKanbanView
    %onboarding_stage__onboarding_stage_idr   Fr   onboarding_stage__sequencez{get_avatar}z{get_full_name}z{email}z{phone})	image_srcrY   r   zPhone Numberz
        hx-get='{get_detail_url_pipeline}'
        data-toggle="oh-modal-toggle"
        data-target="#genericModal"
        hx-target="#genericModalBody"
    r   z
                hx-get = "{onboarding_stage__allocation_path}"
                data-toggle="oh-modal-toggle"
                data-target="#allocationModal"
                hx-target="#allocationModalBody"
            ra   r   z
                hx-get = "{get_send_mail}"
                data-toggle="oh-modal-toggle"
                data-target="#objectDetailsModal"
                hx-target="#objectDetailsModalTarget"
            r   z
                hx-get="{get_view_note_url}"
                data-target="#activitySidebar"
                hx-target="#activitySidebar"
                onclick="$('#activitySidebar').addClass('oh-activity-sidebar--show')"
            r   z
                hx-get="{get_document_request}"
                data-target="#genericModal"
                hx-target="#genericModalBody"
                data-toggle="oh-modal-toggle"
            rd   r   z
                hx-target="#genericModalBody"
                hx-get="{edit_stage_path}"
                data-toggle="oh-modal-toggle"
                data-target="#genericModal"
            r   r   z
                hx-target="#objectCreateModalTarget"
                hx-get="{bulk_send_mail_path}"
                data-toggle="oh-modal-toggle"
                data-target="#objectCreateModal"
            re   r   z
                data-target="#deleteConfirmation"
                data-toggle="oh-modal-toggle"
                hx-get="{generic_delete_path}"
                hx-target="#deleteConfirmationBody"
            c                     t        |   |i |}| j                  j                  d      }|r|j	                  |      }|S )NrZ   r   )r5   get_related_groupsr>   rj   ri   )r=   r   r>   related_groupsonboarding_idr?   s        r)   r#  z&CandidateKanbanView.get_related_groups  sE    3TDVD-+22-2PNr(   )r"   r#   r$   r%   r   OnboardingCandidater   	group_keyr  show_kanban_confirmationr  rD   KanbanCandidateFilterr   rE   group_filter_classinstance_order_bydetailskanban_attrsrJ   r_   group_actionsr#  rR   rS   s   @r)   r  r    s    11E7I$O%;;L+AA4 $"!	GL &	
 n	
 n	
 *+	
9%GR T		
 "	
 V		
)M@ r(   r  c                   F    e Zd ZdZej
                  Zej                  Z	d Z
y)ChangeStagez 
    Change Candidate stage
    c                 &   |j                         rIt        j                  | j                  t	        d             |j                          | j                         S t        j                  | j                  t	        d             | j                         S )NzStage UpdatedzStage not updated)is_validr   successr7   rJ   saver   info)r=   r-   s     r)   
form_validzChangeStage.form_valid  sc    ==?T\\1_+=>IIK$$&&dllA&9$:;  ""r(   N)r"   r#   r$   r%   r   r   r   r   StageChangeForm
form_classr6  r'   r(   r)   r0  r0    s$    
 ,,E&&J#r(   r0  c                       e Zd ZdZd Zd Zy)
AssignTaskz
    AssignTask
    c                 &   t         j                  j                  j                  |d         }t         j                  j                  j                  |d         }|j
                  j                  |j                         t        j                         }|j                  |_        |j                  |_
        ||_        |j                          t        j                  | j                  d       t!        d|j"                   d|j"                   d      S )	z
        get
        task_idr   cand_idcandidate_id__idzTask Allocated 
            <div id="taskHidden+"></div>
            <script>$('#taskHidden').closest('.hlv-container').find(".reload-record").click();</script>
            <script>$('#reloadMessagesButton').click();</script>
            )r   r   r   rj   r   
candidatesaddr{   r   r   r   r   r4  r   r3  r7   r   rZ   )r=   r   r>   r   	candidatecandidate_tasks         r)   rj   zAssignTask.get
  s     !//77;;vi?P;Q%44<<@@#I. A 
	 	I223*88:&/&<&<#"+"?"?,0)'78  . 1 12 3##1#4#4"5 6
 	
r(   c                    t         j                  j                  j                  |d         }t         j                  j                  j                  |d         }| j
                  j                  d   }||_        |j                          t        j                  | j
                  d       t        d|j                   d|j                   d	      S )
z
        post
        r=  r>  cand_task_idr   r   zStatus updatedr@  rA  rB  )r   r   r   rj   r   r7   r   r   r4  r   r3  r   rZ   )r=   r   r>   rE  rF  r   s         r)   postzAssignTask.post"  s     &44<<@@#I. A 
	 +88@@DDn% E 
 ""8, &'78  . 1 12 3##1#4#4"5 6
 	
r(   N)r"   r#   r$   r%   rj   rI  r'   r(   r)   r:  r:    s    

0
r(   r:  )Fr%   r   django.contribr   django.httpr   django.urlsr   r   django.utils.decoratorsr   django.utils.translationr   rJ   django.viewsr	   django.views.genericr
   base.methodsr   horilla.horilla_middlewaresr   horilla_views.cbv_methodsr   r    horilla_views.generic.cbv.kanbanr   "horilla_views.generic.cbv.pipeliner   horilla_views.generic.cbv.viewsr   r   r   r   
onboardingr   rD   r   r   r   onboarding.cbv_decoratorsr   r   )onboarding.templatetags.onboardingfiltersr   recruitmentr  recruitment.cbv.candidatesr   recruitment.methodsr   r!   r+   rU   rs   rv   rx   r|   r   r   r~   r   r   r   r  r   r   r  r0  r:  r'   r(   r)   <module>r]     s   
 # $ - 4 6  - & 6 E > 7  5  2 T C 4 6 3 .z2=>Z<< < 3< .z2=>Z6. 6 36r .z2=>ZO" O" 3O"dOHq 4C      04C  ! ! 18K  ! ! 58K  ! ! 5 .z2=>Z8 8 38v. 4C      0W <S      8
 +5    ' 6 .z2=>ZBO B 3BJi+ iX .z2!?@z#/ # 3#$ .z2=>Z3
 3
 33
r(   