
    ݦi                     @   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mZmZmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z  d dl!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZL d d	lMmNZNmOZO d d
lPmQZQ d dlRZRd dlSZSd dlTmUZU d dl	mVZVm
Z
 d dlWmWZW d dlXmYZY d dlMmZZZ  eQ       d   Z[e[d   Z\d Z]d Z^d dl_Z_d Z`d Zad Zbd Zcd Zdd Zed Zfd Zgd Zhd Zid Zjd  Zkd! Zld" Zmd# Znd$ Zod% Zpd& Zqd' Zrd( Zsd) Ztd* Zud+ Zvd, Zwd- Zxd. Zyd/ Zgd0 Zzd1 Z{d2 Z|d3 Z}d4 Z~d5 Zd6 Zd7 Zd8 Zd9 Zd: Zd; Zd< Zd= Zd> Zd? Zd@ ZdA ZdB ZdC ZdD ZdE ZdF ZdG ZdH ZdI ZdJ ZdK Zy)L    )renderredirect)logout)Q)	constants)encrypt_code)user_not_active	auth_userget_current_pathgetCompanyId)CreditsUserRoleJobDescCallSchedule	CandidateCompanyBrandingProfileSourceProfileExperienceProfileSkillsLookupmasterProfileActivity	jdlibraryTag)+getCompanyCreditsUsageServicegetJobDescDatagetCandidatesDatagetJdCandidatesDataget_functions_servicecheckCompanyTrailPeriodgetCompanyJdDatagetCallScheduleDetailscompanyUserLstgetInterviewerCandidatesgetCandidateInterviewDatagetCompanyJDsList	jdDetails
getCdnDatagetInterviewCandidatesgetInterviewFeedbackgetCandidateWorkflowDatagetCompanyDatagetDashboardDatagetCompanySourcesDatagetCompanyCandidateUploadDatagetProfileDetailsService getProfileactivityDetailsServicegetResumeDatagetProfileDatagetSlotsAvailablegetRecruitersDatagetRecritmentDashboardDatagetWorkspacesgetWorkspaceDatagetCompanyClients"get_default_email_template_servicegetHiringManagersDatacompanyClientLstRecruitersPerformanceServicegetJobboardsgetJDJobboardsgetOverallDashboardCountsSourcePerformanceServicegetResumeTemplatesgetJobDescApplyPageDatagetCompanyCareers getResume_AnalysisDetailsService)hirelines_integration_scripthirelines_integration_function)	getConfigN)fetch_gmail_attachments)decrypt_coder   )datetime)Lower)const_profile_statusDOMAINacertc                 f    	 t         j                  }t        | dd|i      S # t        $ r} d }~ww xY w)Nzhomepage.htmlcompany_typesr   rS   r   	ExceptionrequestrS   es      */home/hirelines/hirelines/app_web/views.pyhomePagerZ      s9    !//g-0PQQ s   ! 	0+0c                 h    	 t         j                  }t        | dd|d      S # t        $ r} d }~ww xY w)Nweb_index.htmlzweb_page.html)template_namerS   rT   rV   s      rY   webHomePager^   (   s;    !//g/?dq1rss    " 	1,1c                    d }d }| j                         j                         }|j                         j                         }g }t        j                         }t	        |j                  ||            }|D ]  }	|	j                  d      r|j                  |	dd         )|	j                  d      r;|	j                  d      r\|	dd  }
t        |
      t        |
j                               z
  }|
j                         }d| d}|j                   ||d	|z               |	j                  d
      s dj                  |      S )Nc                 "    | j                         S )zFRemoves leading spaces for comparison but keeps the indentation intact)lstrip)lines    rY   normalize_linez&diff_highlight.<locals>.normalize_line?   s    {{}    c                     | |  S )z#Adds back the preserved indentation )rc   indentations     rY   add_indentationz'diff_highlight.<locals>.add_indentationC   s    tf%%re   z     z- z+ z<span class="highlight">z</span> z? 
)strip
splitlinesdifflibDifferlistcompare
startswithappendlenrb   join)preset	user_coderd   ri   preset_lines
user_linesdiff_resultdifferdiffrc   	user_lineuser_indentationuser_contenthighlighted_lines                 rY   diff_highlightr   >   s.   & <<>,,.L"--/JK ^^F|Z89D  ??4 tABx(__T"__T"QRI"9~I4D4D4F0GG$++-L ":,wO/?GWAWXY__T"%( 99[!!re   c                 F    	 t        | dddi      S # t        $ r} d }~ww xY w)Nr\   r]   z
login.htmlr   rU   rW   rX   s     rY   	loginPager   h   s1    2 g//<1PQQ     	  c                 .    t        |        t        d      S )Nz/login)r   r   )rW   s    rY   logout_viewr      s    
7OHre   c                 F    	 t        | dddi      S # t        $ r} d }~ww xY w)Nr\   r]   zregister.htmlr   r   s     rY   registerPager      s/    g//?1STT r   c                    | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        | j                        }t        | j                         }t        |      }|D 	cg c]  }|d   D ]  }	|	d   |k(  r|	  }
}}	|
rt        | dd||d      S t        d      S c c}	}w # t        $ r} d }~ww xY w)	N	PATH_INFOafter_login_redirect_tochildmenuItemLinkportal_index.htmlzdashboard.html)r]   menuItemListdashboard_data../)user	is_activeis_staffr	   strMETAr
   roler!   r   pathr   r/   r   r   rU   )rW   	user_mail	user_data	user_roler   currentPath
company_idr   menuItemObjr   menuItemObjListrX   s               rY   dashboardPager      s   <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7&w||4!',,/
)*54@ >[kZaNb >Un-< ! >5 > > '#6JZlx  KY  9[  \  \ E?">  s1   A(C; 9C5C; *
C; 5C; ;	D
DD
c                    | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        |      }d|i}t         d}t        j                  ||      }t        j                  |j                        }	d}
|	d   dk(  r|	d	   }
t!        | d
d||
d      S # t"        $ r} d }~ww xY w)Nr   r   r   z/api/emailtemp-listjson 
statusCoder   datar   zemail_templates.html)r]   r   
emailTemps)r   r   r   r	   r   r   r
   r   r!   r   acert_domainrequestspostr   loadstextr   rU   )rW   r   r   r   r   r   payloadurlapi_resr   r   rX   s               rY   emailTemplatesPager      s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7!),

+12--'2zz',,'
"fJg2F\myBL5N O 	O  s   BC- -	C<6C77C<c                    | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        | j                        }|D cg c]  }|d   D ]  }|d   |k(  r|  }}}t        |j                        }	|rt        | dd||	d      S t        d      S c c}}w # t        $ r}
 d }
~
ww xY w)	Nr   r   r   r   r   zcandidates.html)r]   r   candidates_datar   )r   r   r   r	   r   r   r
   r   r!   r   r   r   idr   r   rU   )rW   r   r   r   r   r   r   r   r   r   rX   s              rY   candidatesPager      s   <<!!',,*?*?wGLLQ\D]@^__
LL	i(	NN	,Y7&w||44@ >[kZaNb >Un-< ! >5 > > ,ILL9'#6J[lx  N]  9^  _  _ E?">  1   AC0 C*4*C0 
C0 *C0 0	C?9C::C?c                    | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        | j                        }|D cg c]  }|d   D ]  }|d   |k(  r|  }}}t        j                  j                         }	|rt        | dd||	d      S t        d      S c c}}w # t         $ r}
 d }
~
ww xY w)	Nr   r   r   r   r   reports.html)r]   r   job_descriptionsr   )r   r   r   r	   r   r   r
   r   r!   r   r   r   objectsallr   r   rU   )rW   r   r   r   r   r   r   r   r   r   rX   s              rY   reportsPager      s   <<!!',,*?*?wGLLQ\D]@^__
LL	i(	NN	,Y7&w||44@ >[kZaNb >Un-< ! >5 > > #??..0'#6.iu  K[  9\  ]  ] E?">  s1   AC9 C343C9 (
C9 3C9 9	DDDc           
      \   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        | j                        }|D cg c]  }|d   D ]  }|d   |k(  r|  }}}|rRt        |      }	t        |	      }
t               d   d   }| d|
 }t        |	|      }t        | dd	||d
   |d   |d      S t!        d      S c c}}w # t"        $ r} d }~ww xY w)Nr   r   r   r   rP   	hirelinesz/carrers-page/r   zjob_descriptions_list.htmlactiveJd
inactiveJd)r]   r   r   r   careers_urlr   )r   r   r   r	   r   r   r
   r   r!   r   r   r   r   rJ   r(   r   r   rU   )rW   r   r   r   r   r   r   r   r   	companyIdenc_companyidhirelines_domainr   allJdsrX   s                  rY   jobDescriptionr     sn   <<!!',,*?*?wGLLQ\D]@^__
LL	i(	NN	,Y7&w||44@ >[kZaNb >Un-< ! >5 > >$Y/I(3M({84[A-.n]OLK&y;F'#6Jf  yE  QW  Xb  Qc  sy  zF  sG  Va  9b  c  cE?">  s2   AD D4AD 
D D 	D+%D&&D+c                    | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        | j                        }t        |      }t        ||      \  }}|D 	
cg c]  }	|	d   D ]  }
|
d   |k(  r|
  }}	}
t        | dd||d      S c c}
}	w # t        $ r} d }~ww xY w)Nr   r   r   r   r   zadd_job_description.html)r]   r   hiring_managers)r   r   r   r	   r   r   r
   r   r!   r   r   r   r=   r   rU   )rW   r   r   r   r   r   r   r   current_user_idr   r   r   rX   s                rY   Addjobdescriptionr   9  s   <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7&w||4 +	*?	)*T'4@ >[kZaNb >Un-< ! >5 > > g2F`r~  Sb  5c  d  	d>  s+   A"C( 3C"C( "C( (	C71C22C7c                    | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        d|       t        |      }t        |      }t        | j                        }t        ||      }t        ||      }	t        ||      \  }
}d}|r7|j!                  d      r&t	        |j!                  d            t	        |      k(  }t#        ||      }|D cg c]  }|d   D ]  }|d   |k(  r|  }}}t%        | dd	||||	|
||d
      S c c}}w # t&        $ r} d }~ww xY w)Nr   r   r   Fhiringmanagerr   r   r   zupdate_job_description.html)r]   r   
