From 4caf57a3e0610a9e0d89e28c952d8d9b522c1319 Mon Sep 17 00:00:00 2001 From: Faheed Date: Mon, 13 Oct 2025 14:46:26 +0300 Subject: [PATCH] added public liink for job --- .../__pycache__/settings.cpython-312.pyc | Bin 7181 -> 7669 bytes db.sqlite3 | Bin 663552 -> 675840 bytes recruitment/__pycache__/admin.cpython-312.pyc | Bin 11311 -> 11329 bytes recruitment/__pycache__/forms.cpython-312.pyc | Bin 22099 -> 21894 bytes .../__pycache__/models.cpython-312.pyc | Bin 45034 -> 45611 bytes .../__pycache__/signals.cpython-312.pyc | Bin 11257 -> 6634 bytes recruitment/__pycache__/urls.cpython-312.pyc | Bin 6277 -> 6849 bytes recruitment/__pycache__/views.cpython-312.pyc | Bin 38975 -> 45894 bytes .../views_frontend.cpython-312.pyc | Bin 19089 -> 19316 bytes recruitment/forms.py | 52 +- .../0002_alter_jobposting_status.py | 18 + ...t_date_jobposting_joining_date_and_more.py | 23 + recruitment/models.py | 3 +- .../__pycache__/form_filters.cpython-312.pyc | Bin 2388 -> 3043 bytes recruitment/urls.py | 1 + recruitment/views.py | 26 +- recruitment/views_frontend.py | 7 + templates/base.html | 519 ++++++------ templates/forms/form_submission_details.html | 265 ++++-- .../forms/form_template_submissions_list.html | 6 +- templates/forms/form_templates_list.html | 2 +- templates/forms/form_wizard.html | 2 +- templates/jobs/applicants_of_stage.html | 9 + templates/jobs/base_public.html | 628 ++++++++++++++ templates/jobs/career.html | 154 ++++ templates/jobs/job_candidates_list.html | 624 ++++++++------ templates/jobs/job_detail.html | 456 +++++++---- templates/meetings/create_meeting.html | 2 +- templates/recruitment/candidate_detail.html | 213 ++--- .../candidate_tier_management.html | 768 ++++-------------- .../partials/_candidate_table.html | 125 +++ templates/recruitment/training_create.html | 18 +- 32 files changed, 2424 insertions(+), 1497 deletions(-) create mode 100644 recruitment/migrations/0002_alter_jobposting_status.py create mode 100644 recruitment/migrations/0003_rename_start_date_jobposting_joining_date_and_more.py create mode 100644 templates/jobs/applicants_of_stage.html create mode 100644 templates/jobs/base_public.html create mode 100644 templates/jobs/career.html create mode 100644 templates/recruitment/partials/_candidate_table.html diff --git a/NorahUniversity/__pycache__/settings.cpython-312.pyc b/NorahUniversity/__pycache__/settings.cpython-312.pyc index a9fd26e4f9dce515062c0535fc450daff4107beb..e8aace0ecd08cb95de3b2419d5ad282e86c86524 100644 GIT binary patch delta 1397 zcmYjQTW=dx5Z;R~@%`>NHW6$q+`H=9_P3cFvr$d*gp! zbN}pe*(v;d`{>Wr%*Yq+2wnMML|~eb01HgO4X{BHCSeL_m~OF846X0F9R z2EX$yN8uVQKo)WsEkfSV@4@?qUV>YOF2J&(Z^Ip;%a%e6?iSt#uJ8`r1HMc_ai13P z!dA1iPZaFaAixR^rl4$iR*Q?a)1JmNU2u&E(k|-F4J?b(K@4 zv672e{2e0hYHQvpdRhC?JNnY|TBt{rKuU|sX*j7W7mb=4?Gx!++Pd#5PWr}I!15p8 zIK8A@^*;%IMnWE8fj?VUMX9F9B~ACoXwX7|OW{4jm^MXWOMXluKPN)a@_~!=igrIR zKC(mt%wiR97nxPQh^J0=g6wr!std9z3QClfA8Lnz{ufv|NGPkYtqL_z@G0VU@hPf! z^wD^GHuyc;v@M)nG2|~9<4Z^tNuK8`0=^I^l$c3Qq!u$-?sYDKZ(?SaOXPB>_ndn& zl}>V)$;PLW$bXJVWacJQQ#o|uoX-f(&!;o-32r`_owcNLxm0FO8;abt|Aw0-KZ){( zwh@`P4*Hn~?ryC8G-6|#cFHxVd%U{GuX}vDH>mqVdLXO^L%J*SyLW(i+@2#V>kf3C zRAf*O_348{M^=;1PH;Z~X4Y>%a@j+cqoF<*^T5`PQQ?bvs2>wHd)H2dFX^Fy^MItB zGFd(J;{Qkwoui&7jrN5t2b9122G#e<0Tt5w-#VaryB5mk*PVf96dlgfU6u`oyR5}) kdFIvP1CQ~U9t`wGjv92F4l^WqnxS5P^;hbGe253}9|nB0RsaA1 delta 930 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�-k`hR+vi1*Mo&d0D9TcWoe|L% zDoPJF1S|R*`XDJcUbQviZ=?Ry@AP?K%}wciCgSU$K8@etPYf7(3}V#gtu<27!~K^&(EsX)X#JFE>C}|s08>*w z5m9ZTs)tXmh^Cr4xy@7rFUXQZcXRiX_z$OU(kNFhxVHF&Q?Ng;lza^5^45{GkijNn z$!W;8AEx+;y^h#JQTa<*at102>Pd0vwSq1}&Ov5jBPoA#XCX^!VOP;!)*KC2ml$Hd z!sK5goJY6-of<97D~?%|OP7D{V@9M4?n#}5laDco6DuT2u8fQuWt?_=P863q9xLV2 z|4_)d1Yt2II0_d^w9wI%1)mq6;4V>@7u+RPri(}-w9eg$t}21QP2HK$zxDh*;MocYKsuW8J3`Ra|(JNY&eROk24e^!keKl zE2{_@0(o^2ISb|0HDoAssM<+#M&5ZZ*mB1D3alH!tswpvTnN4WkCg0*SfKh*p*bgq`CAz)pV zL&jnKs%G*H46eFHByhMch2mgcGx@%|eh--qd+XDvFi@|JlVHAL%v6n_BJjLML(iSs z2>o!oelHoD+DACq5aQG{WCS)grt2TIg^8FDVHo-vbtDm7P0Qi$#x8OS4y|6trBLPy z+*-Z#k^8U1V1&!`_uqx#aQ`Vp_FqRc4v;ILY%b!ARCWVaHm5zZ6+LD{xDKy0>xe$| zPIDQVFJ4OVqTp$d#;y?Du5D{P+uiub)a>?&bBhy*od|l+IZ}xg7CBywU&E4w$n!kG Mpgpk>&O2WI7Z5~dq5uE@ delta 2268 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 VK1;0xi8})O4E)(Q1D78=^&b~^D5C%X diff --git a/recruitment/__pycache__/signals.cpython-312.pyc b/recruitment/__pycache__/signals.cpython-312.pyc index 784a796ff0a74381b2efa92550b9aa478bfc6021..14eddf8f41fe13561d0b95ec2852b6c7c900cf2f 100644 GIT binary patch delta 1021 zcmaJS(&=g!B*u96(@pGI@(i9!V(lMq1!lTmUTjDOjjdpx5r(wL^C0kUcUA z)9NEuQ6xqMx+IOMEel5uGiTs5Y%(joln!5M>bao}73N z>%7KPqi~%nVoMiNcf_u!A7ss0+wjMa}TQECqMc`{_W*#XSj=7+0V<6(6` zSn!rlB_4~+BswJv*`$&{B{$4^i`k3vrJiDT7oQw3b2U8|XZ<20FLo_+-Pn9AA~=^XJy& j)P(pQ%9H8&o1bCZE*FH#UI1_>cNp7^cwbI8@hsY3?e_U% literal 11257 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 delta 1161 zcmZ9LPi)&%9LN3Vd2#7dL>K4JGB;})Qg>PGq-%h&(KabrD7axun{Db!vx3tt+19e8 zffclcArKQ6G(CjItsD@Q;E<_jq;drg?`f7SAx($_7dY^cI3P_z*zXmAupX z`WifdN8}Vt$;n8?O;*_6|5j@rek^~uZ!x{OICf#@`@VPioz?#5q+=7S>#b{T<78uP z<5^GE8rG!I?!0=f(QY@^*Y?Q23oeIepRhvZG5v>rtGTjvXd`I}Oo9db{HoMQjw2xom?PiBWc#ve=g54CnB04xKb@Fh_7e2prTPe53aY*o)konw!69FoY90O-jO@Q*gH2-4 zg$(@Gg;}b{T{t8hGvP16#3WsLYHyGMM=N3NpMjsI>>0}R-hh*-;!G7SZP=hgj#D-b zuZL7Q&r?%?pM+xa3^UKeuU%7Q<`nD?$HbER>V6C**-{>)5Y9 z@Mn5m8MkaLVJ(bnoc$q8#X ztRZ8{2Gisf2A4gE`VMbB`Gx+O-n(UkQ>4a_#ZVNfx})Z?ns?M$tj<1AUqY4FY+#W( z%dN6p5^2XBZ4PU5U9@1?piV9^e)<1=4>uTYG8{*VoRctd!bI~|Y;cuaVYtO`DuBFtuHE(o;A+wYz46Dv>*kz5#!VDDs=k+<<>Yg61YO(*m7(YFBac s%Q(M`>h9oOk{8&AV|2V%bSBQ@iSww|{e$DAyg+7X;C6qj?EXZ513XAufdBvi diff --git a/recruitment/__pycache__/views.cpython-312.pyc b/recruitment/__pycache__/views.cpython-312.pyc index d052836331ee0fd880ddde8c1217fc89013e05e3..70cde358976f062503018c55930a80a080eace17 100644 GIT binary patch delta 7806 zcma)B4^&fUmd^|M2T90ZAdmzCA`(Cl5G;!Strq{FsI7%kW8gh85`umSDls(7Z1+@K z+tGfVs;ySK+jB~fwo9Ac*3Rs-c6Mi$GqY#=VyMYxZKvJ3(=&T!di*!1^QWD&_r6C$ zRJzl5;Fs^+?|%2Y_kQ>Lci;OH(x3lYn)^$wHb(-_u8)7a$N2LTxfbSyH|PCW8fF_F zmvp(g7WRI&@p0xnvcS{T!zrZ_E}LE0$DC(G8r$@^BvqgK?dlb{nlrc-&2V+G?0q1e zV_N`s-@~~WI5|r?FV~HWm>K;5fgF{;;u8TTmL$uZZSX z#PTagH`6PPdzl=%a^W*fb%b9?q|DoN^`h69pU~eeDwqEZTCS$~_kBeFN1w-x(%U_Y z=mJ9y%_}g6St*-!L3UmWEbxplfo!oPk%T0yoK=Jv4|6_Cq-~QpmF-FG?m;r(3UCAa zykJmLv2ykHwukQD?v#>tU`tx=sCKzLewVv9;5onr^?L_<{B^xbdXH{c>1cEXZjtg!f z-+{CPowXhcqmrveTijS4HI~PXjZtG`LRD}pOKMVlp=j28Z+AjhkSLvdT`o~-Z%MM0 z3Mk3-w{s;Lv@JM+TQKW8|L!!4r9F#d#_7E4p*FHRm!A2*OK|zghi)l!?;fweK-;`tjOk^{=t+ zR|p@|;&s*X|Apd(Nc*}c7-o`Qd7w%0A6WMxHMGr>{}zh>LYKDvC`J6HtwR1K5GNy* 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 R46~KFbto%~d4v%R{XeB^nRWmG delta 2533 zcmah~X-rgC6rMXX@3D*n$bgXIxFCv8Tv%N|Q8XxMUBRm3G7P*2i~`d8W?HFI1vMu9 zA;KYTZEI|5+h}YPb3{CA+?{;TyjmNh=BerH*iJIy=kjPFW|J1C zW>m19ET~g6*O@x)o&T;iT|hAq z>hb$3-F{xBTX2Z!1@k(E15VIl6y(2UW+&n5l*8-{yjL*N_C49inV*NPL*wC5fkV2C z!*>lw;ReP|z}r)^h*QQ(LRmsKFSIN&U1`I+lS}u}dO{5F$t7ns^k!c8ZoHFI`^h z_Nq!qNBxK+3L&Nyb+`+y3sdD7^m$}9zFeqVds8Ajm%xdjga&>4P*f)@D48b>Kv6OF zlw)N`4c|2DyT zeP-XIw4Qeep44zS4aX8#pk3dzT5K-uJue~nkYEvkD33_835QD5zY9Y11ww<@!K?Do zG>r6=`TY3Ib!jO@K89c%K`y~~f(Zn9%w#d~i6Hq?rCF$`HnRN}q~|hGe8oOY_m@_C zeLhWfdwjfxQc8d!E7N3=aUytDW@PlGD5B;a=j9Ee5dkk3x$C-jd5zBd5wAZ%BAi&6 zB^9A~2H2{NuwqRtYlI_p39xTof4jwphT!Lu;pmzKm=ot{sgDU)EuD=BqWZ-`_WB;o z3NKEMfx+Wr0qXmLeMuOsX^3GCNQ-yC_J$a^ve^M=8^Tx|eAlq3cgJHR_ERiCoLTX1 zIAC^Tk}QsP0jz8sGFI3{ImMwbz?=e+!RLW%dMz$U)0H0GYPtne=Ay8-;ZkG5OyLos zYgJmA&&{_957Ba)b3Y*<*gdQPI9dCIJO9vRvoXKkv@h2j-_-u06vIJ+=D;+|}Z z9`JtduIiJO=X=gGTGw6+XBn_+qnky;rH!+h2ZlGLV4ra{4Q6{`ZBt=N3P!-YDb89c z1ui2{30#z$ha`=l93C{aW>u2tMNq={|L}>qgaDi0rcp`HWS0=9V~T`k1$$9`b7HK8 zv|NK5=GNv^))US($7fqfL7S*JgZmdvir|vSw*rR&yIxkQss1X> zEnf3wMA-|8E$PorESM7!OJGII9JUlrx6F|0Q6U+9V7e5duo+4GD*}bIkiSkeUDSu;PhH@dIdQ>Y@A*wPEQf12Zqz#<8&uDRhicV+wHWy ri6Z_?`eSA&yKT%ioQ=I(!g{i_yTc*B?T5&IOm3gdG&7TV9`gPH8V8uR diff --git a/recruitment/__pycache__/views_frontend.cpython-312.pyc b/recruitment/__pycache__/views_frontend.cpython-312.pyc index 6ad768259c6d16f2eae67bfa605e598a2f7423a9..61b6f94c0ced9e545b74f9d08769340fed4257b2 100644 GIT binary patch delta 1310 zcmX|AYfM{Z7(Q<=r(F-%mbSE%71{#rHd?wuVU$Zjnd|0=_uG$k2nZCRc*-PGCLI|Q zHnJ7oIi^dL#7vz)<~+t9E}BgD!)p|$VX2ARKYzIC7MYjDsNZ`Ep5#2=`@Qe;UcT=< zXXYhXJqbBqWM}I*_H6v|dhg!4^EviBg-t2>@_5Ku019xNSUbwa^03rsz#D1<+Vf5S zhYl!4A(o4`dqB=3yMtM0p+L?@5*Z(8LrE8`S6vikGL*2zrf^LEyJZE`C=p!>m(2sf6`}w2HOni;* z`X=d&^<{v0Y_>)0gGAU#A^Id?v5xjb>o9?D+CngdueDgDziqz*jN)$_U9cn-+9v># z_-ctW>pe=|&fw1^hgEhr-Y%(S!&a6C`BAEq#FWXR+fOFJ8#rCM3-(h<+}s?+`y6%f z98Nh}4D!Hj#LFTWXMo3=tk~`<&>bQV!38ur!*EDWk2}X$>aWfg*3R$p>kbo%;1WLV zs)56}q_W@z*Hwt&=`t%!;rnHF^)!orkLj`~6kvV%FBqev{&`czyT@MNbqh<%;C-dG|&C?2CG^x;Jkx7de2RqQNPGSkD0UhKJ|v<#Fur~_iHW56U%tg(i%3rCKJ!;lzo4*`VxYxf6EV$@DDIBDN@+h;od+Y0kbj@jg zpnJGC-nCYM7^hJi2*Mt04#Zj4bAfhN}Dq&nx*!;!I)6Y?PL3H45Vq+Go^7 zRwY3KZ)~f92FY392>d?sJd6Jp*>F7M;O}Mf5=ZdukR6UNA%`J|Lc?D$jTf8EXlq;u zj1m7L!DfOa1CKKE*U2ZSWsU^hb4f`uqtYbaX>`EjSlqOm)$DI-WP&8AU1B7W-~s%y zX;p3!VFV!@VaIzoe4W{?EmhEiiI$Jn28gs)GOyoNj3-(PVL)1H{Y0Us)1}p&@qL5C zqO8rMINmk_!_u9$cL7dFOZOPSD*r07xJjL|`b3hLcnZ@yuI75c{Ef}~j&_w}*6L&U IY2>s20F>HeoB#j- delta 1187 zcmXw&drVt(6vumR+e>%57FMX`)lvGAD?$sjKm;rg$9QB-P=nE!F}4<30(AV^35txG zN!-H?x)UL830tzoWC7#!>OUs9Z2FHH4T;8>X2kf{W;B>3P1G2pzjKRC?&o*zdHqiB z@B7QGLgpPXe{C{J8vgtJ&V$%jEgzbziiC)u_=-d@NAw#4g*2K4;dKH3KH$PzdLzmf zBYsj=ghwrsR@gM)kj2K=eS52foBA?bx7@5YZa}{JIgPwO%%0~jw?JKF$Z97N$8n}O zYt^y<53nGinIoy?z_F5sf)RSlX>h%y7pn}ls8n<)m#m8bvuL)>Kn&Bin5cV9@BhQE z?AksRtVgNGF~V^|gfNC%<-^7pnQ_7d9;_IGHG$=8t>Xl z@f*7f63Qccp#bv;4mZ4~cpXasi?~_sg7^J$(%;HzM<*v)9fj%h$pWh<`z%M2j?m#?t$fLvQfxFn9iJW_ znT#h>>;m_Fix0gc@FeyyI0k45fbt*AG6$v4qN?q9sA%lIgS6bud z_xwp_a87=yNYt3!*N3n7eP^mm_ue-iz#rts0+Z&RN!MMh6h7h88!z$XtX>@l5BpXi zjX(MVu&kK;Z6H#RHx4(vZMw=$xgh`9SMfnZok8{JdAPFC3(MHkI0zP8Zd^5{sY)Fz zgZ`!)rF3XnaVnaMB_ewbDB}wL+SCkJ(HThaT`vd1yvfgjcKAg(7@XINZ&A)!yX0`B)x+l+-Feyx&t484;eErQ4z6Vq?H80y z7{m`kIo|zdXFpHa<$M8KyME)gr`r$5aJc(39<}y7!#yF79cOz=VN6-+`CPE58q}Xi zoSIHCRpsX~+B*wV%1-Y`0I00=6+?M~Hd3#MDt1-Oq(HWYTm3&3I>EMGS%2G*({L*{ JfExo}{s+{TL9PG* diff --git a/recruitment/forms.py b/recruitment/forms.py index d4d3532..7cb37cc 100644 --- a/recruitment/forms.py +++ b/recruitment/forms.py @@ -195,9 +195,9 @@ class JobPostingForm(forms.ModelForm): fields = [ 'title', 'department', 'job_type', 'workplace_type', 'location_city', 'location_state', 'location_country', - 'description', 'qualifications', 'salary_range', 'benefits' + 'description', 'qualifications', 'salary_range', 'benefits','application_start_date' ,'application_deadline', 'application_instructions', - 'position_number', 'reporting_to', 'start_date', 'status', + 'position_number', 'reporting_to', 'joining_date', 'status', 'created_by','open_positions','hash_tags' ] widgets = { @@ -247,6 +247,10 @@ class JobPostingForm(forms.ModelForm): # 'placeholder': 'https://university.edu/careers/job123', # 'required': True # }), + 'application_start_date': forms.DateInput(attrs={ + 'class': 'form-control', + 'type': 'date' + }), 'application_deadline': forms.DateInput(attrs={ 'class': 'form-control', 'type': 'date' @@ -272,7 +276,7 @@ class JobPostingForm(forms.ModelForm): 'class': 'form-control', 'placeholder': 'Department Chair, Director, etc.' }), - 'start_date': forms.DateInput(attrs={ + 'joining_date': forms.DateInput(attrs={ 'class': 'form-control', 'type': 'date' }), @@ -333,31 +337,31 @@ class JobPostingForm(forms.ModelForm): raise forms.ValidationError('Please enter a valid URL (e.g., https://example.com)') return url - def clean(self): - """Cross-field validation""" - cleaned_data = super().clean() + # def clean(self): + # """Cross-field validation""" + # cleaned_data = super().clean() - # Validate dates - start_date = cleaned_data.get('start_date') - application_deadline = cleaned_data.get('application_deadline') + # # Validate dates + # start_date = cleaned_data.get('start_date') + # application_deadline = cleaned_data.get('application_deadline') - # Perform cross-field validation only if both fields have values - if start_date and application_deadline: - if application_deadline > start_date: - self.add_error('application_deadline', - 'The application deadline must be set BEFORE the job start date.') + # # Perform cross-field validation only if both fields have values + # if start_date and application_deadline: + # if application_deadline > start_date: + # self.add_error('application_deadline', + # 'The application deadline must be set BEFORE the job start date.') - # # Validate that if status is ACTIVE, we have required fields - # status = cleaned_data.get('status') - # if status == 'ACTIVE': - # if not cleaned_data.get('application_url'): - # self.add_error('application_url', - # 'Application URL is required for active jobs.') - # if not cleaned_data.get('description'): - # self.add_error('description', - # 'Job description is required for active jobs.') + # # # Validate that if status is ACTIVE, we have required fields + # # status = cleaned_data.get('status') + # # if status == 'ACTIVE': + # # if not cleaned_data.get('application_url'): + # # self.add_error('application_url', + # # 'Application URL is required for active jobs.') + # # if not cleaned_data.get('description'): + # # self.add_error('description', + # # 'Job description is required for active jobs.') - return cleaned_data + # return cleaned_data class JobPostingImageForm(forms.ModelForm): class Meta: diff --git a/recruitment/migrations/0002_alter_jobposting_status.py b/recruitment/migrations/0002_alter_jobposting_status.py new file mode 100644 index 0000000..d2fa6de --- /dev/null +++ b/recruitment/migrations/0002_alter_jobposting_status.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2025-10-12 10:50 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='jobposting', + name='status', + field=models.CharField(choices=[('DRAFT', 'Draft'), ('ACTIVE', 'Active'), ('CLOSED', 'Closed'), ('CANCELLED', 'Cancelled'), ('ARCHIVED', 'Archived')], default='DRAFT', max_length=20), + ), + ] diff --git a/recruitment/migrations/0003_rename_start_date_jobposting_joining_date_and_more.py b/recruitment/migrations/0003_rename_start_date_jobposting_joining_date_and_more.py new file mode 100644 index 0000000..36a4a08 --- /dev/null +++ b/recruitment/migrations/0003_rename_start_date_jobposting_joining_date_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 5.2.7 on 2025-10-12 13:18 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('recruitment', '0002_alter_jobposting_status'), + ] + + operations = [ + migrations.RenameField( + model_name='jobposting', + old_name='start_date', + new_name='joining_date', + ), + migrations.AddField( + model_name='jobposting', + name='application_start_date', + field=models.DateField(blank=True, null=True), + ), + ] diff --git a/recruitment/models.py b/recruitment/models.py index a038f86..1852081 100644 --- a/recruitment/models.py +++ b/recruitment/models.py @@ -98,6 +98,7 @@ class JobPosting(Base): null=True, blank=True, ) + application_start_date=models.DateField(null=True, blank=True) application_deadline = models.DateField(null=True, blank=True) application_instructions =CKEditor5Field( blank=True, null=True,config_name='extends' @@ -150,7 +151,7 @@ class JobPosting(Base): reporting_to = models.CharField( max_length=100, blank=True, help_text="Who this position reports to" ) - start_date = models.DateField(null=True, blank=True, help_text="Desired start date") + joining_date = models.DateField(null=True, blank=True, help_text="Desired start date") open_positions = models.PositiveIntegerField( default=1, help_text="Number of open positions for this job" ) diff --git a/recruitment/templatetags/__pycache__/form_filters.cpython-312.pyc b/recruitment/templatetags/__pycache__/form_filters.cpython-312.pyc index 6c22f610563961f95d96770df47ed72ad579d853..d53ed797997700b0933d39f1976a5bd91b6a6a02 100644 GIT binary patch literal 3043 zcma)8-ESL35Z^od?DJQS5T{A(#JMyLi9?itNufkE6>TX{+B}fpgp+x&+Ioogr3rg)A$;(`3DdyNJT1_L0Rr1$5EQk@LAVI7l(L+ zxwPmg)xQsG0q7jP^#+-v?b%+N5;KPM%+h6*e2rxnXq$0{i}Mm$pq%Taq(}u z80T!!z}Z4ZF)+|VfoM4+<@`65ptKA6W+x0QsECNK$Q98QM1&$Lavi{(L^IIi+`=ut z4DDQPKiN=bWFs%nU_&NYFXVGN*5&Cukri1l;FLD4rDPq1@G#RmuLC(IU+<$DNw$!z z>ouGYYpSg1)lHJBVkmN7iS6|>iu1O#OUD+g3{BPPU&->b6C<O4W|NAcj}V+9bDELGIb+0e5g4nFz#n9j(^|&BL?159+bs>uB{Zl!(DfJ$i)f<> ziEVd}eD|pteZ4Hj?p`ycfmLy!90)DGzX=j3#nG|Ws50|;1ngV^@0P&h%N+H1+L77z zO;g!j&55hDuxkOPDyQ-fYj>RXHduG5ZfCv37x|OubbTx{8Qf$mmGra9QwIu8#8`>#HXU?CMJp1T0?bRuH_mO>JuPl+DUpD>XUj33A z^cx_sBm)0H19`wxn!;#TE4qt9(Npvm#iCF3f9rWzix3Wd{n!o21H=Uu9_))aC6n2X zI+D)<>`p=GPR>nbHC@;8Ie8jjZ{QqO87d8BDuZQJ(;*woH-aQ=SqEg2D$9C(Gr%Eb z)g>G(+QPJkGpZeApJWx;cFXozGMOhTCR-wGw&0o=d3zyrK6g2nznYUzu}$3P@HOMq zMBHQht6_EnHDDbJz~e6*756#VSQGj)!dD zR*JD*@Pl@fjx#t#e}m>k)fSm8$*FllW6>6>XB?oIub-2wd5yF(8D^R7rlt{kejV^XneRrLrie}$xBk+_Vn_0PI ze|Br64;GuD>jK2oBB}&YYun;k+uOVzIb=nK&B(A7NtltuT4dCUoG>FNetq}xrM1XM zRs@?7ygGfog3t}_3=f$rdX`_3p0@Wdy;tstEuAh$;!7WtJGy~t>jYl7ed(QYr@VA_ zU2401QSzX7?uH$Q6Czt)@Xz%^;d*fC#VMY_n zV!0){GJa>=YU%&8rN7)0|1tJ`%<4I8_8hi)#>}3v<kZ zfmlI4c=?_;_ZGQFoP*Xz`Pa!{lc*PQ=mMJOuemOut6bc*@WZ}%HfC`Z0w31mVb4pt z6;ra314L7}G(z#t087GamaK>4c0e;h`n)<3=m0v-F)U2PU8EhHV|%KPA;me-jW|zw zfXhT`?`$<1d+L~RcHDJ3iG$*s(DhLmXkfa8a9QfGq+V0%wWL8)8vLboRT^BA-ms*j zrgU^oI<_hv`>(=tLijJK<(W>)u+QT|=n?;lYsZ^P?~>i;5D=`6X@(o!{^|msHg)Un zYIP02kZyP@seJAVCI+Nc-GH)*)jEot(R5?C+l_pZvgLys6cVov(J{fs*A7zuvb9>_ zVsk^Z4uc%589=ycQKM5U<*F0CwY|tN@J>S4>C*uPMi6!PE{)zEyEV3)`s&!Kd+;Y7 z1{T*7@u2Nd(@Jh8PpAuQH_=kFghsgSJ)=z#h0N1TIRiFA687sF6ofbl#SSZDSh`?W zL;695olIzL!#1y)CBBu-t8*DVPUy{1d-X*aDlU%Wo}lOxbYMLYT{>a~qGlkv7U)_O z*EyfXg-tHJ!HZnerVH_{6-rgYi1#}yhq#W~3Q&~^D7CkiL@vCg6lO{{yFcsR;05kw K%5P>Av+#dQjN0A+ literal 2388 zcmai0Pi)&{6#wkliSw@+ENwOln@5%|8DoJ;lu)Kf+hBClRt?sTDzIi={3UVbIN`H9 z*5ZgB5E{}BbSIMR}MR&O+wlvE=~zbWOY&{;J_`V69-OwpOZB8mT8~lm*?-j z_j{k;d;U4U`u!e&*Uz!P@-uD#{vbEqMR%0VFR`)+L?BW!C{ihkB04S8MMug(0UAK6 zz;%OqzqdPTiiK>!*W2%EqT>s&<>Pva53|jOn`2|nze#wEGC2(v%d((Btg~e#DO#p` zUgAM?2fj96#9|TX0J(Ka2Uh`Nb)Zwb@$Na0!&i)&|H{MTHPyl6H6h1qB|Zl=9znHS zQdFq&*%IOfUM<6nl$A2Pik;wLEAG6C)p7o_2#H8rhIB8k@BLv(qiiy&A?+ZCfDAOM3p=h&;NHko-Y+)JS*fO6yryy&c&|?!fZY*Xlfk644Rd+B2=_^ zw?z1`Y8*d7F`boU4I=e$dCuI~=eURrgA-rs9xN8X#sJ_#)x^^0wc)X5U{Cd0Ef6)h zXw&OoIJt>EK!zf+v%L7%s`)SYoQt@+6!sE#D!X>E}@(Wq52U zjL7Kpx8Qra!rC(QnSPPAW$5Eku--g-3WXA#73VXtU0c{M;M4cR_SSCJt0w zBtO9;cAY8=J{haCx>I-QobJ{=V&FUH?apjcc%p8MGen+bFh^i+*fIb0Q@KHq?-!*u6h^S-Xz6y7yC1V5RT5EM_C z>{UUYg{FVDESCfkii9`dq{&RdYg)`{dfJ3UGMnBuu9esH^pYUbHMEn6AQmyN$x4`y zRMV9gR9q{B$cUl<5oC}MnGEzC5%x&aDU{1l5o2ED!dBC7s|q56X}Y({MxLV0*=UGh zg^1WigdJ5SWJPGdvk?CH0n;j!4d3bw+KY|kXzC1}l?Bl9fx*zi8Phe?439R#iCQ?( z2#?o%d#_L2l+3`cH9mH8;?EG~%azdYq1S)P-N`?2)yK}R9XWn?;{N2lNnaj-KJ;pM z+{npQZf*3fJJGxE)kjY+amxcg3>Y7zs_fdalMkZCRHlART;Uqgjz$4 z$*-i0NTTX#j=WLzHY2ZKEgY?KO+H#>o6$p6|9Ws=BN(j(qs@`mng>RS+<&OKZ=@L; z+wi*%4*d&UgQ0)IVBf(O3--U=8Uw!F2D1y1#!SZCrc*2kO0I+m_nQooGI>OZ+;p9m zE+YZWkxu6%6@Sj~JWBY#08Ha|!1{t&{X&GmEwpxTxg*7rI4i>>ieLkI=hZVX&g zJp{uK!O*&Q_/', views.job_detail, name='job_detail'), path('jobs//candidate/', views.job_detail_candidate, name='job_detail_candidate'), path('jobs//candidate/application/success', views.application_success, name='application_success'), + path('careers/',views.kaauh_career,name='kaauh_career'), # LinkedIn Integration URLs diff --git a/recruitment/views.py b/recruitment/views.py index a4da922..3fb5839 100644 --- a/recruitment/views.py +++ b/recruitment/views.py @@ -276,17 +276,19 @@ def job_detail(request, slug): # Get all candidates for this job, ordered by most recent - candidates = job.candidates.all().order_by("-created_at") + applicants = job.candidates.all().order_by("-created_at") # Count candidates by stage for summary statistics - total_candidates = candidates.count() - applied_count = candidates.filter(stage="Applied").count() - interview_count = candidates.filter(stage="Interview").count() - offer_count = candidates.filter(stage="Offer").count() + total_applicant = applicants.count() + applied_count = applicants.filter(stage="Applied").count() + interview_count = applicants.filter(stage="Interview").count() + offer_count = applicants.filter(stage="Offer").count() status_form = JobPostingStatusForm(instance=job) image_upload_form=JobPostingImageForm(instance=job) + + # 2. Check for POST request (Status Update Submission) if request.method == 'POST': @@ -308,8 +310,8 @@ def job_detail(request, slug): context = { "job": job, - "candidates": candidates, - "total_candidates": total_candidates, + "applicants": applicants, + "total_applicants": total_applicant, "applied_count": applied_count, "interview_count": interview_count, "offer_count": offer_count, @@ -338,6 +340,16 @@ def job_image_upload(request, slug): return redirect('job_detail', slug=job.slug) +def kaauh_career(request): + active_jobs = JobPosting.objects.select_related( + 'form_template' + ).filter( + status='ACTIVE', + form_template__is_active=True + ) + + return render(request,'jobs/career.html',{'active_jobs':active_jobs}) + # job detail facing the candidate: diff --git a/recruitment/views_frontend.py b/recruitment/views_frontend.py index 5427f7b..f56d003 100644 --- a/recruitment/views_frontend.py +++ b/recruitment/views_frontend.py @@ -92,6 +92,8 @@ class JobCandidatesListView(LoginRequiredMixin, ListView): context_object_name = 'candidates' paginate_by = 10 + + def get_queryset(self): # Get the job by slug self.job = get_object_or_404(models.JobPosting, slug=self.kwargs['slug']) @@ -99,6 +101,11 @@ class JobCandidatesListView(LoginRequiredMixin, ListView): # Filter candidates for this specific job queryset = models.Candidate.objects.filter(job=self.job) + if self.request.GET.get('stage'): + stage=self.request.GET.get('stage') + queryset=queryset.filter(stage=stage) + + # Handle search search_query = self.request.GET.get('search', '') if search_query: diff --git a/templates/base.html b/templates/base.html index e33694a..f5abfc4 100644 --- a/templates/base.html +++ b/templates/base.html @@ -21,8 +21,16 @@ --kaauh-light-bg: #f9fbfd; --kaauh-border: #eaeff3; } - + /* NEW CLASS FOR WIDER CONTENT */ + .max-width-1600 { + max-width: 1600px; + margin-right: auto; + margin-left: auto; + padding-right: var(--bs-gutter-x, 0.75rem); /* Add Bootstrap padding for responsiveness */ + padding-left: var(--bs-gutter-x, 0.75rem); + } + /* === Top Bar === */ .top-bar { background-color: white; @@ -45,7 +53,7 @@ padding: 0.25rem 0.5rem; } .top-bar .logo-container img { - height: 40px; + height: 60px; object-fit: contain; } @@ -68,6 +76,10 @@ background-color: var(--kaauh-teal) !important; box-shadow: 0 2px 6px rgba(0,0,0,0.12); } + /* Change the outer navbar container to fluid, rely on inner max-width */ + .navbar-dark > .container { + max-width: 100%; /* Override default container width */ + } .nav-link { font-weight: 500; transition: all 0.2s ease; @@ -205,7 +217,8 @@ border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); } - main.container { + /* The main content width is already handled by the inline style, but making it explicit here */ + main.container-fluid { min-height: calc(100vh - 200px); padding: 1.5rem 0; } @@ -235,244 +248,265 @@
-
- -
- {% comment %}
- - info@kaauh.edu.sa + {# Changed container to container-fluid and added max-width-1600 to inner div #} +
+
+ +
+ {% comment %}
+ + info@kaauh.edu.sa +
+
+ + +966 11 820 0000 +
{% endcomment %} +
+
+ {% trans 'Saudi Vision 2030' %} +
+
+
جامعة الأميرة نورة بنت عبدالرحمن الأكاديمية
+
ومستشفى الملك عبدالله بن عبدالعزيز التخصصي
+
Princess Nourah bint Abdulrahman University
+
King Abdullah bin Abdulaziz University Hospital
+
+ +
+ KAAUH Logo
-
- - +966 11 820 0000 -
{% endcomment %} -
-
- {% trans 'Saudi Vision 2030' %} - {% trans 'King Abdullah Academic University Hospital' %}
-
+
{% if messages %} {% for message in messages %}
- {% comment %}
-
-

- © {% now "Y" %} {% trans "King Abdullah Academic University Hospital (KAAUH)." %}
- {% trans "All rights reserved." %} -

-
-
-

- ©{% trans "Powered by Tenhal" %}
-

-
-
{% endcomment %} - {% load i18n static %} - -