From 323cfa0b9cc9e48031c1c9ec91c0befc19fc6dfb Mon Sep 17 00:00:00 2001 From: emile Date: Tue, 9 Jul 2024 12:28:38 +0300 Subject: [PATCH] new --- osinaweb/db.sqlite3 | Bin 1536000 -> 1536000 bytes .../custom_context.cpython-310.pyc | Bin 3989 -> 2801 bytes .../__pycache__/models.cpython-310.pyc | Bin 16120 -> 16505 bytes .../__pycache__/urls.cpython-310.pyc | Bin 4172 -> 3923 bytes .../__pycache__/views.cpython-310.pyc | Bin 20489 -> 18071 bytes .../add/__pycache__/views.cpython-310.pyc | Bin 15455 -> 15401 bytes osinaweb/osinacore/add/views.py | 7 +- osinaweb/osinacore/custom_context.py | 66 +------------ .../edit/__pycache__/views.cpython-310.pyc | Bin 12819 -> 12518 bytes osinaweb/osinacore/edit/views.py | 40 ++++---- ...7_remove_status_date_remove_status_time.py | 21 ++++ ...us_date_remove_status_time.cpython-310.pyc | Bin 0 -> 617 bytes osinaweb/osinacore/models.py | 22 ++++- .../partials/recent-activities.html | 33 +++---- osinaweb/osinacore/templates/main.html | 15 +-- .../osinacore/templates/recent-status.html | 15 ++- osinaweb/osinacore/urls.py | 3 - osinaweb/osinacore/views.py | 93 ------------------ .../__pycache__/settings.cpython-310.pyc | Bin 3130 -> 3072 bytes osinaweb/osinaweb/settings.py | 3 +- .../js/api_calls/get-updated-last-status.js | 13 --- .../js/api_calls/get-updated-user-activity.js | 13 --- 22 files changed, 95 insertions(+), 249 deletions(-) create mode 100644 osinaweb/osinacore/migrations/0097_remove_status_date_remove_status_time.py create mode 100644 osinaweb/osinacore/migrations/__pycache__/0097_remove_status_date_remove_status_time.cpython-310.pyc delete mode 100644 osinaweb/static/js/api_calls/get-updated-last-status.js delete mode 100644 osinaweb/static/js/api_calls/get-updated-user-activity.js diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 77fbd39b8027686767896e232141c0cdae4c6148..a898c27c768c4693e96eb67298c36311fe92efa6 100644 GIT binary patch delta 113740 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 delta 57453 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 diff --git a/osinaweb/osinacore/__pycache__/custom_context.cpython-310.pyc b/osinaweb/osinacore/__pycache__/custom_context.cpython-310.pyc index fe084a9c71a4d1dfe5d3dfff0b5366368b8105a3..ad3e57a89630fab631079e494d23cf5008b45425 100644 GIT binary patch delta 549 zcmYjOJ8KkC6rMZpS4NZUj0?I(Oni)asD(mcSwX}~Qy9~zunaqQW!BxDc<)^jWfW2b zEVNioEVR-xg_VV+KfoU#+}>75VPoYzqlFjF$9JBb@7%WwM{!in%=nsm?ccBa8*|g> z6uCcL-ZD3})Sn*oqC}+vWri~T^RsR2>xpO$jDh(|8)$>My!nQFa6W1;LU?DjNCUoD zt=YJmt>&w+B9&elRildGhqdNPn~O|LI5h3TjMO|>aAJ6Gr!8C{)uq06MOvz+-#;YM zVf5*Qa&ZWE^-#*C=93}q;59gYi>rm?I6-qsX#4^64TWI< delta 1734 zcmZ8h-ESL35Z{mcvVC@J$8qyXEP+Ljl7c{dl@KVTph^&lMnOO+?!|ja&+!*~XHlv% z1|;{1f$Y=oiO}z` zO)}B)dC>MXlm}y{G7(y$)FTbdjYvFpNII^nmtyEhpRRP?^bJe#h)vlk<5%R|> z#Cv46{C36N?HuuIvf@}$2c@!tP-1!xFpgg61wRtG zNJy--)|%~PA&tjzMfMDtWW1j;%EIQg9dCIiHQg5Q7s z=L?n-vm$>$qUm)^U@88VFVUI!C%#lDM}=rQDn&G65szk~a{MbltIIOD#zoDiStr?qV=-;V!6uvINM|RZ%Clh50ZL+=k6q&f`gDBP zcw}xCA0`NE<9GIg$s5Ig8P{ng-ZgJQ-u^W|JtL>VKe>Q1HpkVWZ3UimPRYk`=Xrz| z5YELvSdSYoA-fj;VyzcefK{2MJNZsrO+CE6g$7R|JcIjs*b(k0@>x_ohwvi8DnfD( z2f6Ws^+LbthrSog#b2gA=PbwKO!|qzhhXtQUU3FY`ua~01npBGCRm?iFOSHO2|j{8 zgs$cdOYV%I1lF%NPX07~UF^4L+*Mt})IWEQ~D z2Tcgnd5%0LD#B6(&M%JR8BFOG)ZZw0nVEptV&tIQ(s1S1>roxs|fEP zY#>}fm_jH5DDG|tvVh_hgc8CGfRi3qmkYc~jRSyKTRm6Y$jJ0!u( zp=&{UE!S`R?cJ03|JTjQIbVTkfEm&#{&RGemT_e^Kh14sQTCapS+H8PNYgAg&e?{O wQ%0*3Uq}aUU?)l}#N@pDzA@=VWv#Y4qSy4+a3%zJdyCjG{E*;eZsqOnf4a7qKmY&$ diff --git a/osinaweb/osinacore/__pycache__/models.cpython-310.pyc b/osinaweb/osinacore/__pycache__/models.cpython-310.pyc index 9bc99fcf370684efc55f84ec845f95751737f98b..d1dbe2d6030256372f1b8a26b442aeac153019db 100644 GIT binary patch delta 3717 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 F@jokz9-9CF diff --git a/osinaweb/osinacore/__pycache__/urls.cpython-310.pyc b/osinaweb/osinacore/__pycache__/urls.cpython-310.pyc index ee0e7cb6b566f8d6d23a8810a2e7562af6c3b861..42f7e3833f196d1b583c378341f771651af8b206 100644 GIT binary patch delta 120 zcmX@3a9NHopO=@50SFX+_oR6WOyrYcl-j8Mi%HcWB`$@lmw6&%lwqo2DtjttmJtve zr^NR%nKMKgrX&P2XeMs1V!psWc?tJS5lzNhyeav~rManjCGkc1`6YguCY$qkJ}^%1 X<1?Fli*Etrp~=Nj}%Q$Eh#NX zNi0cC$w@3ODK1GYDJ|BI62T^1g`_w!xg@hJvm`SWRWU+%vLyE`!zvz#fw~|I^s9Iw zHt9kHH5qU5rsOA==BDPA#24k~m-uO#Z$8fbfl*%^XnQ==Rq-Ha#Y1#NfgAu7C`knh zAz8JJ*IX=01fn56F()S;WLv D(*c6q diff --git a/osinaweb/osinacore/__pycache__/views.cpython-310.pyc b/osinaweb/osinacore/__pycache__/views.cpython-310.pyc index 2cc12acab9db69a675fa0b1774b13decb12e726d..ab19a0ef7347c397fcf3ec55885e2f66cf3399fb 100644 GIT binary patch delta 6641 zcmaJ_33Qa#b)NUnXlA6*idM8Bw16}c8f|C+BsK{Uwie7{!eBfa&HIH1&BpsjU|bp* zOlv!_+mLs>#7h$5rJ+t;d_)r4A*pfGp4d69)1KzU{#{~o(%Pl9NmJKu)AZE6-}?ti z42#auH{aXtyZ65P?tAZl@SE(hhgohsCnw8Bf91b>X!7mQ$=piqm)gk{k1etB>_~C6 z)L+VMT;ujg*-jg`@tnxwXt}?foxHeZCfeX{phg=tHmb&=NM6+I_o}+$NK>@g-%PxO zm!7csSMV~vn0{M$Ij^8!AFt$9^xMjp@M`*P<4buB{kHR3UPr$jx`)^EWhZR+F@LAN zk}u~CigyujCgCf=+XdWf&!EsFON_wiQ6R}pXH?TW7^-oZN+UqgH)?^3*v zcsK7+yq|b4U#0k3;;Z=@#n%z<!9y#kUgQ#&1*n7UJ9a4#mT_Qeh|Gr3%Bu zZ|A!eA0hq)zDMy<;(oqY@iF3e@O_GJqh-4@QW3q)e;X}PfRB^QxAP#Mpx+&Ql5?(~ zVE&yvw8Q4zFYmOUn{9L4&kC1NpqTb4{fOz9Hgs{?CK~0N8HX2_Q@xQ(;AV@Mn`Pl& zb84bV`klXXHc*48mU~@Goj%Z3dCb+pmddlPCe|R|bJaU*QC%l9-JPsO_Pdu46;g$n zp$icgLL=^Vie>220cZzUlE9SsMlc0lVy4pw?~jFJ4e|wdJL{jl;Qle|Zb3s%G(HiI z=z-XDbb`byDaxwMM9?q}#|7{3+UKiD*I#5Uw=7sE?Vh_y;iH~2BT9v(B+y&u&m9nY zFsbh%his0EsF}H4pVWmO3+Y1HwUWAtRRCxpRs+@$m>H4yVbY;S9?7m+wE@)|QSC5- zhjh^k>I^B-q6meoXmCmoB;!+hOcbN{VnCUEE4z4k31}&L!S+O6^h4_`rS#(!)b1w zPHd5H<%C&KuF8GAa61I7z#!*_P%=!GRLk7F#(ac`r~z0`k(={+tCU@y&|P|HDrFeV z7K4B>`D9+@T4-xJr^9@rd!_KB{tf`v+;k;Ge3BM3T`PAG6VsC1D?iO!#$vJ}zyFqg z8sT+V!O{&8nE*R#nH5`UA>={`#ix^!x)@FZH$}CZiMSjeDw6M)IOMDOYqFuL>EJXO zd5slxmnzM&2I8@pPFlocmbu&HXhHc(<@)P|Yv%rVARdc^WBS*w%;sbz%xxFb@~MJ@ zGo4gxEo2qubLw}8jij-2v)63}mTFgVHt*p&j5!3zC7_^Ivm+Y(IYKuQ@tC0pNbz90 z`^v2K(4)a{BoI7ASR1506HXpEMT3oef-IKJ7HQ-TyZduDbNp5uo_%rAVpfiIzbB&w z?zjY(nU1l99wP@2%8P{)Y>yl)^5yqXgXI;aVuL(h6u5m6Dm?_=Or@yl2#WoN>6|)@ zUvV#*j{%MY#sMb?Om|X`CL(bE)ypTUsr5Uur`XG?Ww1C}t*n0t;~oZ#0~QRC9~YMu z{S8%q;vjHn*>>?&A|Xw_)L2@kj1Jp=UrXAK+BiF^-Dju7sEx{hE3H~CzCs;S{xx05 zi-9n|c7mtNYVv+gJq)vm(O)0%je zeoQUQPiv;;Yx6r3VcK6jO|Y5O7omL-iboS`i{%?tchsqgpP{jIR9&mb3shGkhnDPQ zb@J&YUno*@G4XAxrYZjvBc7G6>Y6eo2Iq>vkQzp+YedTB+UmW-YCk`K#xDWVe62z} z2MrGrm~KuAhGU_mnX^sA4^WEOkqjoM4RJrZ49b75es3l%QkDFd(fkTPdBPJ38p(j6 zhMGADe=4SY@+#)ZO2(7HNFW)G>I;_Odk_FSOi%PkfU+kPFdSr$v5{(>bYw4La-gQ4 z{dD$N4P&0)!+@iJFUp5&xA)H5nup4p+A1p1#mY>wv~Fd7nq9}`-nvTmGkJGi2m3qu zLS6ZiaSTwto^!bACPkA$W6D@5e^uAX-l4r*sfj<9UG;S>*mvUObq2YT;n0+xH1?8Z z0{L5*Hu=`-N_ncjLj{;PD&MJZ+Vux$Qbt&r2*qo5$h)W=2VAY1Ktl+=a}z1Cr*_@D zq+yv%EZfbF%AYJ-7oKyO=^3O{dSttvh>PTPU55yTP9Z5Wmz&(9h1QQ8C#dE19>g_N7j^6?F3 z5okCA(NCkt$7!OQo0P~Z-qSDG+KBc%GmQ>P3!?bVUzc^ zmB{Aisy*tgnoo0T*UWF2)PeOI3`&h8HjZLi=;no{jbxm16W5az#KzC$spewme^5_4 zaQ7`MlmF0su=z<0)ClO>rgF!Bq5=oUH8N#lMN!d(E9;!CIjqy_Gu!OrD>UX&8SEc1 zuth%C(&RpC3B4eH(b8FPfeL2kT(pP}WreT3SRHQvf*}i>D}%nmQDyWhB@827`}HJF z9npo7{hn|_Y(t|R@LvFBLXKsEs=$mw1@HgbBKni82IvS%;1c~}o*d70mnh=*gzfI1B*!~8j%bO!Je!KE@lKHYRL^%0}?4B6JP zr&(Ezi!q(I7_OcqbdweEgqcN76-n!qJSfk0Y^{VW@k0PL zbBi}omk+xN5bb%pz;e6qW>>ot_m16~IxM-*C)sKPwBfrwhLC4g$cQu%pzYawn%0^&?( zR9Elo<8nh!8OxCVo`LJTC3O;{LTgZ-?-`>{00q6g@+%~VqF3$waZI_uqw-{LMc!f3 z%(|`H>9*U3_^Y}Se`<%*K7iw{B(o0rX>b4TT8NtWjk3<#2c`?Xad+>49i4#miD|Hz zNju)UliW|E#U~KhB_CWBubTipLO`igd1(+8_W+QBP%A4|Hy@bKpa@N&?ovu6by2(~ zq0W1~`$jsI#Oa-7DHWKEiz|1#N938+Rjfz;?dsh#N=hXJe48dUGm_yXJ)NcR$S<$2@SK5T+tIS-nU~hH{1)_7A2O=IHp}xHO4t_p_J%Es z5cOsjJ!olBXn#$Kt+IXN#LQfR7Rtpn7*-2Vey#`WgZ$gTiUErONFzdh!q@>;06=0F zC4f@EPJq&dl(dOLfXX@6!_{i?smfV%);fHL&}*qmR? zYC|5mz@_YtRiC1m;Iy9&Z@F3U^0OtVr15_$eC)1Bm z{0qQqfb)RY0e=bjF#wV2^;o%64OBCCzKpg(tkSb!KLNY}P&&Q|HV#nsS&v2e#MUb9 zGflp-bvSbqjr6in?=D$CJj$k|G3;f#< zPABj3sjrrXD3Uuy>YK3L%>21-LigcQliFgYXRbOnDN5z3kqTBOe>hTFp|&UD-k)ns zC-8>y(MhUD3{fF}JyJ1K3B{WL{eU1K28aWu0fzzjF61v#x2ZrRzCRqJ2h_poFfEz- z;3FPEr$+%#0G8{+snzOb%d)J8y^ zvN~MN9NfW65(|=x!i$L3xHC~R@Zi7i&Z&aR#PZ~d@QP$898zg#qGbRL79`4&t>IRc zSCv?qYzwy$y^vR*cZA#dB3?t^4qnUa=(~#7^TqUC&6n^Xeb?{?-bmlId?|0D?>fDh zH}hrZ9p_khy}p4j=PQWLvG7Jpgm{Z8*hF+IU#aNLM7QyFMQ5xlcIMJy_s)O^mRmU<(-P|B6?enZ&!((l-R+qQ*<}cU3{ma zdx-AlJ&N8%^e*13=w70C^F4~*P4r%Vy`uLJy^rr#^j@M5@IFOfPxL{4NYVRqudlMze(r~Gw z6N%%=a5zkKlBcNIP5e~9Bb1S)&aYNoX4bq|G!Yv~L`^+n#*=y^dNMuvit}zZKS&B` zIZx|nE!T*li^~qtBDs5XQ7z>gr35}UkNKD%Kh2|wmGWKp2c8fWhz9u!PtdappSOjDp<7u{gFKf`v)RN`ga``K@>rtVxxRKu)0YJRZV6$ zGP?lNG7+nh49Q;yRHJI~2hj_-fxz-dN6b@^MEWF6 z)QQ|;g1lx}o{=~o+^|mEjDlML&J&C3G>nN z4Z0eczdM~u=`@OT%9g@mRP&)4Hl5{6rAO@3Pw~bR?Zh#8dhsQ(b#l74td8 zs9e3UQeIziBEFtV?1f)~9z6Q(al2V^z6Q;F%R^Mw{CK*wwTnl%fQQwn~I< zWYQ@^kI+z~v*jww=hd@6k?r#qv9ZZLgf&?DF?Sp0^cKWoxejLZ6bZ3c{?7bCc9Z<^ z{PyzARA5U$^%|0Om601Ok*U_VNcC;GqT-}sc}|bwE6$<#Jm4bN^qk*}q3&jT!9$HTpoRUeOY&$jeE_atb-S2z2}@{ z&Ha63$+b8SY2jj;$k0$k86IKKs6>twvpUyLqyz zX#I}METpL|81_va1!5kxxU5-P`zm{L7KqK?nIHv=rIVTMub~6Tr^Ye13T7`N^q8J9 zBWm}_tyRUG04_opikJ7iIXwrbLmw`_SW9KR4Lq_q1l%KbLd}-{ATR{YnC;2$L6WxhiCYUN%_gT zhANe@OmjB5G( z;(hFgliCu-ia&uWIl!H=G&gp;dzbu|U>&pMuY+sY zkL1dRn#FS{mgS?NnNj1ku}AWTwd^%A?4(hjmd`gVT`AE4&f|i$vb<(Ic3L-$G{pah zsPH;8Q8qNL^*~|BHijEpj{Gi2H3ubpHMx6`r*?f_<=;TY93vAb7^M!B%2!Qo)i>ln zH>O!m?p?YgJ}oV)xF;Gupa8Sw_OolSw@UJw z7BSCebYlWb^xvra^TG}uYVJPrF&(^f%?^gsgONjq)vtnq%`=Ww8;%Oeb~0b(2)tc%24vB|z;0S|!t*8uNS@aEt$? zjH`Sv`Br0zJQ6z7`Z;u=)GfbXK19YxfWq$NJE6+TcZk2*sC2&CXOn|XE^5(Ov9fOe zfrcG&S!;_ACY>$@Z^~n>Yb)NQ1YH}abVTgV&rhhtHUKIE{R^e&9x4w9)JWw1m2In?sP9sZ z0ELrA4*~KyhKBM2eqVlWBwJBu0PgmK!(Es^zu(BxGUQN2?*%ui9G&UgFyT8j&MZ zVK1jGF!{);_9e>oyt;4k52#;*iPp+DS9LVawVtK$&T$X4C%j&6S-qY$Pi9u%$vnz! z$;tQD^tIgyRunp<_yA_@Rh|$9S~BsNF=KpFX;U}Eb5g85aX{_om1v<(opLZJSbKF; zehUTP2fPZXC$L;fqn|@sxpiNZb?Z9Tzk>940N({DLCm)Wu^jy<=S=muLUjvhk$0@? zSV>_^hX6avlhjrG<}M`W&3G^oL#OBjH)wf&w61$@N#&22y!IWFJJ%m%8)fU}I{Ah5 zdwStFkdiOQ(B=|!6~%DWr9F~oU<>>{n#L6uHF7!0C*K0)t)Eg}Wi@CMLCRCMvs2!- zVcXFHK`K$$o5=E_HtjyqiAiq*%r%@MvKzJ!^eD9!zrnC~NdLz4QVudpK$cpGv=`*nt~I8rG+pxTK}CkrV#<3YhksK&>yigI z9nC2&%fJ9$I9;0JCdFv5-gKdw2}oS6ZI z(b_l-DeKPqxc7o{yvQu4_(0J)ZQO5GWc}wD#Rd)+^$8qnW4`9STbd69n={HD2nb`$ zc}fJwyvcYfNO51Xbbn8obPI^5M#w547Hn0VN{9czkF`r_7ixb`hU&kv%V(Vz@%+ z2&l$WC#R+l`R_Kj&F_T)$gQ7;}zL=7{4!T$yn5DMzks+fzF zvH)8_@p2Em4(8JkF`P$nb9gv(LjA_?@o8c|b$XSKdZ@jVeo9C85HTylw40fvro(Oo zn4qMjlx&Uhc`dNGseXMURwLc>Ba36T?}-q5p5}gAUoW}2_ zwd|uqrk-t*dp9?2#W5o`qpt#sMd!;*giLj+gz!EjycP8iKK9gRw!8!FgMcLfD8g7d z?K?v^+ooPJI>cW2{Vlua;o!FXsw_e-!fCNjuGl)5n|3~hGW<)yXGUhrkUWGA`#~)P z)B2zX;1<9Q=r986RzQJl z%IGvXnKnrv_EU}DDGzk6WQQlmIvMk*1Fu8gxvj~w28|o!)7y6NAtFNyL>+zTm4v(l zuFrmXK*dvlIA9oX8lYyL05vTp@|j7ur}|b;5(1}%SS9lbVj2Vn60I z04SJFsl6mq92=eT>FsOS(a9fg{}ikLJUD#;@GL<2aP6S}oItX!nzk>dVtf zmDh^oMS=mc7UD1DtJm%8{LASoiruwZ96^g0PNl-W<#18;!jLOL#L{f=Q&8k&CxU*in&MBYW zxj%OtEhSY5F{_j;lKlXp-fDi!Ko?WBZu%LI5SZjbs0RRY7>AvL2I+aV|%DS>z#G56T!8buc)T53wUYElxI!n&WxSKh~Doj78 z2ZZ5bV&Z}WaM5*+u7^h*$LYC$-2Dmn8L#~vWuw&A3~)E6=YtEHGWotfiv`Cjnvb_N zC)=8NaLOGRTe=HxuR+X{&cGm#=1jcjZb4J<539#CI($W#Vq#N|+3CSyixoZ(S(Wx+BZ$dQ*BvE2R&Rs! zpuLn%>v?o82bhO`rL0l&-JyM`-BIci5$Z6+`a(BLcXuC4%7N|>J1#%bePUs_)DC4t zrk+gaW3ZL-U%P{Bf&7rLN-pVXYFS9xRyiMzrcS2YV`-tclk<^K7S$@A&Q1-9MKak_ zyA~$cs>tV$m~>E*k7Z_T`wUALE;U9n2>-Ry^;b_AqF#Qbr#7@0y{`o90K@W$U<{7h@0U!|V~O378L N_Ad^sLCt{k{{VbdUwHrk diff --git a/osinaweb/osinacore/add/__pycache__/views.cpython-310.pyc b/osinaweb/osinacore/add/__pycache__/views.cpython-310.pyc index 2a6423e24066b8bae9f7c5bbf818848ea12bdd2c..3ea653a052f0473977cc61ce6e41555eb94750d3 100644 GIT binary patch delta 5637 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 delta 5771 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 diff --git a/osinaweb/osinacore/add/views.py b/osinaweb/osinacore/add/views.py index ffb73822..0b26831c 100644 --- a/osinaweb/osinacore/add/views.py +++ b/osinaweb/osinacore/add/views.py @@ -17,9 +17,7 @@ from django.core.files import File def add_status_modal(request, *args, **kwargs): if request.method == 'POST': text = request.POST.get('text') - current_datetime = datetime.now() - date = datetime.now().date() - time = current_datetime.strftime("%I:%M %p") + date_time = datetime.now() try: staff_profile = StaffProfile.objects.get(user=request.user) @@ -30,8 +28,7 @@ def add_status_modal(request, *args, **kwargs): status = Status( text=text, staff=staff_profile, - date=date, - time=time, + date_time=date_time, ) status.save() diff --git a/osinaweb/osinacore/custom_context.py b/osinaweb/osinacore/custom_context.py index 342d940e..18394de1 100644 --- a/osinaweb/osinacore/custom_context.py +++ b/osinaweb/osinacore/custom_context.py @@ -6,22 +6,6 @@ from django.db.models import Max, F from support.models import * -def calculate_time_ago(status): - # Convert status.date to a datetime.date object - status_date = datetime.strptime(status.date, '%Y-%m-%d').date() - timestamp = datetime.combine(status_date, datetime.strptime(status.time, '%I:%M %p').time()) - time_difference = datetime.now() - timestamp - - if time_difference.total_seconds() < 3600: - # If less than an hour, display in minutes - return f"{int(time_difference.total_seconds() / 60)}min ago" - else: - # Display in hours and remaining minutes - hours = int(time_difference.total_seconds() // 3600) - minutes = int((time_difference.total_seconds() % 3600) // 60) - return f"{hours}hr {minutes}min ago" - - def utilities(request): notes = None @@ -105,10 +89,8 @@ def utilities(request): today = datetime.now().date() - # Fetch the latest statuses from the last 24 hours - latest_statuses = Status.objects.filter(date=today).order_by('-id') - # Calculate time ago for each status and store it in a dictionary - latest_statuses_time_ago = [{'status': status, 'time_ago': calculate_time_ago(status)} for status in latest_statuses] + latest_statuses = Status.objects.filter(date_time__date=today).order_by('-id') + last_status = Status.objects.filter(staff=request.user.staffprofile).last() recent_logged_in_staffs = User.objects.filter( @@ -123,7 +105,7 @@ def utilities(request): return {'total_tasks': total_tasks, 'latest_statuses' : latest_statuses, - 'latest_statuses_time_ago': latest_statuses_time_ago, + 'last_status': last_status, 'notes' : notes, 'recent_note' : recent_note, 'user_offline' : user_offline, @@ -131,44 +113,4 @@ def utilities(request): 'recent_logged_in_customers' : recent_logged_in_customers, 'open_tickets': open_tickets, 'closed_tickets': closed_tickets -} - - -def last_status(request): - minutes_ago = 0 - hours_ago = 0 - hours_minutes_ago = "" - current_date = datetime.now().strftime('%Y-%m-%d') - if request.user.is_authenticated and StaffProfile.objects.filter(user=request.user): - last_status = Status.objects.filter(staff=request.user.staffprofile).last() - if last_status: - # Convert the 'time' field to a datetime object - status_time = datetime.strptime(last_status.time, '%I:%M %p') - - # Get the current time - current_time = datetime.now().time() - - # Calculate the time difference - time_difference = abs(datetime.combine(datetime.today(), current_time) - datetime.combine(datetime.today(), status_time.time())) - # Get the time difference in minutes - minutes_ago = time_difference.total_seconds() / 60 - minutes_ago = int(minutes_ago) - - else: - # Handle the case when the user is not logged in - last_status = None - - if minutes_ago > 60: - hours_ago = minutes_ago // 60 # Calculate the number of hours - remaining_minutes = minutes_ago % 60 # Calculate the remaining minutes - hours_minutes_ago = f"{hours_ago}hr {remaining_minutes}min ago" - else: - hours_minutes_ago = f"{minutes_ago}min ago" - - - - return {'last_status' : last_status, 'current_date' : current_date, 'minutes_ago' : minutes_ago, 'hours_minutes_ago': hours_minutes_ago} - - - - +} \ No newline at end of file diff --git a/osinaweb/osinacore/edit/__pycache__/views.cpython-310.pyc b/osinaweb/osinacore/edit/__pycache__/views.cpython-310.pyc index 9e2ab9c87b79ea94665196bfa0b0f134485e0531..461eba2b76aef24d8480b32f09f13691d6178e5e 100644 GIT binary patch delta 2099 zcmdUwUyBo07{+Ik$z(Fg%p{pzTmxm-b$2!0RU><$R~2ciw8B!VP@&+G?un9dH-WRK zqH@AodcD0lz3SR_x7b?yPq)=pt!>pp>woY@Fdx7#(5r$J-)9n&$P#cV6dK5nlQZvx z$@Bi+6U81C-Kyi*8ol0&%pdG~ZP~Tg*(QB_nclMx)Jr4d>h+<~xn0bZMvz?4K91Dl zA|>O(Sd1-cQVX2Gr7Iqb&l@#MT8rkArfZco%vw#oj0WjiLS$G%CJyP$o{!XQk(KuQ z`d%%coZ!kE-0ht)>V_yC74-xwiqfR24sIXtd5j*E&k*XdH>%}|;AyNaQJyIsuU6Eb zgJY@Buw(8OMe**ea@RjB)bbg*HrlN$WuLLbxG2HmCVi0KxAR1&4 zK;wsJ={fjEzyd)T!@c`Y;ZqrShmg;<6X2(@i{H<`1kM2cz*oRpU?1=`fK>Q5zze{) z>cntv=sPT@fB-lNoCVGS%RpM`{l2E(;<-?cyukzVx1Bp36dg9>OqQlD23mY!cu>Y3?29!5A+2g-?RD{>c(_& zR@ALhg-t@2m5H3&(7(M~B6SCMPZp;{`AAtDYi5Jz`5yQoOewc9Uoc6trfktrwx8*G zciBEbaC84EIGQ7q!pkBu(#V?Np+-OAxjq4Y0+xWbM;(*IPw&LF=Md>4>MjARv*|K! z>9FZ>etc6qC$i}Z6+DxXM;onyEa+;-$gBQ}kQP(w>WjVJE7F$n1x?18c{sv%sKVyn zxwoWEvt`k)74E*t?268CphdT7HCrZF?6ARuuqr`SiLk1~QdH%%s*Hfv%q4%5(&oox zl6lg`p-A766s}CRjzup>lhGNLCZkg_HPjpc>PpQKKFdgll+KdUuIQ0&c+UCi)aZek zw$i<;SDLpPQujqw6sKE$b~U_joyP~zj&7p!%j%D@iFBh|DD3ci+omzyRC@|*M{{(H znvu}&yHxZ{?;P4_^=|Ng*SkH9-qAsnp{erGHJU2FIaR+Pl5nbi#YzW01%3mr0@r}+ z!0+mx&3*ck>L1SSe%`~n)lz-~U$J7)&Th$#ckdl;xe43?ZUc9KW%YQ=M5A{Wdgn&? bJvCkUJBPnQegVKa6%HatN9pq1)(@WmL`v6o delta 2479 zcmds&O>7%Q6o7Z_^?JSbuI=?YwNpVF2UFZ84I)yh5E6&dLyIU#1ym%cwRpBw){PU! z6Mo0?pF5dIR-kIBu+vczth10F@t6vg7jqGXeAUfBA_`LFTs1aoe9_5h* ztEB*K5^bqm36enycBF|h7ik#WSkPOFs?^q!*x$L1hXbb(V;N%d*gloS?YU6HWG*)k zsJoO>Li{$oJ^!mw+_I1UXBaybo{6`qw4KLi*#NCB0YF0d1$VG|Ad^R~HjuuAO zK8uU`F6Ob>dS|CmXLK(t`{IYf_fA1I)kLVE8mg|@Aw#7n#rYAp7l@1hMIe|1AqWQ< z5}ymne}3wkqJ9Ye34KlsZyIdAfWs8x2;xP=5aK079&s1qWdufm9z|fF=qre;5U(Nv zgoda9N-??)$H$f?I_pp2>2bts2=#<`uz2riFLZX8z6lGJFktD3!=S6vF^J-XNM4s| zj=4T(x= z4Czd6(V5sz>cD%n^*g=Ux=-jqarj!dDI@tj%+tewQl3U|JcU?gWZT+)ug=;AYV_E2 z&2O7iUezyq4|~*ayZd}ruFO*E*I2o`!|-cFp3%XTGa~ZqhqkN~{I-P;EqfI<`OqYL zl%BvBmKMB@qc?;)lo1EkmmCLdUUWJvoj%j=^r3$*8*Bjb5DwNrLqKyE<4@nh7d(h~ z8__~Q7Mcp3#Nh*gQtq#(fxd%RpF+Hgcn|SDV&xFy>XP(htF-)cl2HOSv!Hh&GHyjA#v$M@gir(H$H{^9r2l)ezk# zk{hz=`?(42)qq(;&h8d>jAffMayACDF*#c$iJD3*Xx-r(6}X=kq@cEJsI53RX_LoE zlAGArVKvUuJPu9Wk=2$VDOqi9kcF!TNE)gw!4r!$3b}1qEJqw}L5t2nwb?AsZC$o# zSDf9j=a1zz_z&i_onh0=+uyB$PC@l2d)u-tu7WAVv``&TN?xJQofhXd?o2IPVKS{6Dh*x~&6Mp2Pe@mAjoTOFwL4d}Wz`gd-L4 z4B}(NCx}lGXAz$vK1Y0kIEVNWvD6(dZw{;L(enAd&)l&`I2ZpH6xPfxU#HO7sGv03F>G)$1Ss E9ql4OqyPW_ diff --git a/osinaweb/osinacore/edit/views.py b/osinaweb/osinacore/edit/views.py index 698a62dc..04ec5202 100644 --- a/osinaweb/osinacore/edit/views.py +++ b/osinaweb/osinacore/edit/views.py @@ -433,23 +433,23 @@ def mark_point_working_on(request, point_id, task_id): task = get_object_or_404(Task, id=task_id) point = get_object_or_404(Point, id=point_id) point.status = 'Working On' - current_datetime = datetime.now() + current_datetime = timezone.now() point.save() activity = PointActivity( point = point, - start_time = datetime.now(), + start_time = timezone.now(), ) activity.save() if PointActivity.objects.filter(point=point).count() == 1: status_text = f'Started Working On: {point.text}' - status = Status(text=status_text, date=current_datetime.date(), time=current_datetime.strftime("%I:%M %p"), staff=request.user.staffprofile, task=point.task) + status = Status(text=status_text, date_time=timezone.now(), staff=request.user.staffprofile, task=point.task) status.save() else: status_text = f'Resumed Working On: {point.text}' - status = Status(text=status_text, date=current_datetime.date(), time=current_datetime.strftime("%I:%M %p"), staff=request.user.staffprofile, task=point.task) + status = Status(text=status_text, date_time=timezone.now(), staff=request.user.staffprofile, task=point.task) status.save() @@ -466,23 +466,23 @@ def mark_point_working_on_task_page(request, point_id, task_id): task = get_object_or_404(Task, id=task_id) point = get_object_or_404(Point, id=point_id) point.status = 'Working On' - current_datetime = datetime.now() + current_datetime = timezone.now() point.save() activity = PointActivity( point = point, - start_time = datetime.now(), + start_time = timezone.now(), ) activity.save() if PointActivity.objects.filter(point=point).count() == 1: status_text = f'Started Working On: {point.text}' - status = Status(text=status_text, date=current_datetime.date(), time=current_datetime.strftime("%I:%M %p"), staff=request.user.staffprofile, task=point.task) + status = Status(text=status_text, date_time=timezone.now(), staff=request.user.staffprofile, task=point.task) status.save() else: status_text = f'Resumed Working On: {point.text}' - status = Status(text=status_text, date=current_datetime.date(), time=current_datetime.strftime("%I:%M %p"), staff=request.user.staffprofile, task=point.task) + status = Status(text=status_text, date_time=timezone.now(), staff=request.user.staffprofile, task=point.task) status.save() @@ -496,17 +496,17 @@ def mark_point_paused(request, point_id, task_id): task = get_object_or_404(Task, id=task_id) point = get_object_or_404(Point, id=point_id) point.status = 'Paused' - current_datetime = datetime.now() + current_datetime = timezone.now() point.save() last_activity = PointActivity.objects.filter(point=point).last() if last_activity: - last_activity.end_time = timezone.make_aware(current_datetime, timezone.get_current_timezone()) + last_activity.end_time = current_datetime last_activity.save() status_text = f'{point.text} - Paused' - status = Status(text=status_text, date=current_datetime.date(), time=current_datetime.strftime("%I:%M %p"), staff=request.user.staffprofile, task=point.task) + status = Status(text=status_text, date_time=timezone.now(), staff=request.user.staffprofile, task=point.task) status.save() @@ -522,17 +522,17 @@ def mark_point_paused_task_page(request, point_id, task_id): task = get_object_or_404(Task, id=task_id) point = get_object_or_404(Point, id=point_id) point.status = 'Paused' - current_datetime = datetime.now() + current_datetime = timezone.now() point.save() last_activity = PointActivity.objects.filter(point=point).last() if last_activity: - last_activity.end_time = timezone.make_aware(current_datetime, timezone.get_current_timezone()) + last_activity.end_time = current_datetime last_activity.save() status_text = f'{point.text} - Paused' - status = Status(text=status_text, date=current_datetime.date(), time=current_datetime.strftime("%I:%M %p"), staff=request.user.staffprofile, task=point.task) + status = Status(text=status_text, date_time=timezone.now(), staff=request.user.staffprofile, task=point.task) status.save() @@ -545,14 +545,14 @@ def mark_point_completed(request, point_id, task_id): point = get_object_or_404(Point, id=point_id) point.status = 'Completed' - current_datetime = datetime.now() + current_datetime = timezone.now() point.save() # Update the end time of the last activity to the current time last_activity = PointActivity.objects.filter(point=point).last() if last_activity: - last_activity.end_time = timezone.make_aware(current_datetime, timezone.get_current_timezone()) + last_activity.end_time = current_datetime last_activity.save() @@ -570,7 +570,7 @@ def mark_point_completed(request, point_id, task_id): if formatted_time: status_text += f' in {formatted_time}' - status = Status(text=status_text, date=current_datetime.date(), time=current_datetime.strftime("%I:%M %p"), staff=request.user.staffprofile, task=point.task) + status = Status(text=status_text, date_time=timezone.now(), staff=request.user.staffprofile, task=point.task) status.save() task_id_str = task.task_id @@ -586,14 +586,14 @@ def mark_point_completed_task_page(request, point_id, task_id): point = get_object_or_404(Point, id=point_id) point.status = 'Completed' - current_datetime = datetime.now() + current_datetime = timezone.now() point.save() # Update the end time of the last activity to the current time last_activity = PointActivity.objects.filter(point=point).last() if last_activity: - last_activity.end_time = timezone.make_aware(current_datetime, timezone.get_current_timezone()) + last_activity.end_time = current_datetime last_activity.save() @@ -611,7 +611,7 @@ def mark_point_completed_task_page(request, point_id, task_id): if formatted_time: status_text += f' in {formatted_time}' - status = Status(text=status_text, date=current_datetime.date(), time=current_datetime.strftime("%I:%M %p"), staff=request.user.staffprofile, task=point.task) + status = Status(text=status_text, date_time=timezone.now(), staff=request.user.staffprofile, task=point.task) status.save() return redirect('detailed-task', task_id=task.task_id) diff --git a/osinaweb/osinacore/migrations/0097_remove_status_date_remove_status_time.py b/osinaweb/osinacore/migrations/0097_remove_status_date_remove_status_time.py new file mode 100644 index 00000000..298e72f3 --- /dev/null +++ b/osinaweb/osinacore/migrations/0097_remove_status_date_remove_status_time.py @@ -0,0 +1,21 @@ +# Generated by Django 4.2.5 on 2024-07-09 08:13 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('osinacore', '0096_status_date_time'), + ] + + operations = [ + migrations.RemoveField( + model_name='status', + name='date', + ), + migrations.RemoveField( + model_name='status', + name='time', + ), + ] diff --git a/osinaweb/osinacore/migrations/__pycache__/0097_remove_status_date_remove_status_time.cpython-310.pyc b/osinaweb/osinacore/migrations/__pycache__/0097_remove_status_date_remove_status_time.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..623de1c5be66b65938639122182c30c526aef0ae GIT binary patch literal 617 zcmY*Xu}&N@5VgJD%ieNGp-4oDD3GqXy($PPimpJUNe&4_vyElW!^s!#db8f+bahe^ zDZdfrkK9sG(h?~!-UR_8&Fq`!@$9^j?dE1m(DrVxF8)$Nu0!(DI3^Qxw~Ij$MGYxv zPAU0J6jRYpq9ULR_9M!f;-_R7-(VdXQlA!jUdu+?(#-<((qc>|=x&4oNKO^O>vT@@ z2>2onjTQgJ9&sG-oaH^$!ymly{jX1*hs^h_)1{o*8uEAJ@xce-8rdwJP_hBh=mLDN zV>}NO-bf3pz=%@f8Si4Kn_}lgw6qXD6#~na1`rQ~_`Z}Tl!i<}1*L*=roq(=1^A5< zDC{L1X)wyCwt`39e@Oin&)abKJ3Dhwy9^3#0F2RV$PU4MYiyOBN~4RNFR}{BvD3}W z7FjDSD`C|FwUFi9cH|1qI}l`N&wI{r0sEqEhk3P!*HlnDs@8Rcv-Qy3Him?-h~M*= wQAYWH&bx2&udSL6Bj4{P7^(ACbjv@>>(CZ9^2x_;bD!`z5f|RifW40%0PJO}V*mgE literal 0 HcmV?d00001 diff --git a/osinaweb/osinacore/models.py b/osinaweb/osinacore/models.py index a1338aba..b0c031f9 100644 --- a/osinaweb/osinacore/models.py +++ b/osinaweb/osinacore/models.py @@ -10,6 +10,7 @@ from django.db.models.signals import post_save from django.dispatch import receiver from asgiref.sync import async_to_sync from channels.layers import get_channel_layer +from datetime import timedelta # Create your models here. @@ -390,7 +391,7 @@ class PointActivity(models.Model): total_time = models.DurationField(null=True, blank=True) def save(self, *args, **kwargs): if self.start_time and not self.end_time: - self.total_time = datetime.now() - self.start_time + self.total_time = timezone.now() - self.start_time elif self.start_time and self.end_time: self.total_time = self.end_time - self.start_time super(PointActivity, self).save(*args, **kwargs) @@ -407,13 +408,28 @@ class PointActivity(models.Model): class Status(models.Model): text = models.TextField(blank=True) - date = models.CharField(max_length=40) - time = models.CharField(max_length=40) staff = models.ForeignKey(StaffProfile, on_delete=models.CASCADE, null=True,blank=True, related_name='staff') task = models.ForeignKey(Task, on_delete=models.SET_NULL ,null=True, blank=True, related_name='reference_task') date_time = models.DateTimeField(null=True, blank=True) def __str__(self): return self.text + @property + def time_ago(self): + if not self.date_time: + return "No date provided" + + now = timezone.now() + diff = now - self.date_time + + if diff < timedelta(hours=1): + minutes = int(diff.total_seconds() / 60) + return f"{minutes}min ago" + elif diff < timedelta(days=1): + hours = int(diff.total_seconds() / 3600) + minutes = int((diff.total_seconds() % 3600) / 60) + return f"{hours}hr {minutes}min ago" + else: + return self.date_time.strftime('%d %m %Y, %I:%M %p') @receiver(post_save, sender=Status) diff --git a/osinaweb/osinacore/templates/details_templates/partials/recent-activities.html b/osinaweb/osinacore/templates/details_templates/partials/recent-activities.html index d89254bd..8d8b8a45 100644 --- a/osinaweb/osinacore/templates/details_templates/partials/recent-activities.html +++ b/osinaweb/osinacore/templates/details_templates/partials/recent-activities.html @@ -124,16 +124,16 @@ -{% if latest_statuses_time_ago %} -{% for latest in latest_statuses_time_ago %} -
+{% if latest_statuses %} +{% for status in latest_statuses %} +
+ data-modal-url="{% url 'userrecentativities' status.staff.user.id %}">
- user profile
@@ -146,19 +146,19 @@
-

{{latest.status.staff.user.first_name}} - {{latest.status.staff.user.last_name}}

- {% if latest.time_ago == '0min ago' %} +

{{status.staff.user.first_name}} + {{status.staff.user.last_name}}

+ {% if status.time_ago == '0min ago' %}

Just Now

{%else %} -

{{ latest.time_ago}}

+

{{status.time_ago}}

{%endif%}
+ data-status-id="{{status.id}}">
@@ -166,12 +166,12 @@ {% endfor %} {% else %} -

No statuses at the moment.

diff --git a/osinaweb/osinacore/templates/main.html b/osinaweb/osinacore/templates/main.html index 7fdc53f5..05e6329a 100644 --- a/osinaweb/osinacore/templates/main.html +++ b/osinaweb/osinacore/templates/main.html @@ -1132,7 +1132,7 @@