jd_detailsr   recruiters_datar   is_hiring_manager
job_boards)r   r   r   r	   r   r   r
   r   printr   r!   r   r   r)   r7   r=   getrA   r   rU   )rW   update_jd_idr   r   r   compyIdr   r   r   r   r   user_idr   r   r   r   r   rX   s                     rY   update_jobdescriptionr   Q  s   <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	k)$y),Y7&w||4|W5
+L'B"7	"J!*..9 #JNN?$C DG T#Il;
4@ >[kZaNb >Un-< ! >5 > >g2Fc  vB  PZ  gp  CR  et  IZBL5N O 	O>  s+   CE E9E E 	E'!E""E'c                    	 | j                   }t        |      }|j                  }t        |      }t	        |      }t        | j                        }t        ||      }t        |      }	t        j                  d|	      }
t        j                  d|	      }|D cg c]  }|d   D ]  }|d   |k(  r|  }}}t        | dd||||
|d      S c c}}w # t        $ r} d }~ww xY w)Nz
#enc_jdid#r   r   r   zjd_setup_new.html)r]   r   r   r    hirelines_integration_script_enc"hirelines_integration_function_enc)r   r
   r   r   r!   r   r   r)   r   rH   replacerI   r   rU   )rW   jd_idr   r   r   r   r   r   r   enc_jdidr   r   r   r   r   rX   s                   rY   jobDescriptionSetUpr     s   LL	i(	NN	 +	,Y7&w||4ui0
&+G+O+OP\]e+f(-K-S-ST`ai-j*4@ >[kZaNb >Un-< ! >5 > > g2FYkw  FP  ]fXxZ|5~  	>  s*   BC C
3C 
C 	CCCc           	      `   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }|j                  }|j                  }t        |      }|j                  }t        j                  j                  |      j                         }t        |      }	|s.t        j                  j                  d      j                         }t!        | dd|||	d      S # t"        $ r}
 d }
