From c6b54807aa842b4f50f5d5dc9a4e7b67ead7aa3f Mon Sep 17 00:00:00 2001 From: emile Date: Thu, 21 Mar 2024 14:13:26 +0200 Subject: [PATCH] ss --- osinaweb/celerybeat-schedule.db | Bin 16384 -> 16384 bytes osinaweb/db.sqlite3 | Bin 937984 -> 937984 bytes .../__pycache__/tasks.cpython-310.pyc | Bin 1071 -> 1156 bytes osinaweb/osinacore/tasks.py | 15 +++++++++------ 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/osinaweb/celerybeat-schedule.db b/osinaweb/celerybeat-schedule.db index d8b202fb2a3ecfa45db18866ca5ec64b197c7d12..bbc70af025a9d17c82a4f3683f541d44addbaa59 100644 GIT binary patch delta 36 rcmZo@U~Fh$+^|EA)r5h8DQogxxj@F?$^7z}tU4-O)m)ov<(m}%#y$!` delta 36 scmZo@U~Fh$+^|EARe^zl;qT^e;3(sw?m2Xx60MdmELjV8( diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 2ffb026adc41ecb75a1457c3aea5a7fe5766d269..52d16ef9cf300f73b691e2e686d469980fe80c86 100644 GIT binary patch delta 3600 zcmai032YSS6`p%`cIUv@oFT?o-~+nL%&toDC(U5;B#Vlpd*_poS8a_TL#BFIY=Qn*Y=M z?|tuo@BMH7_wU@V?%b~qJpzyKS&$2lAKm=gGWg2yf0lK?aA0qnJpf-F{-u2>43F&n zvttN;VR+l}H#*@(dz1FRGJJ6VlW>aA+|;?n+0otNl6X~VZRu&;QrFSaxu zH}1|mpywTcGuI|aDT3(X1rP6X@Ghs~76u1y!Qe&ofm>+B_qHGeLA!92LdYupPyfW; zd1{Vi=bd&@h~@FBThjNp;&nY}276N@NAY|sdy~W2yX<%Dn6`NocW9lXxJ7?y6n~s0 z2^2=`(1x>ptrCBot$C0glZKcIaeD? zwER#z_q4@_kU@PY$1XKyx{vOno9SA5 zBVA4h>3lkyR_QbJ`&tS{&C+pfeHC0tTrLf zgjFWwnvi3H&xGt~1U4@-)4(ia^cbURj7n5ZJ5Ezorp8KR_Az5zp)Y2r(UWK{yHF!9 zQoAuWon1JbuyYTiEx%6Twh`zB5=9Vb1bSWv6PFVPKt#Ea264aRo@M^X?BmvOG<$*l zDO=9YWvZFQ^jGvjx{c;--`b8*>ufu0E3E&up0tLo1y&n%p4vmrv3y~9-Ll)&}jyzo|t1kiubdEx>OWb3o8rzFcvVvN1c{EB`RKaahK z4k9(MXSj=>3#ac|QiB)muJrw%qf0x2;j;#mEiL}Kt=npAa*K+J%A3pi!g^<+y?9e~ zr*B)Gv%RFap|Y*Ax4R<0yP>Ge-{)_ytSXl_Rmzo0M@h}Ptxfe}o4BEVgS)$^tDtsu zMSE$WOX*h{f;+YrCC8u?uxIDMb zr<4X(tnmXF5ckJjN>`k?T z*9Kl%?@eWfUPsHID;oJ5=0{7hYRrXM(d+0i`W(6u6;K?xh`fz-Au2+{qwp|12v@-l z7>2Iw?c&p^%t(NM?28_SwKqRv=F^}V2+ov}B7AA2P<#0llbSF&ks0wnpvWtx;+jcC zb0RZR@SvjGRLsApXiQ{ARzIjHnTmP$6paa2WEBDBMSZ+G!#X=v5PIrsd!}kS+Q7sp zQHYtRvBmhxh&(nWR)9Dovf}=U%t+RRzA5%hiQR@d zbwV8d%7`e2*aB9QWH6!s|@D5dWxtwxZsQ4ikq-YePljohT^iVLy0uTTn zoNhNSrG<(fVqxOyC8)f-Box54qc(O{qESyC-sun(MRI~D3UO@_!_J-*M8o4%*}Wv> zHyN{|48p-tYzrO3Z>8nDPm#*0qaD zatNwB6Sc?g?UW-TFR9+}`dH3UlcU7tfO>Fw!{xD@ag(FQ;Q$8cRo?KrdmNG1j_w4$ zi98>dqevp~tt^%^ZgPaU9G9wy-tgLc96`~>L(v>4u4x=e_6VRA0~g$GZ@4s;BN*{0 zay*Wpx>Vj9E{WxsxmKp7she~BiE`JcO41*uHLXemeXZ& zoN+l$Q3mm>iRBzMIZ|8>sB2Jf1+g5n4%E1HAn>9hdBgd!oM;`S2x{Cq06XgD_0##R G$MQc24`7b~ delta 1456 zcmah}Yitx%6rMZp=bgTQzJ#T)ErPqu%+Aj2ZmF^?NG)`&AVMV&SfCK-n?|q*?Sfh) zM8O7bQUq%SO+cVzfg5?qLqtrY_=th{s8yr*KwM2DiA3UT>-xtZCik99zWd!TbI$qh zY3~lUcL#SAfI~YABjC`nB`-|^mlA(XY5>6QtnGJ1U)pF{b>{jyZM9ara@jJgX-%zN+ZwBXvZj8^j2=9r2i!X+ z)92FdkY5XFy4MJpep~Bk8wAcKaoZrZ;ErSw1hJW+1d@y5Z+@j;e`=J^qiY^bcj?Zh zK*+CqE!(*kz}>aX^0ib6Od@W8nJKCaybEu`B>WLA8DPAqae(3R^8?I6$T^anM)cw2 zEhgszSc#cl_9GHqNwA;c-UR!IK%WpmFKRu?Mv!zE9KnB_Wh(%>=KxsOfzPoRpW`a4 z=pX1E1RA}TFTxWu_#;#h?3d-BBm4W0|x5a$Vc$5 z9KK;8eS_XjptsiYxhVN6HxiF-aBOu9LJN@^tDOL0OoD*0u2C z(Yu@YvV0|r$QP{CiQpfK=1}x86gn;oi?f{aWJwd8C`%Q-z+kgqct5jE+D3$lB%!{oKC67J>{1_6Wq1|72}=9%aN%!4m*|EnF)mCJ zhGv)^&2W~>&_bp!q#0h*3N)Bqb+TAxwr1t@Pnx*mGC72B;F* zyNeU6zz8Spvr?Y&Ju#9{N zXXGyC1NsfBgN%W)M3YtkCTuQ>F_l~9hX3!8plwBBqM}|iYeK802i85>+O({-p{BV( zuc!*^QNwOsRUeJ6u84Xf)1sb=xxvV+HS;Uh4Cm{l{NI-qD-t_mMUt~+94k_K_EPuL z+YxtO+35TjPvh;El-7cLOsIdVgX#_SYxQ&WQ}wF)p3~Q}Dpr5Nt^wr*l_!Wf#D1q( zsOlzdWwR6@M-!)079vg!#WznT6*eP3k5I3xN7ZN4MXKre;ahmxal~pEhIuDk@OMQD z*aQJ?67KkP1|5@NZiX`mG|THVEuS7Jjz<_YR)Kj#sOHrSThncKd|H}og^YkRF)Y8O z701JAt`*W!T%R2XxZ_jPTz{(Pe%;g!y*U0rn(Lqr*XOe|pF4hknrns(+nFeaZX3n% zvNYEm)-`Ou>5fks=Bm2mCBN6_^Z6~iBwmVkLYSNFjHDDkq-+EojZj+SAJnm<=8gx4 zHPGF1$jg?go1#;U6U@bbM+z*b&}J8$nrPQDNbI$^FDSe(57rb@F77horoyn(vrQbn JJQIfazX4myn0o*K diff --git a/osinaweb/osinacore/__pycache__/tasks.cpython-310.pyc b/osinaweb/osinacore/__pycache__/tasks.cpython-310.pyc index 2e72413240c5e00dee17048f29aa59f531344f37..1ea7ddecab5b0dd44fbb16baa9bd39baefe1b4cb 100644 GIT binary patch delta 673 zcmY*VO>fgc5Zzg?*K5Z~3JszXPzjO(h654@xF94DLcLH4^_EL8Sx0i3*k!!|wQ|%- z^hgfDH%{>lPW%Y|0Z0D>Zv24qG3(L;dl=2UdGBf7eibKfGi^3Kg0Iy(jb1LB*I;{j zw|hqt$tL#H?%Pw|=Rk0_Cr;mqKyvAvkoV9R(%vP3Siai48PH0|P)9nRMwM%-j3zqV z85-mB=PW^6vQNK3K>>@j4+ z*q__FIfgOIZE2%ZOY#y{ZS>`aHFQE=%aeYVN=5AF*%;1r)}@5TBg%=BPCjT1cxhdO>6>w|v#b$#LB+`jUMGo>P=7^J?g zYS+SHnj{g*(&P(K-GW-`xxfRm2Ut8RfCB~ghf(_5vpn#igUAN7YTWGjFK$!Bebb-P zWA;;Rp)_!dZ`Q+Yld2A+E}PD5RQLbV!?6;Nrm37wqQ~Y-vlbQ~1bVJvrL+Zq0sB3u AwEzGB delta 611 zcma)4y>8S%5Z>9p+cWkBk|qLiMEnRW8iWKCpj5OZMGB;AEbG>HvhQMt-3H!C5T;L5TavNJDQpOzHeq%d(!_bf+7e!WbOOq)8ykaxC-}{ zcW>V+Z_WZ29HRTL~pdyudYU&@nEtib|Yu6`5WJnUKWv zYp+4|g$A8RzN8J5Bnu>4P(USQgJWXWESi=?@&(ivWv_wylGURn&DN!u5v%7ALW-4& zMfMj2keU8xn-@Ka>?ORNH{SC?&C-0jwVQ`{6dV+3ZlXw=*c|H7=6PyjJ&U4P>vWnY zGBQQ=6K-v^RK_N0sY&;fmRZVVQhkN%zT);tRNuOAqq>iuKIVI!T+7EQaSY*j9gF0} zQ3r2@Hfqw<{7&gW6_a$HR3Gqd9J1;gzWMOVJk};UTFo1+MvKQLeVLlqUAuOzLyU_& zPi(!&KOr@&o)NX{Ceqv1c~}4kY#04S2|n|v%RKOb0zc(^)5fmS?K95)p5b@&huX3d mJ0Y(aee}S^YWT0aX46(Y*)QbbJlO`DY4@3Y5Vixx1NaTrd!BRv diff --git a/osinaweb/osinacore/tasks.py b/osinaweb/osinacore/tasks.py index 3d0892cd..3eb23f38 100644 --- a/osinaweb/osinacore/tasks.py +++ b/osinaweb/osinacore/tasks.py @@ -2,20 +2,23 @@ from celery import shared_task from osinacore.models import * from django.db.models import Q +from datetime import datetime, timedelta +import pytz @shared_task def set_offline(): all_staff_profiles = StaffProfile.objects.all() for staff_profile in all_staff_profiles: - last_working_point_activity = PointActivity.objects.filter( - point__status='Working On', + last_point_activity = PointActivity.objects.filter( point__task__assigned_to=staff_profile ).last() - if last_working_point_activity and last_working_point_activity.end_time: - if last_working_point_activity.end_time <= datetime.now() - timedelta(minutes=10): + if last_point_activity and last_point_activity.end_time: + beirut_timezone = pytz.timezone('Asia/Beirut') + current_time = datetime.now(beirut_timezone) + if current_time - last_point_activity.end_time > timedelta(minutes=10): user = staff_profile.user last_connection = Connection.objects.filter(user=user).order_by('-date').first() - if last_connection.status != 'Offline': + if last_connection and last_connection.status != 'Offline': Connection.objects.create( status='Offline', date=datetime.now(), @@ -26,4 +29,4 @@ def set_offline(): date=datetime.now().date(), time=datetime.now().strftime('%I:%M %p'), staff=staff_profile - ) \ No newline at end of file + )