From 88cb39392234acd981c3d3f0e3bfe32351a84e7b Mon Sep 17 00:00:00 2001 From: nataly Date: Mon, 23 Oct 2023 16:53:44 +0300 Subject: [PATCH] Added project progress bar. --- osinaweb/db.sqlite3 | Bin 593920 -> 593920 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 199 -> 199 bytes .../__pycache__/admin.cpython-311.pyc | Bin 2623 -> 2623 bytes .../__pycache__/apps.cpython-311.pyc | Bin 576 -> 576 bytes .../custom_context.cpython-311.pyc | Bin 4710 -> 4710 bytes .../__pycache__/forms.cpython-311.pyc | Bin 1982 -> 1982 bytes .../__pycache__/models.cpython-311.pyc | Bin 19432 -> 19432 bytes .../__pycache__/views.cpython-311.pyc | Bin 44823 -> 47026 bytes .../__pycache__/0001_initial.cpython-311.pyc | Bin 3744 -> 3744 bytes ...ions_staffprofile_and_more.cpython-311.pyc | Bin 3889 -> 3889 bytes .../0003_milestone.cpython-311.pyc | Bin 1521 -> 1521 bytes .../__pycache__/0004_epic.cpython-311.pyc | Bin 1463 -> 1463 bytes .../0005_staffprofile_image.cpython-311.pyc | Bin 851 -> 851 bytes .../__pycache__/0006_note.cpython-311.pyc | Bin 1698 -> 1698 bytes ...ct_id_alter_project_status.cpython-311.pyc | Bin 1150 -> 1150 bytes ...8_alter_project_project_id.cpython-311.pyc | Bin 909 -> 909 bytes ...9_alter_project_project_id.cpython-311.pyc | Bin 893 -> 893 bytes .../0010_remove_note_date.cpython-311.pyc | Bin 739 -> 739 bytes ...r_alter_note_text_and_more.cpython-311.pyc | Bin 1839 -> 1839 bytes .../0012_projectrequirement.cpython-311.pyc | Bin 1323 -> 1323 bytes .../0013_projectfile.cpython-311.pyc | Bin 1433 -> 1433 bytes ...014_alter_projectfile_file.cpython-311.pyc | Bin 862 -> 862 bytes .../0015_projectcredentials.cpython-311.pyc | Bin 1442 -> 1442 bytes ...dentials_projectcredential.cpython-311.pyc | Bin 789 -> 789 bytes ...e_alter_project_start_date.cpython-311.pyc | Bin 1040 -> 1040 bytes .../0018_epic_status.cpython-311.pyc | Bin 938 -> 938 bytes ...date_alter_epic_start_date.cpython-311.pyc | Bin 998 -> 998 bytes .../__pycache__/0020_task.cpython-311.pyc | Bin 1922 -> 1922 bytes ...rprofile_business_and_more.cpython-311.pyc | Bin 2818 -> 2818 bytes ...ustomerprofile_customer_id.cpython-311.pyc | Bin 919 -> 919 bytes .../0023_task_assigned_to.cpython-311.pyc | Bin 1035 -> 1035 bytes .../0024_task_task_id.cpython-311.pyc | Bin 865 -> 865 bytes .../__pycache__/0025_status.cpython-311.pyc | Bin 1589 -> 1589 bytes ...e_status_user_status_staff.cpython-311.pyc | Bin 1167 -> 1167 bytes .../0027_alter_status_staff.cpython-311.pyc | Bin 1082 -> 1082 bytes ...8_remove_projecttype_color.cpython-311.pyc | Bin 749 -> 749 bytes .../0029_alter_reference_date.cpython-311.pyc | Bin 863 -> 863 bytes .../__pycache__/0030_tag.cpython-311.pyc | Bin 990 -> 990 bytes ...1_alter_staffprofile_image.cpython-311.pyc | Bin 869 -> 869 bytes .../__pycache__/0032_point.cpython-311.pyc | Bin 1474 -> 1474 bytes ...nt_date_workingon_and_more.cpython-311.pyc | Bin 1297 -> 1297 bytes ...nt_date_completed_and_more.cpython-311.pyc | Bin 1353 -> 1353 bytes .../0035_business_business_id.cpython-311.pyc | Bin 901 -> 901 bytes ...lter_staffprofile_position.cpython-311.pyc | Bin 1233 -> 1233 bytes ...move_staffprofile_position.cpython-311.pyc | Bin 781 -> 781 bytes ...taffprofile_staff_position.cpython-311.pyc | Bin 1059 -> 1059 bytes ...taffprofile_staff_position.cpython-311.pyc | Bin 1090 -> 1090 bytes ...0040_staffprofile_staff_id.cpython-311.pyc | Bin 901 -> 901 bytes .../0041_dailyreport.cpython-311.pyc | Bin 1499 -> 1499 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 210 -> 210 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 198 -> 198 bytes .../__pycache__/settings.cpython-311.pyc | Bin 3156 -> 3156 bytes .../osinaweb/__pycache__/urls.cpython-311.pyc | Bin 9543 -> 9915 bytes .../osinaweb/__pycache__/wsgi.cpython-311.pyc | Bin 722 -> 722 bytes osinaweb/static/dist/output.css | 9 ++++ osinaweb/static/js/calculate-project-time.js | 40 ++++++++++++++++++ .../details_pages/project-details.html | 14 +++++- 57 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 osinaweb/static/js/calculate-project-time.js diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index efe4c37f6504f05f9c7af7cf02f0147a2ea90aa2..2aa2545b07cb79407dd31f9b34c4bc225e444682 100644 GIT binary patch delta 1567 zcmb7EUu;uV7{7mdZe2(FZC%>i-mdK(Y$yrs&TY4K9U9UtGdKgA$~4Hs!no}=5}<3# zhP{dSjUW$w-e&>aoRhrNwi+`&n_bZPKvb=U?G%rJ62bht0V9khi(C5N=X&yahM4 zL>t1*II6`O!X@%ki>NXM1N*LkbclZ^4hVS4T_zJGV7w`#8!@F=AJ^%ww zz$lCqEA!pZB&imT=M^LcDSD9nED!~LB$dw* zMTioF?HyBtAYvLIrU7CaAlV|8@k|2bHWolsgOtv`MT9HxChP{)vEX>$5w|bdCmm^f z&c3DiLRz+u2v=OLm}29qyuKQq_togSp3EeNGs9iU1Ny*$z6g#)Lz))SV&$kS62(}H zn6Gds(irpFIN4<;=91Z*noa51za`?37GF-(SR#&-#CF-nMQP#)*^*_ZGY9)J$!u2b z-IGxxSzS-9;fXX@%>r?hMsz=TA>8ZYy-nX`f#^qk{YA>bt0^%T`!`Df>f)8r+y1E^q>Gk z8TlEy1fOK#$!AsAqg$vprt8J$&ArArG9*i6Xz0ky6RVgunSqbU(42>}P=GOFnY3w{ zjfzUg!yBa06QEJ{)9CWC$PDGKHZE@!pE3E*m`1z{-@oDv%R5xTdcclS8BK|)Vo9L9_;Q&znFL_ llFUXA?>v0y)z|t5U*2ol`QJ|2(f)CXT-H+m_!DpC{sKiYg+TxS delta 1238 zcma)+Uu+ar6vpqJJDut5?#wCePV4Tr-Puy)q1iGsYyV8qG=*RS#IPnLXozW|J7JqZ zS?xyT!F1IG-ux4ySM5XlVuTnavb2j2po!&WfzSup2Oz=KXb74@2@tIhdS=Fr4SjJ= z?%d7fe&6{{<~LiK>n+Xoz8@DlAAZoeP3n9|`uFYnI@i-L>0NDXl=78hLQG2Zw6dL) zFTE{vQ?*>}A9rLSMr2qbunZ62Hv9xPVHK9JE(TTJP@09VQL2z3oe;8B#oJ(n zG%-rU-UCUF@|(AWO)2<_L|~S{pKu@Uz|U|4et^s9aUK@nbC`u$bb1rorG!W*)rF=w z?uzHoOlg$Q-xc=6NedzH2b^7BsQmYQC2ZAa;U+7S$g-f~~ODReswbz|0dTZ>J;>7E&ZQ7Z%Wu{FlYiCT;vi%3}D_0|49#@ z-olz%bs-^%6kk`|f8kLf#uv7*-3DAh0?!cS_W{xzuv|lutFQ>?;0(-L(p$~ttkEL# z!h52q=?RZw-$jbX_~IygrVAF)v(;rUj}0{|{-1c?9u delta 19 ZcmX@kc$|@YIWI340}x!xke$fA2LLg!1sVVV diff --git a/osinaweb/osinacore/__pycache__/admin.cpython-311.pyc b/osinaweb/osinacore/__pycache__/admin.cpython-311.pyc index 15082c906d56f289af927a38b92324c7189d0fd3..c6c4c08ab0c64325f06dbcba0f14025bfa73e6d9 100644 GIT binary patch delta 20 acmdllvR{OIIWI340}zy{>u%&W;Q|0N>I6Xm delta 20 acmdllvR{OIIWI340}x!xkln~_!UX^~zy#6& diff --git a/osinaweb/osinacore/__pycache__/apps.cpython-311.pyc b/osinaweb/osinacore/__pycache__/apps.cpython-311.pyc index 546d4f12dcc2401f91b9467805a8acfd492fd631..460d0ed1d20489b835abf6d5e18a5848a53923f5 100644 GIT binary patch delta 20 acmX@Wa)5<u%&WWdZ;($^;w$ delta 20 acmX@Wa)5<u%(Z76Je~N(9~j delta 20 acmaE+@=S$$IWI340}x!xkln}~Ed&5SAO&v# diff --git a/osinaweb/osinacore/__pycache__/forms.cpython-311.pyc b/osinaweb/osinacore/__pycache__/forms.cpython-311.pyc index 615bb0b555ead673e94ab5e0ab0fe50fb09dff94..ba1915a7e63f59e223e80fe7ea9f53e5bb09ce70 100644 GIT binary patch delta 20 acmdnTzmK1LIWI340}zy{>u%)U%nkrF3k0zM delta 20 acmdnTzmK1LIWI340}x!xklo0=nH>N(;RQkf diff --git a/osinaweb/osinacore/__pycache__/models.cpython-311.pyc b/osinaweb/osinacore/__pycache__/models.cpython-311.pyc index c6dc27a154230fddd713613c8b2d6bd89dc0d441..4cfd4820b542e99b45d3af5afb8ad7fc5cc98af3 100644 GIT binary patch delta 22 ccmaDco$t;Cf9@4?9?iE&R zR;f*{J-c-FT5VXpRwwRJ!^=O41??GUmueG2r;`d01{i=fKsXQq=;`}?kJB|zeC(<; zZEMaIX04;SAq)j+QsoWRWvl9NjFIkpYDF~dZoMo_r1$3i%aOai6(UZX_SUOH(4Vr1 zxz*QUNWdBE=#tN33iiCX{?@ls*fe`*oPp~~d*V~pq0Yc&$n}Vl5hZa{CX=b9r((Ma zsugMmkcMSCU;!S3<^Zf%W&oi(A-al0D)129@3AGXXawmbWHJ$Dk>hZY*r@pq-wre6 zL&+hhKU-|phWtkrQKUs4wJXMAP7LaGI^O`r4rSB1W;6XU7NH$^qg;rs^!Y%&@d>V& zM1_YdHfS}2rO1pQYZs+j_)xhb5^2}*VX%`TRP79y5c)1Km^er(%K! zCXfphpy(!|V84}E76LmMJJ1UU?Z27>kifKz?p4C~@0ZM?W{ z@j9iav7`M!TW4c;$gRfqw#H7Uk5y;0Th{RA-(g08%l*1}Q|e^(x#l?&C7w!SYqYiV zrudUp?^a)Gm@_%9nH*o69CKj~tz^`rJRJHHthv^w+r1sF?oPKWG<*dby36Ou=MYuV z9OW77I5hH5zBTOn?PbR^mmL2=nDs5uyeW9Cu(uXx;8yZQ;D52#613MI@n4;lJNeeW z2ySi3UTetT^cDU#ExEA5-Ui;6g{klH-oM*>{lV6f_q7x)|MXq)NO0y2ye~9!JxBH^ znGRt+&<*_KK`Nw%vCT1?U{vTuK$JsMV_S@k9G0M!pMtO8r~YDka(qN=p|8eIs7_AS zk@KzhBbqpB;<8`q%0wdNpE+&X$4V@9d<>!^-QZIuNSr zns`d}vNp)4Cet?)7u9xNoz(g!+k|+O0&kZyi>GX=WciHdn$j!6LHnmGnIBJQs0Ue| z)ox6GDMSg)p5Mm2b3R2q#PTO(zVNDW(ZGc}{EqwH`K@;WR+u>@;{Y455!ehA0r&z* zd}L%PupPjcAovDIJe?AMmV`|bc1SoOF}%dI5(7$1Br%9Y+Y(L6LxOJ1BpLfT=AX`2 zrY+2j8r%t@AfRLXqSq-g{pkS(LLSEfC0Y~*bd2Q`1Y0omz+DBwR6KSumUnTiUAbH< F{sJj#zBK>< delta 1270 zcma))?@yCg6vvb7BP23_zUC3Ub=hPoH%U-N$KK-8W zIrp40R=!`cQ1q>C7qQTb+RW|>#8vCNPV3jAMUFJpk#`$_Pt^6b;G>pYc z@ll`{gS~5^2#0&mfdzdr@BbSz9BYMQ`CDugZ5BQ824YXVU!Tw0a^kgkg*7+(MXV+^ zz!KS>DA9d+djZ!vatjzb-Iyq4Ww3IQ3W1HTsZaF}c-C_KJGI5S zf#hxOQvf*h^-TF%?mIoE`pc0Ih(oo#Wnwve%sPPW{H^w{6#m?gC|a<)Rlk_1I-wpT&s0b z)`ve$X0 z*5Q?Jo3!m@bWv9W{bw@T4vHf3#+g2VRoI$oAs)?CX}ieYEiYwEs;!Zv$09U7%0{$L zyYTLJ9%#hkvz1yO<@U<@vzGyaXr5kE86+c4H>SAVZc#`BPf7XyA**@Lp0RN0acxX~o`+@Qql?^}X N=jz`n*?FM@o&g^!IPCxc diff --git a/osinaweb/osinacore/migrations/__pycache__/0001_initial.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0001_initial.cpython-311.pyc index 90329a6c4a4f62ab229c7c4d9c2d2d99971f5b50..e517444116a23800885c76d4c948b99574815ba6 100644 GIT binary patch delta 20 acmZ1=yFiwEIWI340}zy{>u%(p$_D^3S_FCk delta 20 acmZ1=yFiwEIWI340}x!xkln~Vl@9u%&$;|BmUCj>A6 delta 20 acmdlew^5FJIWI340}x!xklo0w#t#5C{RF`P diff --git a/osinaweb/osinacore/migrations/__pycache__/0003_milestone.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0003_milestone.cpython-311.pyc index 03385d863ea015a61302e827f24d073ae677c794..f638258ef4287b4d8c064d6e5abdf17feff73ccc 100644 GIT binary patch delta 20 acmey!{gIn{IWI340}zy{>u%(J#tHyCaRopC delta 20 acmey!{gIn{IWI340}x!xklo1rj1>SsM+MOU diff --git a/osinaweb/osinacore/migrations/__pycache__/0004_epic.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0004_epic.cpython-311.pyc index 23c2bc8fecd501b802dc50916136ef7cc79f5c9c..1dde3b84fe206fc07edfc7c04becd412d4b52d07 100644 GIT binary patch delta 20 acmdnay`7tTIWI340}zy{>u%&;!wLX0VFZ!@ delta 20 acmdnay`7tTIWI340}x!xklo0=h7|xdHw7aA diff --git a/osinaweb/osinacore/migrations/__pycache__/0005_staffprofile_image.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0005_staffprofile_image.cpython-311.pyc index 25105de9440e3e6c92b6ae1a79ba9bc215c78ad3..974304028b26c4bd14321679b42d8b0743d0b9a1 100644 GIT binary patch delta 20 acmcc2cA1TPIWI340}zy{>u%)sUu%(p&ISN4Vgy(K delta 20 acmZ3)yNH*2IWI340}x!xkln~VoecmpI0Wec diff --git a/osinaweb/osinacore/migrations/__pycache__/0007_project_project_id_alter_project_status.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0007_project_project_id_alter_project_status.cpython-311.pyc index f0a2977b4c3d78c13e30b1bccf37e29f7b9548a7..5edb891020adc5c113fc49b7edb64baf2e4da76c 100644 GIT binary patch delta 20 acmeyz@sERhIWI340}zy{>u%&OW&r>^3~x*NHhm;oz41PTBE delta 20 acmeBW?`7v+&dbZi00h@EWH)j*F#`ZE6$G0A diff --git a/osinaweb/osinacore/migrations/__pycache__/0009_alter_project_project_id.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0009_alter_project_project_id.cpython-311.pyc index 45ba9d2d685b99f44e788e80779550497282ac43..e76de82b286ba3efddfbf26abace4a6655c079f8 100644 GIT binary patch delta 20 acmey%_Lq%&IWI340}zy{>u%&OVg>*^n*`VZ delta 20 acmey%_Lq%&IWI340}x!xkln~##0&sGaRq4r diff --git a/osinaweb/osinacore/migrations/__pycache__/0010_remove_note_date.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0010_remove_note_date.cpython-311.pyc index c6e5ebbedc55c809e5bb7cbea81dee90604abb95..cbd4388998bb09937941f4848e5aafad15271c8a 100644 GIT binary patch delta 20 acmaFN`k0k_IWI340}zy{>u%(}!2|#}W(5ZT delta 20 acmaFN`k0k_IWI340}x!xklo0Ag9!jUJO!8l diff --git a/osinaweb/osinacore/migrations/__pycache__/0011_note_date_alter_note_color_alter_note_text_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0011_note_date_alter_note_color_alter_note_text_and_more.cpython-311.pyc index 58a918c39d213f9d58351d6979b17b0cd9e440cf..68d372ee330879d6e545f1f57e4d7d2c3551d79c 100644 GIT binary patch delta 20 acmZ3_x1NuCIWI340}zy{>u%&$VFv&(j|2h$ delta 20 acmZ3_x1NuCIWI340}x!xklo0w!VUm5WdxG| diff --git a/osinaweb/osinacore/migrations/__pycache__/0012_projectrequirement.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0012_projectrequirement.cpython-311.pyc index 1b1cf1b959ac19bae112bb169cd366de95088776..4754a6afba3f7f9438029b8a143e37cdd4a54d74 100644 GIT binary patch delta 20 acmZ3@wVI22IWI340}zy{>u%&$Uu%)kV+8;$u>?2( delta 20 acmbQqJ(HVzIWI340}x!xklo1L#|i*3hXlz0 diff --git a/osinaweb/osinacore/migrations/__pycache__/0014_alter_projectfile_file.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0014_alter_projectfile_file.cpython-311.pyc index 42f216dfcf5527f0a247f0e24e13418833146543..73065306edf6bc0608f0110d46a5cacbd5de1906 100644 GIT binary patch delta 20 acmcb|c8`sFIWI340}zy{>u%%@W(EK@!vuQ( delta 20 acmcb|c8`sFIWI340}x!xkln}~%nSfJnFS00 diff --git a/osinaweb/osinacore/migrations/__pycache__/0015_projectcredentials.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0015_projectcredentials.cpython-311.pyc index 6d1754b5eae806125558ccc1a93089ea2428b071..dbf1a51596a544ef2cdc35a60dcd08d357191bbe 100644 GIT binary patch delta 20 acmZ3)y@;E8IWI340}zy{>u%(p&I$l883a=R delta 20 acmZ3)y@;E8IWI340}x!xkln~VofQBw?*!xk diff --git a/osinaweb/osinacore/migrations/__pycache__/0016_rename_projectcredentials_projectcredential.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0016_rename_projectcredentials_projectcredential.cpython-311.pyc index 3d2f3ff7cf5b1f55188d28a5fe6d6427a81f4923..4fb5b6ceae40d064136b8f1712a9be5175b799bc 100644 GIT binary patch delta 20 acmbQrHkFNgIWI340}zy{>u%)cVg>*!TLYi~ delta 20 acmbQrHkFNgIWI340}x!xklo15#S8#1F$6IH diff --git a/osinaweb/osinacore/migrations/__pycache__/0017_alter_project_end_date_alter_project_start_date.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0017_alter_project_end_date_alter_project_start_date.cpython-311.pyc index 04bc2a4a673b189e734ca546fb0cf6601221cfa7..70ff4d8dfbaf2920b041e30100aabdf2802d8dad 100644 GIT binary patch delta 20 acmbQhF@b}7IWI340}zy{>u%&`WdQ&x+yj;X delta 20 acmbQhF@b}7IWI340}x!xklo15$^rl`vIHjp diff --git a/osinaweb/osinacore/migrations/__pycache__/0018_epic_status.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0018_epic_status.cpython-311.pyc index f2661fd8ba48663f6b1930f529943f7dd5e1e72f..8c62ec4da0355dc7e4acebd0e3ef55b6f7155b06 100644 GIT binary patch delta 20 acmZ3*zKWfDIWI340}zy{>u%(p&kO)B#{^*j delta 20 acmZ3*zKWfDIWI340}x!xkln~VpBVr%odog# diff --git a/osinaweb/osinacore/migrations/__pycache__/0019_alter_epic_end_date_alter_epic_start_date.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0019_alter_epic_end_date_alter_epic_start_date.cpython-311.pyc index ca6f4d5bc7cf4695c733da3261b43a4b1dcee009..baf4f967f3fb1a517f24472f1b438c812fec9acb 100644 GIT binary patch delta 20 acmaFH{*0Y_IWI340}zy{>u%(}%?toJCj}J% delta 20 acmaFH{*0Y_IWI340}x!xklo0An;8H+{RO4~ diff --git a/osinaweb/osinacore/migrations/__pycache__/0020_task.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0020_task.cpython-311.pyc index e3200ad59786ec32e2158af7f7878e5a429a84db..022a713535d2c145cc117cd5b4ddc42e5397b14e 100644 GIT binary patch delta 20 ZcmZqTZ{p`(&dbZi00d>~x*NI6*#Ro61N{I1 delta 20 acmZqTZ{p`(&dbZi00h@EWH)k`vjYGwfdq~K diff --git a/osinaweb/osinacore/migrations/__pycache__/0021_alter_customerprofile_business_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0021_alter_customerprofile_business_and_more.cpython-311.pyc index 93e105b8bb77651e8ce977ed14365ad705ccddfc..e0b0d16ebc6eb1157cf849dc6c07b3915cc285c0 100644 GIT binary patch delta 20 acmZn?YZBvL&dbZi00d>~x*NH_a{&M>ssxSz delta 20 acmZn?YZBvL&dbZi00h@EWH)ku=K=sQfCV1_ diff --git a/osinaweb/osinacore/migrations/__pycache__/0022_customerprofile_customer_id.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0022_customerprofile_customer_id.cpython-311.pyc index 76a33a68a8b710a686da3c866ec267b8eb537515..59a009bb89ef94687dd996d36c4604d0bafdf882 100644 GIT binary patch delta 20 acmbQvKAoL=IWI340}zy{>u%)kVFmy!&jcs{ delta 20 acmbQvKAoL=IWI340}x!xklo1L!wdj0r3ASE diff --git a/osinaweb/osinacore/migrations/__pycache__/0023_task_assigned_to.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0023_task_assigned_to.cpython-311.pyc index c965e784800c065d449847c5e3797d7d5b7c6625..b01c0d6356ed9cde2b8a596fefb3314f97d6bbc3 100644 GIT binary patch delta 19 YcmeC?=;q*F&dbZi00d>~x(m5k048ArcK`qY delta 19 ZcmeC?=;q*F&dbZi00h@EWEXO?001eb1PA~C diff --git a/osinaweb/osinacore/migrations/__pycache__/0024_task_task_id.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0024_task_task_id.cpython-311.pyc index 21e6ab8e1b6fc8e45b8e28a4fe945b0974d78d33..ebcb71a122693f6a4c1e9e8e841c75ba98508bb7 100644 GIT binary patch delta 20 acmaFJ_K=NxIWI340}zy{>u%%@V+H^>I|PIP delta 20 acmaFJ_K=NxIWI340}x!xkln}~#tZ;E5d{?h diff --git a/osinaweb/osinacore/migrations/__pycache__/0025_status.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0025_status.cpython-311.pyc index d28a14877eab700b63c3776e9330d490bacb81f9..54fcdac3a628f3aa6906bc7b7d8bcf6406639b85 100644 GIT binary patch delta 20 acmdnWvz3Q?IWI340}zy{>u%)MVgmp%HUtj< delta 20 acmdnWvz3Q?IWI340}x!xklo0w#RdR13~x*NG$SO6>71Qh@P delta 20 acmeC@?C0cO&dbZi00h@EWH)lRumAurt^}q4 diff --git a/osinaweb/osinacore/migrations/__pycache__/0027_alter_status_staff.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0027_alter_status_staff.cpython-311.pyc index 638be1ae0e931e2ec07806ac0e40ea929aafaaf1..31785988c6af127cc44a73fd037e1ac8a5f9e464 100644 GIT binary patch delta 20 acmdnRv5SLyIWI340}zy{>u%)MX8`~)Yy=bl delta 20 acmdnRv5SLyIWI340}x!xklo0w&jJ87LIkA% diff --git a/osinaweb/osinacore/migrations/__pycache__/0028_remove_projecttype_color.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0028_remove_projecttype_color.cpython-311.pyc index 27484634936b317e7eb63d9e3b5739618fe7da5c..86e345f80f76cad31434ab327359bc4e21108a3b 100644 GIT binary patch delta 20 acmaFM`j(Y@IWI340}zy{>u%(J!~_62_5~#X delta 20 acmaFM`j(Y@IWI340}x!xklo1rhzS5a%muap diff --git a/osinaweb/osinacore/migrations/__pycache__/0029_alter_reference_date.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0029_alter_reference_date.cpython-311.pyc index fa80e2d15933eb2669bb1fd729cb1393d26b9dab..fa7280069a1224e8e6b26316c0604f2d1237793f 100644 GIT binary patch delta 20 acmcc5cAt%VIWI340}zy{>u%%@VFmy;>jZuP delta 20 acmcc5cAt%VIWI340}x!xkln}~!VCa9!37Th diff --git a/osinaweb/osinacore/migrations/__pycache__/0030_tag.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0030_tag.cpython-311.pyc index 79c44f71fa2e14139fc46a2b4372755228539295..a96796264dca543cd31913ced062bc4eb32a1240 100644 GIT binary patch delta 20 acmcb|evh4dIWI340}zy{>u%(}%nSfG=LG!# delta 20 acmcb|evh4dIWI340}x!xklo0AnHc~(y#u%(ZVg>*=+XRpR delta 20 acmaFL_LPl#IWI340}x!xkln}~#S8#Du>~Oj diff --git a/osinaweb/osinacore/migrations/__pycache__/0032_point.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0032_point.cpython-311.pyc index d1cd8d6180e29cb6d8a6b1288174a0363a94c9d8..17c86851f5b1089936a2bc513e284397f21e5995 100644 GIT binary patch delta 20 acmX@aeTbWTIWI340}zy{>u%)U&I$lD83eNc delta 20 acmX@aeTbWTIWI340}x!xklo0=ofQB#?*&8v diff --git a/osinaweb/osinacore/migrations/__pycache__/0033_point_date_completed_point_date_workingon_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0033_point_date_completed_point_date_workingon_and_more.cpython-311.pyc index a3401366d3617b53bc4fd084f4ce126d1d51e488..727bdc0553fe7136ac0393cf71ca770546522c67 100644 GIT binary patch delta 20 acmbQpHIa*ZIWI340}zy{>u%&`V+8;!O#_|) delta 20 acmbQpHIa*ZIWI340}x!xklo15#tHy0BLpu1 diff --git a/osinaweb/osinacore/migrations/__pycache__/0034_alter_point_date_completed_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0034_alter_point_date_completed_and_more.cpython-311.pyc index 48ec02b7c2fc05e052485d9311f6e9fbac0b5989..773810c61c2e36e98faaa703972aefea7110d9b3 100644 GIT binary patch delta 20 acmX@fb&`vFIWI340}zy{>u%(>V+8;-4FpC2 delta 20 acmX@fb&`vFIWI340}x!xkln~_#|i*9;{?|L diff --git a/osinaweb/osinacore/migrations/__pycache__/0035_business_business_id.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0035_business_business_id.cpython-311.pyc index 26783491603836089b88a3f4ebadc719ed202963..48ba828091d23141500ea90ca1405181cd7c13e0 100644 GIT binary patch delta 20 ZcmZo=Z)N9R&dbZi00d>~x*NHxm;ovO1M&a> delta 20 acmZo=Z)N9R&dbZi00h@EWH)kGF#`ZC)dYh8 diff --git a/osinaweb/osinacore/migrations/__pycache__/0036_staffposition_alter_staffprofile_position.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0036_staffposition_alter_staffprofile_position.cpython-311.pyc index 9239ec55d7e984d6b7fd8d372748a9ed151be44e..e81f327164123342e7972fb686d2194363766374 100644 GIT binary patch delta 20 acmcb}d6AQQIWI340}zy{>u%&e#sUB~Ct*9!&dbZi00d>~x*NHfm;ovq1Bd_s delta 20 acmeBW>t*9!&dbZi00h@EWH)j%F#`ZC@dOzF diff --git a/osinaweb/osinacore/migrations/__pycache__/0038_staffprofile_staff_position.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0038_staffprofile_staff_position.cpython-311.pyc index c44443ccb1d58fa11e538a4f61ad05a9141ca3fd..5fff8941a87244e7aab137973f6aa9fa0e076a4f 100644 GIT binary patch delta 20 acmZ3?v6zEu%(hU;zLv)C11| delta 20 acmZ3?v6zEu%&WX8`~*tOP6o delta 20 acmX@aafpL^IWI340}x!xkln~_&H?~7f&{$) diff --git a/osinaweb/osinacore/migrations/__pycache__/0040_staffprofile_staff_id.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0040_staffprofile_staff_id.cpython-311.pyc index 690d8188f517df3a094dde54c07486a152a7f696..2c36b4b968caffa2e478d2fcb883e75a9f36ceaa 100644 GIT binary patch delta 20 ZcmZo=Z)N9R&dbZi00d>~x*NHxm;ovO1M&a> delta 20 acmZo=Z)N9R&dbZi00h@EWH)kGF#`ZC)dYh8 diff --git a/osinaweb/osinacore/migrations/__pycache__/0041_dailyreport.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0041_dailyreport.cpython-311.pyc index 4cd26cc3d113154a1b79d5141b66795a2fc350b4..53d6df26c2f854d255af7afacdabce0e1e7494f4 100644 GIT binary patch delta 20 acmcc3eVdzmIWI340}zy{>u%(}zzP630R;X4 delta 20 acmcc3eVdzmIWI340}x!xklo0AffWEd*9DIN diff --git a/osinaweb/osinacore/migrations/__pycache__/__init__.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/__init__.cpython-311.pyc index 348571cac362e1fb4b05714231ce181a4d4192f9..c6a3a909e6edc12b1b7fe70cf09d2258d07ae971 100644 GIT binary patch delta 19 Zcmcb_c!`mFIWI340}zy{>rUi84gfF$1gZc4 delta 19 Zcmcb_c!`mFIWI340}x!xke$eV8~`&%1v>x$ diff --git a/osinaweb/osinaweb/__pycache__/__init__.cpython-311.pyc b/osinaweb/osinaweb/__pycache__/__init__.cpython-311.pyc index 5cb10b0de0958832e0878995455792d88e875b5b..84bc3c81776e0cc75d81551babd5797f1e5079c7 100644 GIT binary patch delta 19 ZcmX@cc#M&IIWI340}zy{>rUj}4FE1i1cm?r delta 19 ZcmX@cc#M&IIWI340}x!xke$fA8vrqj1s4DS diff --git a/osinaweb/osinaweb/__pycache__/settings.cpython-311.pyc b/osinaweb/osinaweb/__pycache__/settings.cpython-311.pyc index cf406f3f54bf6e333fd147516191e0a247432c12..2f717b7299c4d87f9c324d62f1126929710cef3e 100644 GIT binary patch delta 20 acmca2aYcfAIWI340}zy{>u%)s9KZMGo2pG)pV}nmCO5fBOcPC0=hAhxwH0S=tHu^-TAOBFuoq`tn=EZ6 z6hQ|*h#;igpq=(1FS^3qs5sbQFWtk?7v)?y+k;R31#$-4V2r`e`Q8+|J?y~w-0%JT z_@2W(=RP0%;auC7t*y-xAD_jN#;|v-%_DC-jd@+>w(Q)0&uChh6rvdO_t)OI^Xr_- z+61S*c;b5Okfg8pw8xq}Gi6LElF@9mEKKjPyuP?oKY8$2;R!zNvDzw0GgI>qFG%r? zXV+Z`mpourJKCG)Rtn2k=SqdkhFR*+WbMD?qmHrQYX4%P%uU5BODl7iii@RBj1^=4 z-^rta|M$e@*RAu#OO-`~_b3;OE1CGrGl%=7V^2B5cUV4ezC2KM-QlIo=W=he`LXZw z-kiK&c>{ZIesJ4UP1pKrgBFA-gqc$atVwe2#_i$WLMlQToAU(T6> zYK-G$wUc8N>+g~OMGbJ~cQx3AeLBny-J`g3X4)U*eAXYxBd^;1eO05jwD~@Pv;}Dj zY34^YfGXJ++ia)tW7|mr;}(ol7-t&lK|AfOo~oU#Un7vRAVnd?LOIj&2XCM!(&%w$ zbCM=clCfC=c?WOc)5E!svfWiQ~atQUqyYnZ=NRGg)1+x@pSrQFh4a0%;Q&c@ddPfM1S};ms zl%>$n-7rM!6&mZ?)(A{kFhOC09YOsavnApgJc{+ZyLQvLd7VJN1^pEISsLXYTNdY; zsP_;^SdgHQVDIJ3ZcUunc}<*8Nz--opOx)^TCGrba_bC%Aq$2m46$?E_AQ!!M*Kt5 zIpYn6I37dHBi;y#hIPargN^I(k@=VAa}>DX3<>!l;^~lRv4D6tr1AP|U^7O_ni z3v}zkc>(K+E;`&p{0{loh=1#%gFh_P<6+@1Al^deQCO%yg*E$rerUQPUdNo0Gn*nJ z5JMb^h}hMLSn@71-ymZ}^d9^?OG@KtMqWheSdmH6HF;X$59dYYSH#~CSy4fM$^0|o s>-*GxDer_&zi6kUi#%14Co!DGa8?oFtiqPjf78WQ%|J8?xB1`u5196M*#H0l delta 766 zcmXX^O=}Zj5Z*7_Zem&lHJgw9&Ne3C!Kl@?dTWsc)0UQKHx;YcP$}A=ru7r8Af-JB z)hXJe1u>#MDD@(q^wNR~8;GKw^`M8EUm(6Sn-|`PnR%XhX5MAr#5_UM_waWC2R&y5hr6$=xON4V6= z`era4gyC>@XNvz3nkb)}xmcR6j9)I7D+8&~^^o#egrBkd!3EaJvwP*647cKUc^Cf0 z6^3C|)m^?rXtZ(LQ%x` zUH7{(U^q(aewuXv%9`RFq`1r9JiO#Ar=N6rQo1Ik>r%RLh}gr}Wp`8DLrPDMuJqUA z8LvC*Nx7Pot4p~?uM77Ki;b=t&F2ijmJtyLS?RZdTLw&|_nIcdLBdO>>2Fpf=@=v4 zm?-^XHa*TjhZz&kvQorCqK9zILZ{n=s}{cfy=Ao0h7}%aYFM7(DVwFN?W&($g9~<4 zyw2o(HX2OYxXPl9#xDpzQhkeXM*@xaC6FCXSpK5N!Lws>ULf~T0sg9r=n5{pCGqz} z^Glxw-HC|fjEFke-%EJP!Krr~oVrSt4^;W(G~K7+XlE=?Cil5uV-_BEI?_D*>HY&i C+R)Mf diff --git a/osinaweb/osinaweb/__pycache__/wsgi.cpython-311.pyc b/osinaweb/osinaweb/__pycache__/wsgi.cpython-311.pyc index da4a05faea2afa3786d13ede0e44ddf691451b8f..678b54dba7e5d68befc56f24bf36269912e57409 100644 GIT binary patch delta 20 acmcb_dWn^LIWI340}zy{>u%&e&IAB8z68_& delta 20 acmcb_dWn^LIWI340}x!xklo0AoCyFqlm%q~ diff --git a/osinaweb/static/dist/output.css b/osinaweb/static/dist/output.css index 128a53d6..a9978999 100644 --- a/osinaweb/static/dist/output.css +++ b/osinaweb/static/dist/output.css @@ -792,6 +792,10 @@ video { height: 100px; } +.h-\[10px\] { + height: 10px; +} + .h-\[13px\] { height: 13px; } @@ -1335,6 +1339,11 @@ video { background-color: rgb(187 247 208 / var(--tw-bg-opacity)); } +.bg-green-400 { + --tw-bg-opacity: 1; + background-color: rgb(74 222 128 / var(--tw-bg-opacity)); +} + .bg-green-700 { --tw-bg-opacity: 1; background-color: rgb(21 128 61 / var(--tw-bg-opacity)); diff --git a/osinaweb/static/js/calculate-project-time.js b/osinaweb/static/js/calculate-project-time.js new file mode 100644 index 00000000..5fc5132a --- /dev/null +++ b/osinaweb/static/js/calculate-project-time.js @@ -0,0 +1,40 @@ +const startDateElement = document.querySelector(".startDate"); +const endDateElement = document.querySelector(".endDate"); + +const mainBar = document.querySelector(".mainBar"); +const progressBar = document.querySelector(".progressBar"); + +const startDate = new Date(startDateElement.textContent); +const endDate = new Date(endDateElement.textContent); + +// Get the current date +const currentDate = new Date(); + +if (endDate <= currentDate) { + // If the end date is before or equal to the current date + progressBar.style.width = "100%"; + progressBar.classList.add('bg-red-500'); +} else if (startDate > currentDate) { + // If the start date is after the current date + progressBar.style.width = "0%"; +} else { + // Calculate the passed time in milliseconds + const passedTime = currentDate - startDate; + + // Calculate the total project duration in milliseconds + const totalDuration = endDate - startDate; + + // Calculate the percentage of passed time + const percentage = (passedTime / totalDuration) * 100; + + // Set the width of progressBar based on the percentage + progressBar.style.width = percentage + "%"; + + if (percentage <= 50) { + progressBar.classList.add('bg-green-700'); + } else if (percentage <= 80) { + progressBar.classList.add('bg-yellow-400'); + } else if (percentage <= 100) { + progressBar.classList.add('bg-red-500'); + } +} \ No newline at end of file diff --git a/osinaweb/templates/details_pages/project-details.html b/osinaweb/templates/details_pages/project-details.html index f9bf37f9..e49c8319 100644 --- a/osinaweb/templates/details_pages/project-details.html +++ b/osinaweb/templates/details_pages/project-details.html @@ -88,6 +88,13 @@

{{project.project_id}}

{% endif %} + + +
+
+
+
+