~
ww xY w)Nr   r   	companyidr   r   zbranding.html)r]   r   companyBrandingemail_template_data)r   r   r   r	   r   r   r
   r   emailr   r!   r   r   filterfirstr<   r   rU   )rW   r   r   r   
user_emailuser_companyidr   r   r   r   rX   s              rY   brandingPager     s   <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	__
",,,Y7((
 #**11N1KQQS@L&..555BHHJO g2ofrGV  nA5B C 	C  s   CD 	D-'D((D-c           	         | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        |      }t        |      }t        |j                        }t        | dd|||d      S # t        $ r} d }~ww xY w)Nr   r   r   zadd_candidate.html)r]   r   jds_datasources_data)r   r   r   r	   r   r   r
   r   r!   r   r#   r0   r   r   rU   )	rW   r   r   r   r   r   jds_listr   rX   s	            rY   addCandidatePager     s     <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7!),
#J/ -Y-@-@Ag2FZkw  DL  \h  5i  j  	j s   A*B< <	CCCc           
      0   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }|j                  }t        |      }t         d}d|i}t        j                  ||      }	t        j                  |	j                        }
d}|
d   dk(  r|
d	   }t!        |      }t#        |      }t%        | d
d||||d      S # t&        $ r} d }~ww xY w)Nr   r   z/api/get-emailtemp-datar   r   r   r   r   r   r   zupdate_emailtemp.html)r]   r   r   r   r   )r   r   r   r	   r   r   r
   r   r   r!   r   r   r   r   r   r   r   r   r   rU   )rW   eidr   r   r   r   r   r   r   r   r   r   r   rX   s                 rY   updateEmailTempPager     s   <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	__
,Y756*--'2zz',,'
"fJ!),
!*-
g2F]nzBLZdr|5~  	  s   B4D 	DDDc           	         | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        |      }t        ||      }t        ||j                        }t        | dd|||d      S # t        $ r}	 d }	~	ww xY w)Nr   r   r   zjd_data.html)r]   r   jd_datar   )r   r   r   r	   r   r   r
   r   r!   r   r   r    r   r   rU   )
rW   jidr   r   r   r   r   r   r   rX   s
             rY   
jdDataPager     s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7!),
 Z0-c),,?g2neq")O5M N 	N  s   A,B> >	CCCc                 @    	 t        | d      S # t        $ r} d }~ww xY w)Nztrail_expired.htmlr   r   s     rY   trialExpiredr     s(    g344     	c                    | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        | j                        }|D cg c]  }|d   D ]  }|d   |k(  r|  }}}t        |j                        }	|rt        | dd||	d      S t        d      S c c}}w # t        $ r}
 d }
