From 3434dacbafa4bedb6c0facc8aa9f073a1e4d17ec Mon Sep 17 00:00:00 2001 From: Nataly-ab Date: Mon, 5 Feb 2024 15:06:38 +0200 Subject: [PATCH] New changes. --- osinaweb/db.sqlite3 | Bin 663552 -> 663552 bytes osinaweb/input.css | 8 + .../__pycache__/__init__.cpython-311.pyc | Bin 199 -> 177 bytes .../__pycache__/admin.cpython-311.pyc | Bin 2800 -> 2778 bytes .../__pycache__/apps.cpython-311.pyc | Bin 576 -> 554 bytes .../custom_context.cpython-311.pyc | Bin 5397 -> 5379 bytes .../__pycache__/forms.cpython-311.pyc | Bin 941 -> 919 bytes .../__pycache__/models.cpython-311.pyc | Bin 21526 -> 21545 bytes .../__pycache__/views.cpython-311.pyc | Bin 78298 -> 77794 bytes .../__pycache__/0001_initial.cpython-311.pyc | Bin 3744 -> 3722 bytes ...ions_staffprofile_and_more.cpython-311.pyc | Bin 3889 -> 3867 bytes .../0003_milestone.cpython-311.pyc | Bin 1521 -> 1499 bytes .../__pycache__/0004_epic.cpython-311.pyc | Bin 1463 -> 1441 bytes .../0005_staffprofile_image.cpython-311.pyc | Bin 851 -> 829 bytes .../__pycache__/0006_note.cpython-311.pyc | Bin 1698 -> 1676 bytes ...ct_id_alter_project_status.cpython-311.pyc | Bin 1150 -> 1128 bytes ...8_alter_project_project_id.cpython-311.pyc | Bin 909 -> 887 bytes ...9_alter_project_project_id.cpython-311.pyc | Bin 893 -> 871 bytes .../0010_remove_note_date.cpython-311.pyc | Bin 739 -> 717 bytes ...r_alter_note_text_and_more.cpython-311.pyc | Bin 1839 -> 1817 bytes .../0012_projectrequirement.cpython-311.pyc | Bin 1323 -> 1301 bytes .../0013_projectfile.cpython-311.pyc | Bin 1433 -> 1411 bytes ...014_alter_projectfile_file.cpython-311.pyc | Bin 862 -> 840 bytes .../0015_projectcredentials.cpython-311.pyc | Bin 1442 -> 1420 bytes ...dentials_projectcredential.cpython-311.pyc | Bin 789 -> 767 bytes ...e_alter_project_start_date.cpython-311.pyc | Bin 1040 -> 1018 bytes .../0018_epic_status.cpython-311.pyc | Bin 938 -> 916 bytes ...date_alter_epic_start_date.cpython-311.pyc | Bin 998 -> 976 bytes .../__pycache__/0020_task.cpython-311.pyc | Bin 1922 -> 1900 bytes ...rprofile_business_and_more.cpython-311.pyc | Bin 2818 -> 2796 bytes ...ustomerprofile_customer_id.cpython-311.pyc | Bin 919 -> 897 bytes .../0023_task_assigned_to.cpython-311.pyc | Bin 1035 -> 1013 bytes .../0024_task_task_id.cpython-311.pyc | Bin 865 -> 843 bytes .../__pycache__/0025_status.cpython-311.pyc | Bin 1589 -> 1567 bytes ...e_status_user_status_staff.cpython-311.pyc | Bin 1167 -> 1145 bytes .../0027_alter_status_staff.cpython-311.pyc | Bin 1082 -> 1060 bytes ...8_remove_projecttype_color.cpython-311.pyc | Bin 749 -> 727 bytes .../0029_alter_reference_date.cpython-311.pyc | Bin 863 -> 841 bytes .../__pycache__/0030_tag.cpython-311.pyc | Bin 990 -> 968 bytes ...1_alter_staffprofile_image.cpython-311.pyc | Bin 869 -> 847 bytes .../__pycache__/0032_point.cpython-311.pyc | Bin 1474 -> 1452 bytes ...nt_date_workingon_and_more.cpython-311.pyc | Bin 1297 -> 1275 bytes ...nt_date_completed_and_more.cpython-311.pyc | Bin 1353 -> 1331 bytes .../0035_business_business_id.cpython-311.pyc | Bin 901 -> 879 bytes ...lter_staffprofile_position.cpython-311.pyc | Bin 1233 -> 1211 bytes ...move_staffprofile_position.cpython-311.pyc | Bin 781 -> 759 bytes ...taffprofile_staff_position.cpython-311.pyc | Bin 1059 -> 1037 bytes ...taffprofile_staff_position.cpython-311.pyc | Bin 1090 -> 1068 bytes ...0040_staffprofile_staff_id.cpython-311.pyc | Bin 901 -> 879 bytes .../0041_dailyreport.cpython-311.pyc | Bin 1499 -> 1477 bytes ...omerprofile_email_and_more.cpython-311.pyc | Bin 1261 -> 1239 bytes .../0043_businesstype.cpython-311.pyc | Bin 1026 -> 1004 bytes ...ove_business_business_type.cpython-311.pyc | Bin 753 -> 731 bytes .../0045_business_type.cpython-311.pyc | Bin 1055 -> 1033 bytes .../0046_task_requirement.cpython-311.pyc | Bin 1051 -> 1029 bytes .../0047_task_status_date.cpython-311.pyc | Bin 963 -> 941 bytes ...r_customerprofile_business.cpython-311.pyc | Bin 1110 -> 1088 bytes ...r_customerprofile_business.cpython-311.pyc | Bin 1078 -> 1056 bytes ...by_projectrequirement_date.cpython-311.pyc | Bin 1391 -> 1369 bytes ...051_alter_task_requirement.cpython-311.pyc | Bin 1075 -> 1053 bytes .../0052_note_project.cpython-311.pyc | Bin 1028 -> 1006 bytes .../0053_pointactivity.cpython-311.pyc | Bin 1310 -> 1288 bytes ...nt_date_completed_and_more.cpython-311.pyc | Bin 1002 -> 980 bytes .../0055_alter_point_status.cpython-311.pyc | Bin 1011 -> 989 bytes ...ter_pointactivity_end_time.cpython-311.pyc | Bin 878 -> 856 bytes ...otal_time_minutes_and_more.cpython-311.pyc | Bin 1181 -> 1159 bytes ..._total_time_hours_and_more.cpython-311.pyc | Bin 977 -> 955 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 210 -> 188 bytes osinaweb/osinacore/views.py | 84 +- .../__pycache__/__init__.cpython-311.pyc | Bin 198 -> 176 bytes .../__pycache__/settings.cpython-311.pyc | Bin 3156 -> 3134 bytes .../osinaweb/__pycache__/urls.cpython-311.pyc | Bin 13650 -> 13642 bytes .../osinaweb/__pycache__/wsgi.cpython-311.pyc | Bin 722 -> 700 bytes osinaweb/osinaweb/urls.py | 2 +- osinaweb/static/dist/output.css | 50 +- osinaweb/static/js/epics.js | 14 - osinaweb/static/js/fetch-epic-tasks.js | 126 ++- .../details_pages/project-details.html | 79 +- osinaweb/templates/epic-fetched-tasks.html | 246 +++--- osinaweb/templates/listing_pages/tasks.html | 813 +++++++++--------- osinaweb/templates/project-open-tasks.html | 272 ++++++ 81 files changed, 955 insertions(+), 739 deletions(-) delete mode 100644 osinaweb/static/js/epics.js create mode 100644 osinaweb/templates/project-open-tasks.html diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 29417acf0954f2c513c01e5ce15366cd59f9bad9..b31ab36ddaefdb277d2433b329fbd77b6a3efde3 100644 GIT binary patch delta 899 zcmaiyK}^$77{}YS-8weH$D6LHdw(bloqnQ&uD z0v?Qv7_-ESJCJzcpxL3u7~$##@xVAB61|9tA(#vgm=HT)g7M(td&ztG{lC2b_x*G8 zOm3dZJJ5;g=1yV)@m}}86o)-1Q(EvGGoZH8w>C!_3uCK~O~rc#Y_;^DcnNDgf%T#p zHa42Rt&FH~K^5Z(I0$(aW|MaV*^Dxx#9?IIFryh}P{Rc*Oe_^lo9J@`u~Z5_yRtHa;f3P zJSe26aGY}62nYL0*M;qZ6wlk(uE#%h2v`0 z$%$%A5@l5qC0P}v+GjYyeK8$R)vm0cZzPcxcU5*aJv`{FYEz;tsj;d`u5r-+w~Rkc zlZZp8%Cfp*I5pIEN)=^UO2~?&DhWweL@A+&>Rtn%hlPh4K#z~ryzjAc(MEzrL^r;z z+ut>>4`NZXr}0<7ST#*Eh4L8gtznfzppNBgm|MrD4zRs(?)B5Ld<`=)TKO67W%YLY z(0_nm;3xPF%HS*b3|2JzBK{T-IEJ8%wz7uPnFjvQ;vma+@RK`zgkDCyOnQ;pPM_I$ z#$JcdBGjk)H`b??(YlD)PtwLsVgaAkn)Bv7&fIT_5WVBQq5lP{Fn!1TqUVa*-5u;1 z83^?chPp!G@KAp!oQP(!*MyYNTey9Eh^Z^kz delta 543 zcmYk1KWGzS7{iGAO0!AcBE_&Y{HRpBX|olMSqi%g-aWU%E|ul+yUa3SmN9dIt?)rF zyoH~6)ABifG1$f=*k%sBNpLViumb^%U=xO3^5r^&6fuGj>Wx;}EX_3ppTLD0Xo*dl zZzN9R)QRM+xPa0NhJueMXWNZg*=#zkYTa%*R8^;C*PGQnOO4ZN+O@h|ugOiPR&O~( z`^ft4SQvanCwJ)ZSNIG*Jz<4NZEgiZbX<>0J^v1;9bmzKAjLWdSb|~?|6%)&?DxGU zQg;vIGPLg`@t<;sT)aCHms64Rmx9l zMMF2Osm0wgPZgpHQ$@&bSqPnx1ip_F8}YZ|li1DZC7}>Wg|_%U^hvfWbUCjqAIGHs zSeT5Cg~cKQ6CT8SaZ4PE_r+rD1(94~HO5|%FZP1lTyDbD&4Q{MsxcuOdZ}QQ@`jez kb;Bwk#C|)PjvQ7LjBy4{Uz@WV)tRf;ojIEnp9>$HzYILEAOHXW diff --git a/osinaweb/input.css b/osinaweb/input.css index c9028ebf..d52c032b 100644 --- a/osinaweb/input.css +++ b/osinaweb/input.css @@ -28,6 +28,14 @@ } +/* GIVE THIS CLASS TO THE SELECTED EPIC IN PROJECT DETAILS PAGE */ +.selectedEpic { + color: white !important; + font-weight: bold !important; +} + + + /* TO ANIMATE THE BURGER MENU IN THE FIXED HEADER */ /* Default state */ .burgerMenuLine { diff --git a/osinaweb/osinacore/__pycache__/__init__.cpython-311.pyc b/osinaweb/osinacore/__pycache__/__init__.cpython-311.pyc index 0d90ec5f6cdb5788d19b22e4129d8209bf8ad78c..d56b89c22021d5f021e20577a770548e2baa6c7f 100644 GIT binary patch delta 81 zcmX@kxRH^2IWI340}#v&37*JpYUSc$6%(Fcl&ug@l%JKFTv8m9U!0kj7?YP;4rZie XCFZ5)Lj=oHlOT-b{G!yDi4)8LD9#-F delta 103 zcmdnUc$|@YIWI340}zP4*g28gG$2Ypv^ce>SU&s nrxGNQm#CYPm6(^Fub-D%4(3C-V0L+G5=2pQeo?Ca#42+D7`!Dz diff --git a/osinaweb/osinacore/__pycache__/admin.cpython-311.pyc b/osinaweb/osinacore/__pycache__/admin.cpython-311.pyc index 8addf20ab0ace27dc5f4d592da562af903f79adf..805d0e6df36dff6bd54fb5911a2c6d4ff4b2f8bd 100644 GIT binary patch delta 86 zcmew$dP|gdIWI340}w2$Igt8jBkwU5D@PZrnDG3fY=wZL{H)aElH!>B;>^6nn7q_- dFe4=^F)uwIB3Pc91YsoS7p2B*R%SiR3IIx@AY}jm delta 108 zcmca5`azU;IWI340}w3VvL|)-M&4sA0pa?g#i>Qb`uW9~CCT}@`Y!p&rManjCB^!F ti6x0Sl^}_{MBS9E#Ju!;{k+t2FdxbVv&&PHAc~Uni&FJB^Rk|01psWBC`bSR diff --git a/osinaweb/osinacore/__pycache__/apps.cpython-311.pyc b/osinaweb/osinacore/__pycache__/apps.cpython-311.pyc index 7c70a641ba1cbc2ef8494943d03ee56dab9b943c..a3a923a9e01702fd01e0b39e9a18c630fddd916a 100644 GIT binary patch delta 85 zcmX@WvWkUwIWI340}#v&2~M4}kyn(_%E84dCOp3=TOpt*KPxr4q&OzOI5RIXCNH%d c%t*;f%uCOQ2$rWNK^V#TMX529ix|%V0F)XYaR2}S delta 107 zcmZ3*a)5<*IWI340}zP4*qJ(QBd;i9K$w1LacWVqetvOgNpgO!zDs^`X>Mv>NwL0P rVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9KF^uN`p$R6l diff --git a/osinaweb/osinacore/__pycache__/custom_context.cpython-311.pyc b/osinaweb/osinacore/__pycache__/custom_context.cpython-311.pyc index e469db85011bce0d54747511c6c45f1c91caa40b..c703e930371acfc9fd9fcca6c9a76b13fd7d39f3 100644 GIT binary patch delta 120 zcmbQL)vU$0oR^o20SK1W97yF5*vPk$*~-hsDkeO?C|e<*C_gJTxuiHIzc@25F(xmy z9Lz|`O3X{ohX|IZCP5g<`9-NQllfWn8GlW-XDMU(z`)MBc{|GzUdAPxV}u+SSwAqa MvYKq3FI>h50FBxxtN;K2 delta 138 zcmZqHnySUOoR^o20SLri>`a}uD(lta%paAUP-aO zUt&pOP9;bpFHtuoD={xUUq3Ik9L$Gu!R+$XB#5Hq{GwF-$v>I(8GlUHWGQ31z`l7g Y%MxD3MVmc@92l7|u#0c*6)s~0049DhEdT%j diff --git a/osinaweb/osinacore/__pycache__/forms.cpython-311.pyc b/osinaweb/osinacore/__pycache__/forms.cpython-311.pyc index 6eca4606ea2db8a098289ddbcfd97535919f8f09..a473788ba383a939be35982a4c2ff2211995ba1c 100644 GIT binary patch delta 86 zcmZ3>KAoL+IWI340}yPSFgrD9Bky%aD@PZrnDG3fY=wZL{H)aElH!>B;>^6nn7q_- dFe4=^F)uwIB3Pc91YsoS7p2B*Hesq{1OV^E9`OJG delta 108 zcmbQvzLuSLIWI340}zP4*qQ3Sk@q@dK)8NracWVqetvOgNpgO!zDs^`X>Mv>NwL0P sVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9Oa!i$s0N_X_mH+?% diff --git a/osinaweb/osinacore/__pycache__/models.cpython-311.pyc b/osinaweb/osinacore/__pycache__/models.cpython-311.pyc index 527ae3a18c07536a594dec061543c9f03ab20fda..fa80e075b4464425b875e3797719dde99a639fcc 100644 GIT binary patch delta 5229 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 diff --git a/osinaweb/osinacore/__pycache__/views.cpython-311.pyc b/osinaweb/osinacore/__pycache__/views.cpython-311.pyc index adceb7f8a66c2dab1b6408279b5b6df4984858b8..4a3f2167ff8c45697f1c0b15c377dc071c4f144f 100644 GIT binary patch delta 10151 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 delta 9978 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 diff --git a/osinaweb/osinacore/migrations/__pycache__/0001_initial.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0001_initial.cpython-311.pyc index 7a09ecc677f2e9d26ac276ef6022e444a60303ae..66cdc2410d32a58e223cdc9810a8c7fcc5b68577 100644 GIT binary patch delta 97 zcmZ1=+a=4poR^o20SM-X1gGBK$lJ~78th^f6P{m`tq@R@pOu`Yy}k++*OI#WNiIJKx)KfgG$Bso7<-z7h}G&eP`q*&iC zu_Q645+sqAsGE|Nn3tZfpO;z==0mw)c6n+NL{V~nQL27!W_nR#NoIatvHs?}oNHMC D%>OJ# diff --git a/osinaweb/osinacore/migrations/__pycache__/0002_projecttype_alter_business_options_staffprofile_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0002_projecttype_alter_business_options_staffprofile_and_more.cpython-311.pyc index 75f2295600044425ec33af4d4b34c8f631d6ff1e..80a35a2ce8cc36d1bcc0011d6d6d947a1cbc41ea 100644 GIT binary patch delta 97 zcmdleH(QQ(IWI340}#v&2~OR*k@py?(%jU%l45$h)4|HPpo_COp3=TOpt*KPxr4q&OzOI5RIXCNH%d o%t*;f%uCOQ2$rWNK^V#TMX52lndwD|C7Jno#W9=3S#B``0D7(?^#A|> delta 119 zcmcc3{gIn@IWI340}zP4*qNHUk#{|FbhdtIacWVqetvOgNpgO!zDs^`X>Mv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFa%vTrz Do!~3m 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 1734fa607bf00edc156f0fa6077822ecf35b3205..7e1f431cc6fa56f38020f4b38fd33ee44bbb9705 100644 GIT binary patch delta 97 zcmcc2wwH}}IWI340}#v&2~M51k@oMv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFa*^~& diff --git a/osinaweb/osinacore/migrations/__pycache__/0006_note.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0006_note.cpython-311.pyc index b55069cca1ff96707003c7dc4da2c5e17b939034..c9ed9d9a3f4e308952cf82efcb26e7d004b32614 100644 GIT binary patch delta 97 zcmZ3)+r!JdoR^o20SM-X1gGBL$ji&(8sK6T6P{m`tq@R@pOu`Xnfk(ZYxI!!;cIJKx)KfgG$Bso7<-z7h}G&eP`q*&iC zu_Q645+sqAsGE|Nn3tZfpO;z==0mw)c6n+NL{V~nQL27!W_nR#NoIatvHs?G7F{L) DmXIpI 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 a0dd128098b5305647b54360c70b0c7971e0b0e7..179f3efc18aaa891d566e4fdbec0fca9443849ba 100644 GIT binary patch delta 97 zcmeyz@q&YQIWI340}#v&2~J(Mk++4(wb;cfCOp3=TOpt*KPxr4q&OzOI5RIXCNH%d o%t*;f%uCOQ2$rWNK^V#TMX52lndwD|C7Jno#W9=TFim0v0E%NIrT_o{ delta 119 zcmaFC@sERdIWI340}zP4*qPeDk++2@x>G;2IJKx)KfgG$Bso7<-z7h}G&eP`q*&iC zu_Q645+sqAsGE|Nn3tZfpO;z==0mw)c6n+NL{V~nQL27!W_nR#NoIatvHs?3Op_P^ D4!`dLVk@q8Gbd`Q+acWVqetvOgNpgO!zDs^`X>Mv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFa 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 e67ea405434b65d4c809d64d6d7c2ef745d7afaa..db07911499789b85601382cdc35fbab7c181c1a3 100644 GIT binary patch delta 97 zcmey%_MDA(IWI340}#v&2~ORyk@pd!Yl@3iOn81#wn9KrepYI7NpVbmab{j(OkQd^ on30l|n3tXp5iCzlf-sWvi&A59Gt-L_OEUBGieol=F&Q%g0HP%${{R30 delta 127 zcmaFP_Lq%!IWI340}zP4*qOR)Bkv=|_$vL-;?$yI{ruw0lH~kceV6>?(%jU%l45IWI340}zP4*qQ3Hk++C3x=25?IJKx)KfgG$Bso7<-z7h}G&eP`q*&iC zu_Q645+sqAsGE|Nn3tZfpO;z==0mw)c6n+NL{V~nQL27!W_nR#NoIatvHs>GjGT-B D#|JBA 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 8d8e6f36802edd5c2adbc67582b5e37584eaf15a..1bfcc1b727b1d77327fd3276b7bbc4c470fb6422 100644 GIT binary patch delta 97 zcmZ3_HMv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFaMv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFa`WEi$eYR>ovR;OoLW?@pI@9=lANEb?~Mv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFa`Zmq$eY9*U7{aaoLW?@pI@9=lANEb?~rB6IJKx)KfgG$Bso7<-z7h}G&eP`q*&iC zu_Q645+sqAsGE|Nn3tZfpO;z==0mw)c6n+NL{V~nQL27!W_nR#NoIatvHs@Uj4F%( D*VHS; 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 e0a704eb05a12df6e6ba86b2a19e5bcb05dc86a4..b8195a3ff5bd932ce5670f01d221cd288295e9d1 100644 GIT binary patch delta 97 zcmbQh@r#{zIWI340}#v&2~G{)$g9ufTJ2&L6P{m`tq@R@pOuMv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFaMv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFa{*0Y>IWI340}zP4*qJJ|k(Y-lx?4ZAIJKx)KfgG$Bso7<-z7h}G&eP`q*&iC zu_Q645+sqAsGE|Nn3tZfpO;z==0mw)c6n+NL{V~nQL27!W_nR#NoIatvHs>brXofF DnLsM_ diff --git a/osinaweb/osinacore/migrations/__pycache__/0020_task.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0020_task.cpython-311.pyc index 4e2ba03ca3920b36d5e6191fb09d2558245413a9..8aa237026c22e1bfd3cde333f122120e167fa1ee 100644 GIT binary patch delta 97 zcmZqTf5XSSoR^o20SM-X1gAdQ$h)7#HNeFxCOp3=TOpt*KPxr4q&OzOI5RIXCNH%d n%t*;f%uCOQ2$rWNK^V#TMX52lndwD|C7Jno#W9=JS)-W%c{n4P delta 119 zcmaFE*Tm1eoR^o20SLri>`Xnjk#|2!beeu>acWVqetvOgNpgO!zDs^`X>Mv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFa`X1&$h(^@x>G;2IJKx)KfgG$Bso7<-z7h}G&eP`q*&iC zu_Q645+sqAsGE|Nn3tZfpO;z==0mw)c6n+NL{V~nQL27!W_nR#NoIatvHoUW_WR5L D?vyL~ 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 35f5a3be0157b73e9ce71908123b323881b5ab5c..62bf9f9db4aa1a40efd7cb863a4c90fde2a591a0 100644 GIT binary patch delta 97 zcmbQv-pJ0ooR^o20SM-X1gD`dLWk@p8Mv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFaVo7FxUUAIkl}t&D02>t|*Z=?k delta 120 zcmey$-p#?coR^o20SLri>`eW}xRK9+DY{5Mv^ce>SU&srxGNQm#CYPm6(^Fub-D%4(3C-V0L+G5=2pQeo?A^Zf1H>Vo7FxUa|h>$xKO% E0P7$t-v9sr 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 20ba57b88f3304e8a695acce7080df013ba66145..d481f6069032d09e28e3a6e39a4e2cc1ab4b7f27 100644 GIT binary patch delta 97 zcmaFJcAAZMIWI340}#v&2~J(Hk@pg#YlMqcOn81#wn9KrepYI7NpVbmab{j(OkQd^ on30l|n3tXp5iCzlf-sWvi&A59Gt-L_OEUBGieolgF{v{G0Dpxee*gdg delta 119 zcmX@j_K=NtIWI340}zP4*qJ(QBkv`~=sf+<;?$yI{ruw0lH~kceV6>?(%jU%l45Mv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFa()oR^o20SM-X1gF+*`YDH$lJ;k-KZa0oLW?@pI@9=lANEb?~`jDm~+ D)afga 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 91d64392d13557dee9f3139ce5235b39243896eb..f694c5fa22b6ee28bbfd764f6c9aeb5a99750d43 100644 GIT binary patch delta 97 zcmcc5c9M;EIWI340}#v&2~M52k@pOvYl4eaOn81#wn9KrepYI7NpVbmab{j(OkQd^ on30l|n3tXp5iCzlf-sWvi&A59Gt-L_OEUBGieomLFljRa0DD&>aR2}S delta 119 zcmX@fcAt%RIWI340}zP4*qPe1k@pN^beVo=acWVqetvOgNpgO!zDs^`X>Mv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFaOxlb9 D|Gq1F diff --git a/osinaweb/osinacore/migrations/__pycache__/0030_tag.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0030_tag.cpython-311.pyc index 946e1fad70531f3bb792ad132fd8ba4c3e8d8bcb..03ee3c9d39cbbbb474e6c38b975f6b01c8efe1be 100644 GIT binary patch delta 97 zcmcb|euABMIWI340}#v&2~L&V$ZO2x>hEF|6P{m`tq@R@pOu(CTB(f Dij^wK diff --git a/osinaweb/osinacore/migrations/__pycache__/0031_alter_staffprofile_image.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0031_alter_staffprofile_image.cpython-311.pyc index bee67bf478db97b703d4415bac1b436e26380c99..bc15f5c22ec31f0bc32320f86e71bf1ce65a66b3 100644 GIT binary patch delta 97 zcmaFLcAkxQIWI340}#v&2~J(Sk@pm%Yl@3iOn81#wn9KrepYI7NpVbmab{j(OkQd^ on30l|n3tXp5iCzlf-sWvi&A59Gt-L_OEUBGieok#F&Q%g0D=7@iU0rr delta 119 zcmX@l_LPlxIWI340}zP4*qJ(UBkw83=qmlt;?$yI{ruw0lH~kceV6>?(%jU%l45?(%jU%l45QnoJx>HUZQSFR$^XyzJ6Y6IhYUSg4yM%Nf1TJ`9-PvxtZxji6xo&dByshgP0#O F0suIBEa(6L 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 41214963489ec1de5d5b3eb90781a9dbb8ba6121..fdd5859a62bfad95df7efbf660e426d4cc48de62 100644 GIT binary patch delta 97 zcmZo=f6vCdoR^o20SM-X1g9R}$orPjHNnLyCOp3=TOpt*KPxr4q&OzOI5RIXCNH%d n%t*;f%uCOQ2$rWNK^V#TMX52lndwD|C7Jno#W9;hnG6^KeZnKE delta 119 zcmaFQ*2>PioR^o20SLri>`dLbk@qcQbeVo=acWVqetvOgNpgO!zDs^`X>Mv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFaOn81#wn9KrepYI7NpVbmab{j(OkQd^ on30l|n3tXp5iCzlf-sWvi&A59Gt-L_OEUBGieomLFwbQK0E^Zn8~^|S delta 119 zcmdnZd6AQMIWI340}zP4*qOR_Bkvie=x+Vc;?$yI{ruw0lH~kceV6>?(%jU%l45`cwv$lK2tU8f&foLW?@pI@9=lANEb?~Sj@q@oR^o20SLri>`Z0e$m_=xU8^5joLW?@pI@9=lANEb?~-N8IJKx)KfgG$Bso7<-z7h}G&eP`q*&iC zu_Q645+sqAsGE|Nn3tZfpO;z==0mw)c6n+NL{V~nQL27!W_nR#NoIatvHs>&Oihdc Dkg_X9 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 bed3a79b6638ccae50f557989e0678bc1a5f4bfb..be5bdb98b4f778ecd33e33c4617dc627952fd8d6 100644 GIT binary patch delta 105 zcmZo=f6vCdoR^o20SM-X1g9R_$oq!TGttE=COp3=TOpt*KPxr4q&OzOI5RIXCNH%d w%t*;f%uCOQ2$rWNK^V#TMX52lndwD|C7Jno#W4m3CI*ug8AUedFiA230HNk3IsgCw delta 119 zcmaFQ*2>PioR^o20SLri>`dLTk@pQ_bh&Mv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFa8ga7~l delta 119 zcmaFE-o(MXoR^o20SLri>`ay4$m`1#ou?mKoLW?@pI@9=lANEb?~04yLQIsgCw delta 119 zcmeC=n9sqxoR^o20SLri>`Z0c$m_`zov$BSoLW?@pI@9=lANEb?~`eW|xRKA1DY{5Mv^ce>SU&srxGNQm#CYPm6(^Fub-D%4(3C-V0L+G5=2pQeo?A^Zf1H>Vo7FxUa|h>DNKco E0Kk|ll>h($ diff --git a/osinaweb/osinacore/migrations/__pycache__/0047_task_status_date.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0047_task_status_date.cpython-311.pyc index 5610a82c99b8001318df7eaa3a5d391757c16671..63084076f546e3d276c51e88d9d68c447b34a3a2 100644 GIT binary patch delta 97 zcmX@izLuSLIWI340}w2$IgomKBQGnHYmAFkOn81#wn9KrepYI7NpVbmab{j(OkQd^ on30l|n3tXp5iCzlf-sWvi&A59Gt-L_OEUBGieonCGKDb$0Bn9Epa1{> delta 119 zcmZ3>ewdwiIWI340}zP4*qORxBQGmcbdi2&acWVqetvOgNpgO!zDs^`X>Mv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFas~GXMYp delta 119 zcmX@WagBp_IWI340}zP4*qJK7kvD@Wx=Ol^z+ Du5>G% diff --git a/osinaweb/osinacore/migrations/__pycache__/0049_alter_customerprofile_business.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0049_alter_customerprofile_business.cpython-311.pyc index 29d9e8ad9f3dc6025580749c03a9a9d30c1cb25f..aeba789d2cae330561ed28fb8dd440e313e31fce 100644 GIT binary patch delta 97 zcmdnSv4DejIWI340}w2$Igl#1kvEvhHOs{+COp3=TOpt*KPxr4q&OzOI5RIXCNH%d o%t*;f%uCOQ2$rWNK^V#TMX52lndwD|C7Jno#W9F-LI3~& delta 119 zcmcb~^`47&IWI340}zP4*qJK2kynH{da8bCacWVqetvOgNpgO!zDs^`X>Mv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFaQOqq-T Dg`eW_xRKAADLPL-v^ce>SU&srxGNQm#CYPm6(^Fub-D%4(3C-V0L+G5=2pQeo?A^Zf1H>Vo7FxUa|h>KBfdl E0N_b0zW@LL diff --git a/osinaweb/osinacore/migrations/__pycache__/0053_pointactivity.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0053_pointactivity.cpython-311.pyc index ac6690320ee310b88def17cd9af5bbe40a20b4ca..6e281c452c56f4fcf13c063823b2be7b285a7282 100644 GIT binary patch delta 97 zcmbQo)xpKPoR^o20SK1W97uh)k(Z6xHPXc@COp3=TOpt*KPxr4q&OzOI5RIXCNH%d o%t*;f%uCOQ2$rWNK^V#TMX52lndwD|C7Jno#W9=nm^Uy20A5}r+5i9m delta 119 zcmeC+n#aYvoR^o20SLri>`cABk(Z4*I$uAuIJKx)KfgG$Bso7<-z7h}G&eP`q*&iC zu_Q645+sqAsGE|Nn3tZfpO;z==0mw)c6n+NL{V~nQL27!W_nR#NoIatvHs==<_(Mh DnByxz diff --git a/osinaweb/osinacore/migrations/__pycache__/0054_remove_point_date_completed_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0054_remove_point_date_completed_and_more.cpython-311.pyc index 0aceb8bd4ed8fdb7c15d2fae90c3cdd52b38bfe8..fe9d9f1c37b5cc8522706b97008107071fad2ca8 100644 GIT binary patch delta 97 zcmaFGeubTPIWI340}w2$Igq+}BQFP&Yk`YZOn81#wn9KrepYI7NpVbmab{j(OkQd^ on30l|n3tXp5iCzlf-sWvi&A59Gt-L_OEUBGieokxFjX-E0Es~)6aWAK delta 119 zcmcb@{)(M?(%jU%l45V!Z delta 119 zcmcc1{+XS3IWI340}w3VvL{u3Bd--xbcudwacWVqetvOgNpgO!zDs^`X>Mv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFaB;>^6nn7q_- oFe4=^F)uwIB3Pc91YsoS7p2DJW~LVQb`uW9~CCT}@`Y!p&rManjCB^!F zi6x0Sl^}_{MBS9E#Ju!;{k+t2FdxbVv&&PHAc~Uni&FJ-Gt-L_OEUBGiuE@uGnq01 E06)|$ApigX diff --git a/osinaweb/osinacore/migrations/__pycache__/0057_point_total_time_hours_point_total_time_minutes_and_more.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/0057_point_total_time_hours_point_total_time_minutes_and_more.cpython-311.pyc index e25551a401c3aaddd988a700bf4d1f642f650d8e..64e208ca46b4d45546ccc9939eea768882e8ecfe 100644 GIT binary patch delta 97 zcmbQs+0MzkoR^o20SK1W97z4Nk++G-wZ+9MCOp3=TOpt*KPxr4q&OzOI5RIXCNH%d o%t*;f%uCOQ2$rWNK^V#TMX52lndwD|C7Jno#W9;-F>Pi90Fi+t{r~^~ delta 119 zcmZqYoXg3(oR^o20SK0F*^_#0BX1K^^ep|*;?$yI{ruw0lH~kceV6>?(%jU%l45Mv>NwL0P zVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh@#~DqE!9d%=DtflFaoT diff --git a/osinaweb/osinacore/migrations/__pycache__/__init__.cpython-311.pyc b/osinaweb/osinacore/migrations/__pycache__/__init__.cpython-311.pyc index 546c37acebe6b26fb7c64797400c6f0b28001f1f..1b432b03bde3173e76daa7d1475ae4905ec723c9 100644 GIT binary patch delta 92 zcmcb_xQCH@IWI340}#v&37*Jp>gw-e6%(Fcl&ug@l%JKFTv8m9U!0kj7?YP;4rZie iCFZ5)Lj=oHlOT-b{G!yD+|2Z%#FEVXyyBRNv&{jJcp=LG delta 114 zcmdnPc!`mFIWI340}zP4*g28gG&)s3v^ce>SU&s yrxGNQm#CYPm6(^Fub-D%4(3C-V0L+G5=2pQeo?A^Zf1H>Vo7FxUa|hfR&xN~gem3# diff --git a/osinaweb/osinacore/views.py b/osinaweb/osinacore/views.py index e2adebcc..fed3176d 100644 --- a/osinaweb/osinacore/views.py +++ b/osinaweb/osinacore/views.py @@ -234,6 +234,30 @@ def staff_positions(request): return render(request, 'listing_pages/staff-positions.html', context) +#FETCH EPIC RELATED TASKS +def get_tasks(request, epic_id): + epic = get_object_or_404(Epic, id=epic_id) + related_tasks = Task.objects.filter(epic=epic).order_by('-id') + + context = { + 'epic': epic, + 'related_tasks': related_tasks, + } + + return render(request, 'epic-fetched-tasks.html', context) + + +# TO DISPALY ALL THE OPEN TASKS OF THIS PROJECT +def open_tasks_for_project(request, project_id): + project = Project.objects.get(pk=project_id) + open_tasks = Task.objects.filter(project=project, status='Open').order_by('-id') + + context = { + 'project': project, + 'open_tasks': open_tasks, + } + + return render(request, 'project-open-tasks.html', context) @@ -244,29 +268,13 @@ def staff_positions(request): @login_required def detailed_project(request, project_id): project = get_object_or_404(Project, project_id=project_id) - epics = Epic.objects.filter(project=project) - latest_epic = Epic.objects.filter(project=project).last() + epics = Epic.objects.filter(project=project).order_by('-id') project_notes = Note.objects.filter(project=project).order_by('-id') - if latest_epic: - epics = epics.exclude(pk=latest_epic.pk) - - selected_epic_id = request.GET.get('epic_id') - - if selected_epic_id: - selected_epic = get_object_or_404(Epic, id=selected_epic_id) - related_tasks = Task.objects.filter(epic=selected_epic) - else: - selected_epic = None - related_tasks = [] - context = { 'project': project, 'epics': epics, - 'selected_epic': selected_epic, - 'related_tasks': related_tasks, - 'latest_epic': latest_epic, 'project_notes' : project_notes, } @@ -656,48 +664,6 @@ def user_recent_activities_modal(request, user_id): -#FETCH EPIC RELATED TASKS -def get_tasks (request, epic_id): - epic = get_object_or_404(Epic, id=epic_id) - related_tasks = Task.objects.filter(epic_id=epic).order_by('-id') - - context = { - 'epic': epic, - 'related_tasks': related_tasks, - } - - return render(request, 'epic-fetched-tasks.html', context) - - -# TO FETCH THE LATEST EPIC AND ITS TASKS -def get_latest_epic(request, project_id): - try: - project = get_object_or_404(Project, id=project_id) - latest_epic = Epic.objects.filter(project=project).order_by('-id').first() - - if latest_epic: - related_tasks = Task.objects.filter(epic=latest_epic) - else: - related_tasks = [] - - context = { - 'latest_epic': latest_epic, - 'related_tasks': related_tasks, - } - - return render(request, 'epic-fetched-tasks.html', context) - except Http404: - # Handle case where the specified project does not exist - return HttpResponseServerError("Project not found") - except Exception as e: - # Log the error or return a specific error response - print(f"An error occurred: {str(e)}") - return HttpResponseServerError("Internal Server Error") - - - - - #Save Functions diff --git a/osinaweb/osinaweb/__pycache__/__init__.cpython-311.pyc b/osinaweb/osinaweb/__pycache__/__init__.cpython-311.pyc index 20da87145ab0360ad93e73465b77182e37343a37..1dd63b9dd56261aef819f0a8f968f4116f71bb68 100644 GIT binary patch delta 80 zcmX@cxPg&-IWI340}#v&37*JpYU%7^6%(Fcl&ug@l%JKFTv8m9U!0kj7?YP;4rZie SCFZ5)Lj=oHlMsxF{pJ7)+8m1j delta 102 zcmdnMc#M&IIWI340}zP4*g28g)IU-`v^ce>SU&s krxGNQm#CYPm6(^Fub-D%4(3C-V0L+G5=0S*F|pDd0P)r&(*OVf diff --git a/osinaweb/osinaweb/__pycache__/settings.cpython-311.pyc b/osinaweb/osinaweb/__pycache__/settings.cpython-311.pyc index afac2d7f346303b4e19bec4c4b2cb48a612e157e..51960a6271bb3b38514ee660bf0cd223031c3fc1 100644 GIT binary patch delta 85 zcmca2u}^|`IWI340}#v&2~J(Vkynq)(%Ho-COp3=TOpt*KPxr4q&OzOI5RIXCNH%d Y%t*;f%uCOQ2$rWNAsCyxxK1$w0KF_8%K!iX delta 107 zcmdldaYcf6IWI340}z}$vL{t_Bd;Epf24kBacWVqetvOgNpgO!zDs^`X>Mv>NwL0P pVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh$0YUa|zceMgZQLCm;X- diff --git a/osinaweb/osinaweb/__pycache__/urls.cpython-311.pyc b/osinaweb/osinaweb/__pycache__/urls.cpython-311.pyc index ddafd22a1424681e0c94609fd5bbda7278262614..0b0167ad48eab3d5ebba3956a1da72ae0a0ddd96 100644 GIT binary patch delta 181 zcmcbVbt;Q*IWI340}wdwKajdXWh0-un4?C1L26!nNn&w!aeP{SQG7vBepYI7iM~x{ zUWpZy6Q7x4r+-TfyUNWOV#@?9?Om*5!t;x=6#^joi(~SOGxHK-@>0vejFhazy!3pC oV0mg1g0VSP{W*(}@rKYVrhykC3NEk|USuh}!cw?7Oy>^=04lIXoB#j- delta 189 zcmX?=bt#K)IWI340}!mayeIXa@z0Bp@jtpET3 diff --git a/osinaweb/osinaweb/__pycache__/wsgi.cpython-311.pyc b/osinaweb/osinaweb/__pycache__/wsgi.cpython-311.pyc index a1a8da733ab10a5ec9e4dd2c3db3c54be49f3828..8261e340d2f76ece0fc0a430aaf0da020a97de0d 100644 GIT binary patch delta 84 zcmcb_x`&l_IWI340}#v&2~M54k@pv)rM-()On81#wn9KrepYI7NpVbmab{j(OkQd^ Xn30l|n3tXp5iCzlLNF$WG1UM7xq=>_ delta 106 zcmdnPdWn^HIWI340}zP4*qPe7k@pv)f2e+FacWVqetvOgNpgO!zDs^`X>Mv>NwL0P oVo737B}gJKQ8y(kF)uw|KQFZ$%!hKp?DEtkh$0YUvIA2M0MPa(*8l(j diff --git a/osinaweb/osinaweb/urls.py b/osinaweb/osinaweb/urls.py index c5cb47c8..7c0c0348 100644 --- a/osinaweb/osinaweb/urls.py +++ b/osinaweb/osinaweb/urls.py @@ -66,7 +66,7 @@ urlpatterns = [ #Fetch urls path('get_tasks//', views.get_tasks, name='get_tasks'), - path('get_latest_epic//', views.get_latest_epic, name='get_latest_epic'), + path('open_tasks_for_project//', views.open_tasks_for_project, name='open_tasks_for_project'), #Modals urls diff --git a/osinaweb/static/dist/output.css b/osinaweb/static/dist/output.css index 817adf27..8904b18c 100644 --- a/osinaweb/static/dist/output.css +++ b/osinaweb/static/dist/output.css @@ -1371,6 +1371,10 @@ video { border-bottom-width: 1px; } +.border-b-2 { + border-bottom-width: 2px; +} + .border-r { border-right-width: 1px; } @@ -1907,6 +1911,10 @@ video { padding-bottom: 2.25rem; } +.pb-1 { + padding-bottom: 0.25rem; +} + .pb-2 { padding-bottom: 0.5rem; } @@ -2010,6 +2018,10 @@ video { font-weight: 700; } +.font-extralight { + font-weight: 200; +} + .font-light { font-weight: 300; } @@ -2040,6 +2052,16 @@ video { color: rgb(59 130 246 / var(--tw-text-opacity)); } +.text-blue-600 { + --tw-text-opacity: 1; + color: rgb(37 99 235 / var(--tw-text-opacity)); +} + +.text-gray-300 { + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); +} + .text-gray-400 { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); @@ -2245,6 +2267,13 @@ video { } } +/* GIVE THIS CLASS TO THE SELECTED EPIC IN PROJECT DETAILS PAGE */ + +.selectedEpic { + color: white !important; + font-weight: bold !important; +} + /* TO ANIMATE THE BURGER MENU IN THE FIXED HEADER */ /* Default state */ @@ -2390,10 +2419,6 @@ video { background-color: rgb(239 68 68 / var(--tw-bg-opacity)); } -.hover\:bg-transparent:hover { - background-color: transparent; -} - .hover\:bg-white:hover { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity)); @@ -2580,10 +2605,6 @@ video { width: 300px; } - .l\:w-\[50\%\] { - width: 50%; - } - .l\:w-fit { width: -moz-fit-content; width: fit-content; @@ -2659,22 +2680,9 @@ video { } @media (min-width: 1536px) { - .xl\:w-\[250px\] { - width: 250px; - } - - .xl\:w-fit { - width: -moz-fit-content; - width: fit-content; - } - .xl\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } - - .xl\:flex-row { - flex-direction: row; - } } @media (min-width: 1600px) { diff --git a/osinaweb/static/js/epics.js b/osinaweb/static/js/epics.js deleted file mode 100644 index 6deb23a5..00000000 --- a/osinaweb/static/js/epics.js +++ /dev/null @@ -1,14 +0,0 @@ -const epicSelect = document.getElementById('epicSelect'); -const epicDetails = document.getElementById('epicDetails'); -const latestEpicDetails = document.getElementById('latestEpicDetails'); - -epicSelect.addEventListener('change', function () { - if (this.value !== 'EPICS') { - epicDetails.classList.remove('hidden'); - epicDetails.classList.add('flex'); - - latestEpicDetails.classList.add('hidden'); - } else { - epicDetails.classList.add('hidden'); - } -}); \ No newline at end of file diff --git a/osinaweb/static/js/fetch-epic-tasks.js b/osinaweb/static/js/fetch-epic-tasks.js index 2cdb007c..ac245e81 100644 --- a/osinaweb/static/js/fetch-epic-tasks.js +++ b/osinaweb/static/js/fetch-epic-tasks.js @@ -1,79 +1,57 @@ - -$(document).ready(function () { - // Function to fetch related tasks based on epic ID - function fetchRelatedTasks(epicId) { - - $.ajax({ - type: "GET", - url: "/get_tasks/" + epicId + "/", - success: function (data) { - // console.log("Ajax call success. Data received:", data); - - $("#epicRelatedTasksContainer").html(data); - }, - error: function (xhr, status, error) { - console.log("Ajax call failed. Error details:"); - console.log("XHR Object:", xhr); - console.log("Status:", status); - console.log("Error:", error); - } - }); - } - - $("select#epicSelect").change(function () { - // Get the selected option's value - var selectedEpicId = $(this).val(); - - if (selectedEpicId) { - // Fetch related tasks based on the selected epic - fetchRelatedTasks(selectedEpicId); +function fetchOpenTasks() { + var projectId = $('#projectId').text().trim(); + + $.ajax({ + url: '/open_tasks_for_project/' + projectId + '/', + method: 'GET', + success: function (data) { + console.log('Success:', data); + $('#epicRelatedTasksContainer').html(data); + console.log('Updated Container:', $('#epicRelatedTasksContainer').html()); + }, + error: function (error) { + console.error('Error fetching open tasks:', error); } }); +} - - // TO FETCH THE LATEST EPIC BY DEFAULT - var projectId = $("#projectId").text().trim(); - - function fetchLatestEpicTasks(projectId) { - $.ajax({ - type: "GET", - url: "/get_latest_epic/" + projectId + "/", - success: function (data) { - var latestEpicId = data.latest_epic ? data.latest_epic.id : null; - - if (latestEpicId) { - // Fetch related tasks based on the latest epic - fetchRelatedTasks(latestEpicId); - } else { - // console.log("No latest epic found."); - } - - $("#epicRelatedTasksContainer").html(data); - }, - error: function (xhr, status, error) { - console.log("Ajax call failed. Error details:"); - console.log("XHR Object:", xhr); - console.log("Status:", status); - console.log("Error:", error); - } - }); - } - - fetchLatestEpicTasks(projectId); - - - - $('#epicSelect').change(function () { - var selectedEpic = $(this).find(':selected'); - var startDate = selectedEpic.data('start-date'); - var endDate = selectedEpic.data('end-date'); - - if (startDate && endDate) { - $('#epicDetails').removeClass('hidden'); - $('#epicDetails span#startDate').text(startDate); - $('#epicDetails span#endDate').text(endDate); - } else { - $('#epicDetails').addClass('hidden'); +// To load to display open tasks by default +$(document).ready(function () { + fetchOpenTasks(); +}); + +// Click event handler for the "All Open Tasks" link +$('.openTasks').on('click', function () { + // Remove the selectedEpic class from all epic titles + $('.epicTitle').removeClass('selectedEpic'); + $('.openTasks').removeClass('selectedEpic'); + + // Add the selectedEpic class to the "All Open Tasks" link + $(this).addClass('selectedEpic'); + + fetchOpenTasks(); +}); + +// Click event handler for the epic titles +$('.epicTitle').on('click', function () { + // Remove the selectedEpic class from all epic titles + $('.epicTitle').removeClass('selectedEpic'); + $('.openTasks').removeClass('selectedEpic'); + + var epicId = $(this).data('epic-id'); + + $(this).addClass('selectedEpic'); + + $.ajax({ + url: '/get_tasks/' + epicId + '/', + method: 'GET', + success: function (data) { + console.log('Success:', data); + $('#epicRelatedTasksContainer').html(data); + console.log('Updated Container:', $('#epicRelatedTasksContainer').html()); + }, + error: function (error) { + console.error('Error fetching tasks:', error); } }); -}); \ 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 d06590a3..bf646e8b 100644 --- a/osinaweb/templates/details_pages/project-details.html +++ b/osinaweb/templates/details_pages/project-details.html @@ -2,6 +2,9 @@ {%load static%} {% block content %} + + +
@@ -541,9 +544,17 @@ - +
+ + +
{% endfor %} @@ -579,51 +590,25 @@
+ +
-
-
- -
-
-
- - -
- -
- {{latest_epic.start_date}} - {{latest_epic.end_date}} -
- - +
+

Filter Tasks by Epics

+
+ +

|

+ {% for epic in epics %} + +

|

+ {% endfor %}
@@ -836,8 +821,6 @@ - - diff --git a/osinaweb/templates/epic-fetched-tasks.html b/osinaweb/templates/epic-fetched-tasks.html index c6700fe3..4a25096c 100644 --- a/osinaweb/templates/epic-fetched-tasks.html +++ b/osinaweb/templates/epic-fetched-tasks.html @@ -1,174 +1,206 @@ {% load static %} +
+
+

{{epic.start_date}} - {{epic.end_date}}

+

+
+ + + +
+
- @@ -280,8 +312,8 @@ data-modal-url="{% url 'addtime' %}">Add Time - +
{% endfor %} -
+ \ No newline at end of file diff --git a/osinaweb/templates/listing_pages/tasks.html b/osinaweb/templates/listing_pages/tasks.html index 25737f9a..11e647e7 100644 --- a/osinaweb/templates/listing_pages/tasks.html +++ b/osinaweb/templates/listing_pages/tasks.html @@ -165,7 +165,7 @@

{{task.name}}

{% endif %} - + {% if task.status == 'Working On' %}
@@ -224,492 +224,475 @@ {% endif %} {% if task.status == 'Open' %} - {% if task.end_date < current_date %} -
-

{{task.formatted_end_date}}

-
- {% else %} -
-

{{task.formatted_end_date}}

-
- {% endif %} - {% endif %} + {% if task.end_date < current_date %}
+

{{task.formatted_end_date}}

+
+ {% else %} +
+

{{task.formatted_end_date}}

+
+ {% endif %} + {% endif %} - {% if task.status == 'Working On' %} - {% if task.end_date < current_date %} -
-

{{task.formatted_end_date}}

-
- {% else %} -
-

{{task.formatted_end_date}}

-
- {% endif %} - {% endif %} + {% if task.status == 'Working On' %} + {% if task.end_date < current_date %}
+

{{task.formatted_end_date}}

+
+ {% else %} +
+

{{task.formatted_end_date}}

+
+ {% endif %} + {% endif %} - {% if task.status == 'Closed' %} - {% if task.end_date < current_date %} -
-

{{task.formatted_end_date}}

-
- {% else %} -
-

{{task.formatted_end_date}}

-
- {% endif %} - {% endif %} -
+ {% if task.status == 'Closed' %} + {% if task.end_date < current_date %}
+

{{task.formatted_end_date}}

+
+ {% else %} +
+

{{task.formatted_end_date}}

+
+ {% endif %} + {% endif %} + + + +
+ +
+ + - {% endfor %} + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ + {% endfor %} + - -
- {% for task in my_tasks %} -
-
-
- {% if task.status == 'Open' %} -
-

{{task.name}}

-
- {% endif %} + +
+ {% for task in my_tasks %} +
+
+
+ {% if task.status == 'Open' %} +
+

{{task.name}}

+
+ {% endif %} - {% if task.status == 'Working On' %} -
-

{{task.name}}

-
- {% endif %} + {% if task.status == 'Working On' %} +
+

{{task.name}}

+
+ {% endif %} - {% if task.status == 'Closed' %} -
-

{{task.name}}

-
- {% endif %} -
+ {% if task.status == 'Closed' %} +
+

{{task.name}}

+
+ {% endif %} +
-
- {% if task.status == 'Closed' %} -
-

{{task.status}}

-
- {% endif %} +
+ {% if task.status == 'Closed' %} +
+

{{task.status}}

+
+ {% endif %} - {% if task.status == 'Open' %} -
-

{{task.status}}

-
- {% endif %} + {% if task.status == 'Open' %} +
+

{{task.status}}

+
+ {% endif %} - {% if task.status == 'Working On' %} -
-

{{task.status}}

-
- {% endif %} + {% if task.status == 'Working On' %} +
+

{{task.status}}

+
+ {% endif %} - {% if task.status == 'Open' %} -
-

{{task.start_date}}

-
- {% endif %} + {% if task.status == 'Open' %} +
+

{{task.start_date}}

+
+ {% endif %} - {% if task.status == 'Working On' %} -
-

{{task.start_date}}

-
- {% endif %} + {% if task.status == 'Working On' %} +
+

{{task.start_date}}

+
+ {% endif %} - {% if task.status == 'Closed' %} -
-

{{task.start_date}}

-
- {% endif %} + {% if task.status == 'Closed' %} +
+

{{task.start_date}}

+
+ {% endif %} - {% if task.status == 'Open' %} -
-

{{task.end_date}}

-
- {% endif %} + {% if task.status == 'Open' %} +
+

{{task.end_date}}

+
+ {% endif %} - {% if task.status == 'Working On' %} -
-

{{task.end_date}}

-
- {% endif %} + {% if task.status == 'Working On' %} +
+

{{task.end_date}}

+
+ {% endif %} - {% if task.status == 'Closed' %} -
-

{{task.end_date}}

-
- {% endif %} -
+ {% if task.status == 'Closed' %} +
+

{{task.end_date}}

+
+ {% endif %} +
-
-
-

Project:

-

{{task.project.name}}

-
+
+
+

Project:

+

{{task.project.name}}

+
-
-

Epic:

-

{{task.epic.title}}

-
+
+

Epic:

+

{{task.epic.title}}

+
-
-

Assigned To:

-

{{task.assigned_to.user.first_name}} - {{task.assigned_to.user.last_name}}

-
+
+

Assigned To:

+

{{task.assigned_to.user.first_name}} + {{task.assigned_to.user.last_name}}

+
-
-

Extra:

-

{{task.extra}}

-
-
+
+

Extra:

+

{{task.extra}}

+
+
-
-

Actions

- - -
+
+

Actions

+ + +
- -
- {% endfor %} +
+ {% endfor %} +
+
+ - -