~
ww xY w)	Nr   r   r   r   r   zinterview_candidates.html)r]   r   interview_candidatesr   )r   r   r   r	   r   r   r
   r   r!   r   r   r&   r   r   r   rU   )rW   r   r   r   r   r   r   r   r   r   rX   s              rY   interviewCandidatesListr     s   <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7&w||44@ >[kZaNb >Un-< ! >5 > >  8	E'#6Je  wC  [o  9q  r  r E?">  r   c                 r   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 t        |      }t               }|d   }|d   }|d   }|d   }|d   }|d   }	|d	   }
t        | d
d|||d   |d   |	||||
d
      S # t        $ r} d }~ww xY w)Nr   r   job_desc_datacandidate_datainterview_datascreening_datacoding_dataprofile_dataprofiling_videor   zcandidate_interview.htmlsections_questions_lstsections_lst)
r]   r   cdn_datar  interview_sectionsr  r   r  r  r  )
r   r   r   r	   r   r   r'   r*   r   rU   )rW   sch_idr  r  r   r   interv_sect_quesr  r  r  r  rX   s               rY   candidateInterviewr  6  s   <<!!',,*?*?wGLLQ\D]@^__26:< 1'(89)*:;'(89$]3%n5():;g2F`kr  G'78P'Qiy  {I  jJ  Zf+^Ze  yH5J K 	K  s   AB' '	B60B11B6c           
         | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        |      }| j                  j                  dd      }|d   }|d   }	t        | dd|||	|d	      S # t        $ r}
 d }
~
ww xY w)
Nr   r   statusNr      r   zinterview_schedule.html)r]   r   interviewersr   schedule_type)r   r   r   r	   r   r   r
   r   r!   r$   GETr   r   rU   )rW   cidr   r   r   r   call_schedule_detailsr  r  r   rX   s              rY   interviewScheduler  P  s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7 6s ;#6,Q/.q1g2F_o{  LX  jxDQ5T U 	U  s   A1C 	CCCc           	         | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }|j                  }t        |      }t        | j                        }d}|D 	cg c]  }|d   D ]  }	|	d   |k(  r|	  }
}}	|
rt        | dd|||d      S t        d	      S c c}	}w # t        $ r} d }~ww xY w)
Nr   r   Yr   r   r   zevaluation.html)r]   r   user_companyhide_reg_numberr   )r   r   r   r	   r   r   r
   r   r   r!   r   r   r   r   rU   )rW   r   r   r   r  r   r   r  r   r   r   rX   s               rY   evaluationPager  k  s   <<!!',,*?*?wGLLQ\D]@^__
LL	i(	NN	 **,Y7&w||44@ >[kZaNb >Un-< ! >5 > > '#6J[my  JV  ix  9z  {  { E?">  s1   AC* 'C$C* 
C* $C* *	C93C44C9c                 n   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        |j                        }t        | dd||d      S # t        $ r} d }~ww xY w)Nr   r   r   zfeedback.html)r]   r   interviewed_candidates)r   r   r   r	   r   r   r
   r   r!   r+   r   r   rU   )rW   r   r   r   r   r  rX   s          rY   feedbacksPager    s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7!7	!Eg2oeq  Lb  5d  e  	e    AB% %	B4.B//B4c                 p   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        ||j                        }t        | dd||d      S # t        $ r} d }~ww xY w)Nr   r   r   zinterviewer_feedback.html)r]   r   feedback_data)r   r   r   r	   r   r   r
   r   r!   r,   r   r   rU   )rW   r  r   r   r   r   r!  rX   s           rY   interviewerFeedbackr"    s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7,S>g2Faq}  O\  5^  _  	_ s   AB& &	B5/B00B5c                    	 | j                         }t        j                  j                  |      j	                         }|rt
        j                  j                  |j                        j	                         }t        j                  j                  |j                        j	                         }t        j                  j                  |j                        j	                         }|j                  |j                  |j                  rt        |j                        nd|j                  r|j                  nd|j                  d}t        | ddi      S # t         $ r}t#        t        |              d }~ww xY w)	N)meetinglinkr   r   r  r   )candidate_idschedule_idcallend_statuscompany_logocompany_namezcandidate_call.htmlcall_details)build_absolute_urir   r   r   lastr   candidateidr   r   r   r   callendflagr   logourlnamer   rU   r   )	rW   room_idcurrent_urlcall	candidatecompany_detailsbranding_detailsr+  rX   s	            rY   candidateSideMeetingPager8    s6   002##**{*CHHJ!))00D4D4D0EJJLI%oo44	8K8K4LQQSO'//66ATAT6UZZ\ "&!1!1 $<@<L<L3t'7'7#8RU?O?W?W#3#;#;]_#2#7#7L g4n\5RSS c!fs   EE 	E<"E77E<c           
      |   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        |      }|d   }|d   }|d   }	t        | dd||	||d      S # t        $ r}
 d }
~
ww xY w)	Nr   r   candidate_inforegistrations_datafeedbacks_datar   zcandidate_data.html)r]   r   r<  r:  r;  )r   r   r   r	   r   r   r
   r   r!   r-   r   rU   )rW   r  r   r   r   r   candidatedatar:  r;  r<  rX   s              rY   candidateDatar>    s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y705&'78*+?@&'78 g2F[kw  JX1?Ug5i j 	j  s   AB, ,	B;5B66B;c           	      ~   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }t        |      }|j                  }t        |      }t        |      }t        | dd||d   |d   d      S # t        $ r} d }~ww xY w)Nr   r   r   zusersLst.htmlusrsroles)r]   r   usersDataLstrolesLst)r   r   r   r	   r   r   r
   r   r   r!   r%   r   rU   )rW   r   r   r   r   r   	usersDatarX   s           rY   userLstrE    s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	 +	NN	,Y7"9-	 g2oeqFOPVFWdmnudv5x y 	y  s   AB- -	B<6B77B<c                 X   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }t        |      }|j                  }t        |      }t        | dd|d      S # t        $ r} d }~ww xY w)Nr   r   r   r   )r]   r   )r   r   r   r	   r   r   r
   r   r   r!   r   rU   )rW   r   r   r   r   r   rX   s          rY   r   r     s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	 +	NN	,Y7g2ndp4qrr s   AB 	B)#B$$B)c                 v   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }d|j                  i}t        |      }t        | dd||d      S # t        $ r} d }~ww xY w)Nr   r   r  r   zcredits_usage_report.html)r]   r   credits_usage)r   r   r   r	   r   r   r
   r   r!   r   r   r   rU   )rW   r   r   r   r   r   rH  rX   s           rY   creditsUsageReportPagerI    s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7y**+5g>g2Faq}ER5T U 	U  s   AB) )	B82B33B8c           	         | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        |j                        }t        j                  }t        | dd|||d      S # t        $ r} d }~ww xY w)Nr   r   r   zcompany_data.html)r]   r   rS   company_data)r   r   r   r	   r   r   r
   r   r!   r.   r   r   rS   r   rU   )rW   r   r   r   r   rK  rS   rX   s           rY   companyPagerL  -  s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7%i&9&9:!//g2FYiuERbn5p q 	q  s   A$B6 6	C?C  Cc                 h    	 t               d   d   }t        | dd|d      S # t        $ r} d }~ww xY w)N
APP_CONFIGdemo_videoidr\   z	demo.html)r]   
demo_video)rJ   r   rU   )rW   rP  rX   s      rY   demoPagerQ  E  sA    [.~>
g/;\f1ghh r_   c                 @    	 t        | d      S # t        $ r} d }~ww xY w)Nztnc.htmlr   r   s     rY   termsAndConditionsPagerS  Q  s)     gz** r   c                 @    	 t        | d      S # t        $ r} d }~ww xY w)Nzprivacy_policy.htmlr   r   s     rY   privacyPolicyPagerU  [  s*     g455 r   c                 n   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        |j                        }t        | dd||d      S # t        $ r} d }~ww xY w)Nr   r   r   zsources.htmlr]   r   r   )r   r   r   r	   r   r   r
   r   r!   r0   r   r   rU   rW   r   r   r   r   r   rX   s          rY   sourcesPagerY  f  s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7,Y-@-@Ag2ndp  AM  5N  O  	O r  c           
         | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        |      }t        |      }t        |j                        }t        |      }t        | dd||||d      S # t        $ r}	 d }	~	ww xY w)Nr   r   r   zcandidate_upload.html)r]   r   r   r   candidates_upload_data)r   r   r   r	   r   r   r
   r   r!   r   r#   r0   r   r1   r   rU   )
rW   r   r   r   r   r   r   r   r[  rX   s
             rY   uploadCandidatesPager\  {  s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7!),
#J/,Y-@-@A!>z!J g2F]my  JV@Hbx5z { 	{  s   A6C 	CCCc           	      ~   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }t        d|       |j                  }t        d|       t        |      }t        | j                        }|D cg c]  }|d   D ]  }|d   |k(  r|  }}}t        t        j                  j                  |j                         j#                         j%                  d            }	t        t&        j                  j                  |j                         j#                               }
|	D ]  }t&        j                  j                  |d	   
      j)                         }|r|j*                  nd|d<   |j-                  d      xs d|d<   t.         t/        j,                  |d   d      |d<   |j-                  d      r|d   j1                  d      |d<   nd|d<   t2        j                  j                  |d         j#                  dddd      j%                  d      }d}|D ]N  }	 t5        |j-                  dd            }t5        |j-                  dd            }||k\  r|||z
  z  }| d|d<   P t6        j                  j                  |d         j#                  dd       j)                         }|r+|j-                  dd      |d!<   |j-                  d d      |d"<   n
d|d!<   d|d"<   |j-                  d#      }t        t8        j                  j                  |$      j;                  d%d&'            }t        t8        j                  j                  |d         j;                  d%d&'            }||z   }i }|D ]*  }|j=                         j?                         }||vs&|||<   , t        |j#                               |d(<    |rtA        | d)d*||	|
d+      S tC        d,      S c c}}w #  Y xY w# tD        $ r} d }~ww xY w)-Nr   r   r   r   r   r   r   z-dateofcreationsourceidr%  r   source_codestrengthr   profilestrengthr  NAstatus_textdateofcreation%d-%b-%Y %I:%M %pformatted_dater   )	profileidjobtitlecompanyyearfromyeartosequencez Yearsfinal_experienceprimaryskillssecondaryskillsprimaryskills_namesecondaryskills_nameresumeid)rr  tagTflatprofile_tagsr   zprofiles.html)r]   r   profile_detailssource_listr   )#r   r   r   r	   r   r   r
   r   r   r!   r   r   rq   r   r   r   r   valuesorder_byr   r   labelr   rO   strftimer   intr   r   values_listlowerrm   r   r   rU   )rW   r   r   r   r   r   r   r   r   rw  rx  psrcexperience_list	total_expexpyfytskills	resume_idresume_tagsrv  combined_tagsunique_tagsrs  
normalizedrX   s                              rY   profilesPager    s?   <<!!',,*?*?wGLLQ\D]@^__tLL	i(	k)$NN	k)$,Y7&w||4 &2
!$W-
^$3 

 
 w55	@S@S5T[[]ffgxyz..9L9L.MTTVW ! J	;A..''1Z='9??AC,/syyRAm $%55#4#9A  377(TJAmuu%&&'(8&9&B&BCV&W"#&("# %%,,qw,?VJ	:x@Xj! 
 I& 
=SWWZ34BSWWXq12BRx!R"W,	 ,5+V(<$%
= #**11AdG1DKK!2eg  *0**_b*I&',2JJ7H",M()*,&',.() j)I ""I"6U.K
  ""QtW"5U.L
 (,6MK$ 2 YY[..0
[0.1K
+2 !%[%7%7%9 :AnUJ	;` #%4$0'6"-		 	 E?"O
P@  sR   A P- 1PFP- AP%!D8P- 9P- 
P- P- %P*'P- -	P<6P77P<c                 Z   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        |      }t        | dd||d      S # t        $ r} d }~ww xY w)Nr   r   r   zprofile_view.htmlr]   r   rw  )r   r   r   r	   r   r   r
   r   r!   r2   r   rU   rW   pidr   r   r   r   rw  rX   s           rY   profileviewPager    s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y705g2FYjv  JY  5Z  [  	[     A	B 	B*$B%%B*c                    | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }|r|d   j                  d      }n|}t        j                  j                  dd      j                  d      j                  d	d
      }t        j                  j                  |d      j!                         }|rd}	nd}	t#        |      }
t%        | dd|
|||	|d      S # t&        $ r} d }~ww xY w)Nr   r   r   rg  r  A)lookupidr  )lookupmasterid
lookupnameTrt  E1)rg  activitycoder  r  r   zprofileactivity.html)r]   r   activity_detailsactivity_namesemail_existrg  )r   r   r   r	   r   r   r
   r   r3   r   r   r   r   excluder~  r   existsr!   r   rU   )rW   r  r   r   r   r  rg  r  r  r  r   rX   s               rY   profileactivityviewPager  +  s^   <<!!',,*?*?wGLLQ\D]@^__"LL	i(	NN	 :#>(+//<II%--44as4KSScdSeqqr~  FJq  K ((// 0 
 &( 	
 KK -Y7g2F\my  N^  p~  MX  en  5o  p  	p  s   CD/ /	D>8D99D>c           
          	 | j                   }t        |      }|j                  }t        |      }t	        |j
                        }t        |      }t        | dd||||d      S # t        $ r} d }~ww xY w)Nr   zresume_inbox.html)r]   r   resumes_datar   r   )	r   r
   r   r!   r0   r   r4   r   rU   )rW   r   r   r   r   r   r  rX   s           rY   resumeInboxPager  U  s    LL	i(	NN	,Y7 -Y-@-@A$Y/g2FYiu'Y|5
  	  s   A A# #	A2,A--A2c           
      z   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 |}| j                   }t        |      }|j                  }t        |      }t        ||      }t        |      }t        | dd||||d      S # t        $ r}	 d }	~	ww xY w)Nr   r   r   zupdate_profile.html)r]   r   r  rg  rw  )r   r   r   r	   r   r   r
   r   r!   r5   r2   r   rU   )
rW   r  rg  r   r   r   r   r  rw  rX   s
             rY   updateProfileDetailsPager  l  s    <<!!',,*?*?wGLLQ\D]@^__	LL	i(	NN	,Y7%c9505 g2F[kw  HT  bk  N  5O  P  	P s   AB+ +	B:4B55B:c                     	 | j                   }t        |      }|j                  }t        |      }t	        |j
                        }t        d|       t        | dd||d      S # t        $ r} d }~ww xY w)Nr   r   zadd_profile.htmlrW  )	r   r
   r   r!   r0   r   r   r   rU   rX  s          rY   addProfilePager    s    LL	i(	NN	,Y7 -Y-@-@An\*g2FXht  FR  5S  T  	T s   AA" "	A1+A,,A1c                 H   	 |}| j                   }t        |      }|j                  }|j                  }t        j
                  j                  |j                        j                  }t        |      }t        |      }	t        | dd||	||d|d      S # t        $ r}
 d }
~
ww xY w)Nr%  r   zview_resume.htmlr   )r]   r   rw  usernamecomany_nameprofile_strengthrg  )r   r
   r   r1  r   r   r   r   r!   r2   r   rU   )rW   r  rg  r   r   r   r  r  r   rw  rX   s              rY   view_resumePager    s    	LL	i(	NN	OO''9+>+>'?DD -Y705 g2FXiu  IX  em  |GHJW`5b c 	c  s   BB 	B!BB!c           	          	 | j                   }t        |      }|j                  }|j                  }|j                  }t        |      }t        | dd|||d      S # t        $ r} d }~ww xY w)Nr   zwork_calender.html)r]   r   r   r   )r   r
   r   r   r   r!   r   rU   )rW   r   r   r   r   r   r   rX   s           rY   workCalenderPager    s    LL	i(	,,((
NN	 -Y7g2FZjv  BI  Xb  5c  d  	d s   AA 	A)#A$$A)c           
          	 t        |      }t        d|       t        |      \  }}}}t               d   }t	        |d         }t        | d|||||d      S # t        $ r}	t        d| d|	         d }	~	ww xY w)Ndecrypt_cidCALL_SCHEDULING_CONSTRAINTSblock_hoursz!candidate_interview_schedule.html)slots_availabler*  	job_titler  r  z.Error processing interview page for candidate z: )rL   r   r6   rJ   r}  r   rU   )
rW   r  deccrypt_cidslots_available_listr  r*  r  call_scheduling_constraintsBLOCK_HOURSrX   s
             rY   scheduleInterviewPager    s    #C(mL) @QQ]?^<if&/k2O&P#5mDE gB3L`iv|  NYE
  	  >se2aSIJ	s   AA 	A7 A22A7c                 \   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }|j                  }t        |      }t        | j                        }t        | j                         }t        j                         }|j                  d      }	|j                  d      }
| j                   j#                  d      }| j                   j#                  d      }|dk(  rMt$        j&                  j)                  |d|      j+                  t-        d	            j/                  d
d	      }d}nMt$        j&                  j)                  ddg|      j+                  t-        d	            j/                  d
d	      }d}t1        |||||      }|D cg c]  }|d   D ]  }|d   |k(  r|  }}}|rt3        | dd||	|
||d|      S t5        d      S c c}}w # t6        $ r} d }~ww xY w)Nr   r   z%Y-%mz%B, %Y	recruitermonth	Recruiter)r   r   r   r1  r   FzHR-Admin)role__inr   T)r   r   logged_recruiter_idselected_recruitermonth_valuer   r   r   zrecruiter_dashboard.html)r]   r   current_month_valuecurrent_month_label
recruitersshow_all_optionr   )r   r   r   r	   r   r   r
   r   r   r!   r   r   r   rM   nowr|  r  r   r   r   r   rz  rN   ry  r8   r   r   rU   )rW   r   r   r   r  r   r   r   r  r  r  r  r  r  r  recruitment_dashboard_datar   r   r   rX   s                       rY   recruiterdashboardPager    s=   <<!!',,*?*?wGLLQ\D]@^__<LL	i(	NN	'll -Y7&w||4!',,/
lln!ll73!ll84$[[__[9kkoog. #,,& $ -  huV}%ffT6&:	 
 $O,,%z2$ -  huV}%ffT6&:  #O &@! 31#&
" 5A >[kZaNb >Un-< ! >5 > > '#6Jd  wC  ]p  H[  jt.9
1K9
   E?">  s1   FH H0H 
H H 	H+%H&&H+c                    	 | j                   }t        |      }|j                  }t        |      }t	        | j
                        }|D cg c]  }|d   D ]  }|d   |k(  r|  }}}t        |      }	t        |      }
|r$t        | dd||	d   |	d   |j                  |
d      S t        d      S c c}}w # t        $ r} d }~ww xY w)	Nr   r   r   zworkspace.htmlr   r  )r]   r   
workspaces
assign_jds	user_nameclients_datar   )r   r
   r   r!   r   r   r9   r;   r   r1  r   rU   )rW   r   r   r   r   r   r   r   r   r  r  rX   s               rY   workspacePager     s   LL	i(	NN	,Y7&w||44@ >[kZaNb >Un-< ! >5 > > #9-
(3
 '#6JZlx  HR  ST  HU  cm  no  cp  }F  }K  }K  \h  9j  k  kE?">  s0   AB5 
B/%>B5 $
B5 /B5 5	C>B??Cc                     	 | j                   }t        |      }|j                  }t        |      }t	        ||      }t        d|       t        | dd||d      S # t        $ r} d }~ww xY w)Nworkspace_datar   zworkspace_data.html)r]   r   r  )r   r
   r   r!   r:   r   r   rU   )rW   widr   r   r   r   r  rX   s           rY   workspaceDetailsPager  >  s~    LL	i(	NN	,Y7*9S9~.g2F[my  LZ  5\  ]  	] s   AA 	A("A##A(c                    | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }t        |      }|j                  }t        |      }t        |      }t        d|       |d   D ]$  }|d   r|d   j                  d      |d<    d|d<   & t        | dd	||d   d
      S # t        $ r} d }~ww xY w)Nr   r   
clientDatar@  	createdatre  -r   zclientLst.html)r]   r   rB  )r   r   r   r	   r   r   r
   r   r   r!   r>   r   r|  r   rU   )	rW   r   r   r   r   r   r  clientrX   s	            rY   	clientLstr  T  s   <<!!',,*?*?wGLLQ\D]@^__LL	i(	 +	NN	,Y7%i0
l:& ( 	*Fk"&,[&9&B&BCV&W{#&){#		* g2FVfrFPQWFX5Z [ 	[  s   BC! !	C0*C++C0c           
         | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }d|j                  i}t        |      }t        | dd||d   |d   |d   d	      S # t        $ r} d }~ww xY w)
Nr   r   r  r   z"recruiters_performance_report.htmlr   	from_dateto_dater]   r   recruiter_reportr  r  )r   r   r   r	   r   r   r
   r   r!   r   r?   r   rU   )rW   r   r   r   r   r   recruiters_performancerX   s           rY   !recruiters_performance_reportPager  o  s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7y**+!=g!F g2Fj  {GYopvYw  G]  ^i  Gj  wM  NW  wX5G H 	H     A"B4 4	C=B>>Cc                 R   	 | j                   }t        |      }|j                  }t        |      }t	        | j
                        }|D cg c]  }|d   D ]  }|d   |k(  r|  }}}t        |      }	|rt        | dd||	d      S t        d      S c c}}w # t        $ r}
 d }
~
ww xY w)Nr   r   r   zjob_boards.html)r]   r   r   r   )
r   r
   r   r!   r   r   r@   r   r   rU   )rW   r   r   r   r   r   r   r   r   r   rX   s              rY   jobBoardsPager    s    LL	i(	NN	,Y7&w||44@ >[kZaNb >Un-< ! >5 > > "),
'#6J[my  HR  9S  T  TE?">  s0   AB 
B% B 
B B 	B& B!!B&c           	         	 | j                   }t        |      }|j                  }t        |      }t	        | j
                        }t        | j                         }t        |      }t        |      }|D 	
cg c]  }	|	d   D ]  }
|
d   |k(  r|
  }}	}
|rt        | dd|||d      S t        d      S c c}
}	w # t        $ r} d }~ww xY w)Nr   r   r   zoverall_dashboard.html)r]   r   r   dashboard_countsr   )r   r
   r   r!   r   r   r   r/   rB   r   r   rU   )rW   r   r   r   r   r   r   r   r  r   r   r   rX   s                rY   overallDashboardPager    s    LL	i(	NN	,Y7&w||4!',,/
)*54Z@ 5A >[kZaNb >Un-< ! >5 > > '#6Jb  uA  Sa  uE  9G  H  H E?">  s0   A3B8 5B2B8 '
B8 2B8 8	CCCc           
         | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }d|j                  i}t        |      }t        | dd||d   |d   |d   d	      S # t        $ r} d }~ww xY w)
Nr   r   r  r   zsource_performance_report.htmlr   r  r  r  )r   r   r   r	   r   r   r
   r   r!   r   rC   r   rU   )rW   r   r   r   r   r   source_performancerX   s           rY   source_performance_reportPager    s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y7y**+5g> g2Ff  wCYklrYs  CU  Va  Cb  oA  BK  oL5G H 	H  r  c                     	 | j                   }t        |      }|j                  }t        |      }t	        | j                         }t        |      }t        | dd||d      S # t        $ r} d }~ww xY w)Nr   zbranded_templates.html)r]   r   resume_templates)r   r
   r   r!   r   rD   r   rU   )rW   r   r   r   r   r   r  rX   s           rY   resumeTemplatesPager    s    LL	i(	NN	,Y7!',,/
-j9g2F^p|  Qa  5c  d  	d s   AA! !	A0*A++A0c                     	 	 t        |      }t        |      }t        | dd|i      S #  d }Y xY w# t        $ r} d }~ww xY w)Nzjob_apply.htmljobdesc_data)rL   rE   r   rU   )rW   r   r  rX   s       rY   jobApplyPager    sW    	 s#C237L g/0MNN	 L  s   ( 1 .1 	A ;A c                 r    	 t        |      }t        |      }t        | dd|i      S # t        $ r} d }~ww xY w)Nzcompany_career.htmlcompany_careers)rL   rF   r   rU   )rW   r  r  rX   s       rY   companyCareerPager    sD    	3+C0g46G5XYY s   $' 	616c                 Z   | j                   j                  s9| j                   j                  s#t        | t	        | j
                  d               S 	 | j                   }t        |      }|j                  }t        |      }t        |      }t        | dd||d      S # t        $ r} d }~ww xY w)Nr   r   r   zresume_analysis.htmlr  )r   r   r   r	   r   r   r
   r   r!   rG   r   rU   r  s           rY   resume_analysisPager    s    <<!!',,*?*?wGLLQ\D]@^__LL	i(	NN	,Y78=g2F\my  M\  5]  ^  	^  r  )django.shortcutsr   r   django.contrib.authr   django.db.modelsr   app_api.functionsr   app_api.functions.enc_decr   app_api.functions.masterdatar	   r
   r   r   app_api.modelsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   app_api.functions.servicesr   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   app_api.functions.constantsrH   rI   hirelines.metadatarJ   r   r   app_api.functions.email_resumerK   rL   rM   django.db.models.functionsrN   rO   domainsr   rZ   r^   ro   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r"  r8  r>  rE  rI  rL  rQ  rS  rU  rY  r\  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rg   re   rY   <module>r     s   - &  ' 2 b b @  @  @  @  @v v v v v v v v v v v v d (   B A  , < +h
w( '"T>@>BB@0r084>*@46@**66(*20*:x|*'T.0&0$6@H<,682>4( 
re   