From 2dda2c5c2e81b7fd6cf20d16f37cd7c59794fd12 Mon Sep 17 00:00:00 2001 From: emile Date: Fri, 22 Sep 2023 22:36:55 +0300 Subject: [PATCH] New point --- osinaweb/db.sqlite3 | Bin 385024 -> 393216 bytes .../__pycache__/admin.cpython-310.pyc | Bin 1292 -> 1313 bytes .../__pycache__/models.cpython-310.pyc | Bin 8189 -> 8629 bytes .../__pycache__/views.cpython-310.pyc | Bin 17750 -> 19083 bytes osinaweb/osinacore/admin.py | 1 + osinaweb/osinacore/migrations/0032_point.py | 23 ++++ ...completed_point_date_workingon_and_more.py | 33 ++++++ ...034_alter_point_date_completed_and_more.py | 33 ++++++ .../__pycache__/0032_point.cpython-310.pyc | Bin 0 -> 1000 bytes ...nt_date_workingon_and_more.cpython-310.pyc | Bin 0 -> 814 bytes ...nt_date_completed_and_more.cpython-310.pyc | Bin 0 -> 861 bytes osinaweb/osinacore/models.py | 17 +++ osinaweb/osinacore/views.py | 80 ++++++++++++- .../osinaweb/__pycache__/urls.cpython-310.pyc | Bin 5219 -> 5469 bytes osinaweb/osinaweb/urls.py | 12 +- osinaweb/templates/addpoint-modal.html | 24 ++-- osinaweb/templates/index.html | 4 +- osinaweb/templates/showpoints-modal.html | 61 ++++++---- osinaweb/templates/task-details.html | 110 +++++++++++------- osinaweb/templates/tasks.html | 13 ++- 20 files changed, 329 insertions(+), 82 deletions(-) create mode 100644 osinaweb/osinacore/migrations/0032_point.py create mode 100644 osinaweb/osinacore/migrations/0033_point_date_completed_point_date_workingon_and_more.py create mode 100644 osinaweb/osinacore/migrations/0034_alter_point_date_completed_and_more.py create mode 100644 osinaweb/osinacore/migrations/__pycache__/0032_point.cpython-310.pyc create mode 100644 osinaweb/osinacore/migrations/__pycache__/0033_point_date_completed_point_date_workingon_and_more.cpython-310.pyc create mode 100644 osinaweb/osinacore/migrations/__pycache__/0034_alter_point_date_completed_and_more.cpython-310.pyc diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index c647587dead3be2d1c3e219bd7860b80e43bf2b9..e7b1afe2abd9144fdf2684c7ea5cc920fd068eb6 100644 GIT binary patch delta 3742 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 delta 761 zcmZ9J-%C?r7{~XF?c{XM%KbV!Tbpb~C-EZkDg>!>Q_(c+q7=i1d$Hj>XS`<@qqHQD z)+*h6$}rGi6qy7P;y)14UHt*;zAnA#DiC^}Eo3x!Kkz=!_k5ps-)G-A9PwG*-JK5l zeKEY^ezN9^!sw@gG$`5B4Ts*pSB2f4bGozPF|7GQUKB-EE|8ik$F2)An=@zSV(acP zGUklP=SlGZ3nzZV(w;b(0$9RI?*T01J^zqWCaHXanVv9I@S9&H*5ZCl2R-Nt%%z@k z+talB;B2_Y3c{3Ybft@8J1*Q}xET|SNk$#NYggbAhNDAJ#&mQ6 zuSHMcuc(-6rdK7+q)QZXGi`y7P_f|_rJ~HVh2ILAJtcqCm9g#ItSPe7MN2lv-{IbS z#x}0@#-NU0V*|um+@}BTPFzx&n|y=mL=rx7sPP?A|De+rsuv<4xjw3^xSgn`D(uMb el)OpFdyu?O$r(ysiQK_V-)T65;Fi*toc9`hr&0JXJKihKe)aB+WVMl0J=-SIo+gVEs(F39D zB)ytw5!x;3HK9GrO~Jjxmzy`K?6^2?dnKimH1RUPbij<^x9m=~YBtd^TQiSr2)Ao| zCcc^5Iy?C+$W#E50dv5xhdQEKM>okS^fhSZ6TzAXs08=`^8r<2!0i<+jzYFj^gC8s zr(m!|#2on{EWsB5q;@$6+VvHsV#`>?_25?l^5PHx1x6cvqILqmqMFrjT`I2^tgdwp6X22KZ*5CqM9iCF2WTQ*iB@nWv!THCsHl%;hYonbwC z33rSgzi$F>VYY|IQ7S&1*5r^KCb{=li!lmJ!j`p$(wXRNb zSH(Q(tyHP%Sx>m38~<8LO0rC^OAo(=uMvY@zsO0Q$3`UVq9^qTCA=xE#yQGO4?XB1J6>h@XqIN{KpH|v(_5ytE>RSAZd znM}t}l}6QAZ0#1C7mf|g;~FGS@~A+{mdeY{}q`f z&F4XQR1)x2=GTbYrBWGSOw>?D(;H!({im`7jKyRL=aA?Z1J!;J%$ny+oOD%G=)SD(h!$?`iiFxaFF>|Y&nk17 z`Q7e+Sg#j6`Ew;}I^RG;*Hk3TK*8W=0Z5mtpX; z{(KqDbYac)IQPb_y4K*=gtt1zu}gKiZ26;Dw&SmnM3gcgJV$HZ*(k3JuMTd0ywiIDaplbw%Q; zyfc#@q%pn36l!tT%kiW@mGe=^-T?hK$}ufa=ln~2>?YEmF8&r+>OKS3F^)gfXa>FM zVnP0eb`%6P@_pi-{EF0{fG0ip_k@Lhwg!V8bDg_1|?gx8513PCrqp%)hAkb+z`G@+#8(AD#elDJoeyl z=9F_-zl?UmvSm;`6(H+yl%W`dU%@0k-kkBorJnmS@c~S9kK03 zyff`E6~<$w7cG^`Jq$-40sI#5DB$;i#{ho-93lwX$G91@G%h)F(Q+P!#E{rlmJuAI z57Wk1Djq4D%5DEAT_@+rtt#!8am5~vS?Q5Pw=4?xY?|P~ELjXT zy%^-`Deap$4|i*=NU+od#r!S6>*Aidg{(rnFn2n8kFK5RB5Ph#JxX?n>6I%jy_5#1 z{f%i>^4cpCEf)3`lFi4S?Z@GChF8|PZJS+rVXYL+o`X zNZqMyHEWhWMo%3}$hy=(NdKosi(N(-J@qrN z-X&pU8lQSUg_VB^YrZyKFHclWF9OhQOK{kL%sIfRYgKiMwjNx=^+|9O}?o z*KUe-bcdtSPvhd|5%Hw?CAw&)LyF4gbUZGnGSM6;6x-&X?J|=`yb~5%m{?GkBfgx! zECWZ;sFM?|p*LSVSCv^_ihr!>PuLG>l&-FF&&W10rgg|ecSyXpAVWM*o5DVnSAfH{ zX^LAFM{Cm+yS`rjg4HQw);l1sSrDB1G4wlh{jx!fr~d#f#Uhi~$MU~)zB*5~pKOYH zh~rWmiidet-q#LwXOj|U`hLt=X_FsjZjQ#)s delta 4975 zcma)93v`p!9q;{;rfI&s+NSi8v}p-_q)=)r1q#L5C!kP)7M0>wWAlM=h18oAq>~lj zg39af=EhKvZJha>0`YQPwz2V!aI60f;-24ZW=bT5h}I5>YgE_ zcr9Qipl&QXTV>UaqMgWE#-mqg194uDo+&gq$j^pM1Hc8CP0hCA{JCg00SW;N0Q2ZW zw}(b;0oF>pnmxM<%yh)Iz!C&kMPJ&=FN0Cu0+9Bk>TGnS4@I~^lr?ZntZK$U=?i7%o}&eo;rUIdr0_rybM)`;0!6B*R>nx;~;=tWEg(gT~l0NrD; ztCn4;Pm-0wuD(%l3CEB=`Tg-tLt2a@{gJ!@u7%=StwGJaJicx)n8jDZ)|u5!sK(mq z723Q50uyIcdcO#xlhm8ObX%z19b~I$ox9T_>#&F(bC>vJ?$VAqJt?FTaD9yFx9gLW z$yZao$44zWO$@A;ZqIp5ECrssK%EdQ9nP(gd>(zA+sgW=G4C8-DqzFW<%l%`kTn}S zkoTq%!Mw;qj;JwAKuj-4=41uY(>Lj1>&1t5+A;=_$1*Zx9>yZejN|}o!&*EP8H~}h-cmIN+i`$C#m5SAv-lJcL{XEPI!E-X6coE$m!R5aA!lZG z6Te!>mat9KQ#_S@S8m6x#W|J%*xF3{ipm3glMoFm-6Of7a2UI-c3m_a8k8aPZ^NCg z_Gz(8jYu_&Z86N&d8-VwS9qtW(IkHj_`ta7JYjk$8d)FzAGR}nZgoRa_gcetm#@sQ zJ>qkzS10-F4E~TWVDKk=x$3n^{(A7%ao^NZQec^oN3pHI=UC9XqaNS|xPZsxa9D8G_Um(5cT zLv%YPYKJ&6Drt53xt6Eo*zVFII$VCfV=-o(aeRqmxZdNT%Bh!IvCD!MzKeb^_3WJ6 z!O0ONq0Bss$K~?*V5-Vqrq8B!`Ea|6vvL{4mIHDCa-THN>Oh%A8oz+92{aVEAe_hS zg10LklSNUoEuY%$d=D+lE~G6jne=YpMmC4mPit8|B7}lAUJP3vfHW=dQs^g4>!Ta_ zS!kJKp$!^$LPqX!<68JJ2Ic^y(q8&Ez@G%(Rk-o5RsR}J_K+#SW`@k^Je;4)ikz?eqR-| zV3Z%A&#HVDBLQ!9lSN+9KcT+rHkLtmR`;-b>BH)Oj>_TlprOl(mYDJTFd$1H`TNh{ zKX>aVu@)Xr=pH7YFhMmfEj?73%|V#R1<1%9Xo(xUA%mMlQ_OHFMpAyIOCeyqEt0|U zC3Hv4bXG@C)ikk(#=fYzkm+-iigpRKY5;P{o*6txuEA_B=QB-bGI43=0T}xQ6djXf zIBKl&gOHLb%Bjmi_l#tXTwQvusR(46*c}OHC>D#XT`yiw@hIL-lSL$FB$Z=4Lmck> zLHe-OW5W*U$6eV=vD#Ja5ItY}SFtGWoq45RqcMc^2;fn`V}M@+4g-z=ekmYmP0KQo z*|m5{XAjpPAydMn@d3!H6S7I!hna~^Z0PG==%;nl*$#TKZUK9I%z2i=8f7IW)BTmu z>g}2|&fmyGYE}J=y7OULns`FAf(pL_1HT3MlTe1%4+R{fN9vnLZxOAppDITol*+Ll z-4=iwAP*JC|CKGoQzez5pjLgZ;i0g2UWO^!FoQizdmGx>lVTToXmexs*cT1ijEzy& zthoZuo#kQev~pH+jf|o}XeTThwtp<4>W|d^;h4txQ}FdWz&<)Mt5}s~)CcK}SvBk) zc}kZyI@zmK+c=*cgTJxOjm_{?UtdtbGok!6U<%+F0bTrAdT;jm3uQsP81(`E0C*1Y zJRlhv|0B9D049Wkt~_%8Oe1rq6;B8ZOg`X6z@O-`IStBx6goAhjlDv3a}SN;%pS2; zES^`fw5(!?2Shh$<`_+6%7-Z5i?%r)S*P(kMU#IIBCfP$%k7}<0!VqQI6T)#9l1ee z{4zr9+=NB^#)uEc#QLU7n>EYp_DelH%40r&`0T%=IQA=~a*rYq>)q5A3#I=aUW>f4;F)7UQ zmDMc%75=7p0u<6G^DbT?jUo!M(vxl73m%?d_p(NM0m!>ixIi&WF`(%SJ;nY zY!EShkU?dgUdroO>c(X=p^6)5sH3X#4KXNgAiT--C6Kl(WWo2*(T)oChTOgX>c}m8 zTA0^gOeUM+WL9QX+zLMpR~ypZ?4^U9LH2igv9s8{9A5N!Mr$8^-Wd>-_#qy2%Cd89 zjV6}(fc6qRV2Rijcu4yANTyT7{~@SgR=2!BC*-t|ws)0wyam$8Nv?%Sb3z2d%Naky z`Yhrn5$?LT5LBgA1|^1$Cli+87zuwYw7Y|S6kPake=97t0onm802cyQ0ajD{qS^A7 zJ|9N^A^>&>#|q|G14aQ`0M`Jn1zZQX9&iKTM!-#gn*mz^+W@x$ZUgK9>;&uq><8Qn zcqn5);2|_02RsQl26zSV8sJU9alqSvcL47JP5|BqoCKT#d;mBN_y~YvaKBt4n-@FT zX}WdsP`%y86r1>nZ|f9mmenHubwq38ztx&;wJXI`d!E-ZQ)u|aCr^CxDRf>S%OP40 GC;Km5D{V&r diff --git a/osinaweb/osinacore/admin.py b/osinaweb/osinacore/admin.py index 7e36521a..5bca6652 100644 --- a/osinaweb/osinacore/admin.py +++ b/osinaweb/osinacore/admin.py @@ -32,5 +32,6 @@ admin.site.register(Note) admin.site.register(Task) admin.site.register(Status) admin.site.register(Tag) +admin.site.register(Point) diff --git a/osinaweb/osinacore/migrations/0032_point.py b/osinaweb/osinacore/migrations/0032_point.py new file mode 100644 index 00000000..a6ce34de --- /dev/null +++ b/osinaweb/osinacore/migrations/0032_point.py @@ -0,0 +1,23 @@ +# Generated by Django 4.2.5 on 2023-09-22 17:52 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('osinacore', '0031_alter_staffprofile_image'), + ] + + operations = [ + migrations.CreateModel( + name='Point', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('text', models.TextField(blank=True)), + ('status', models.CharField(choices=[('Not Completed', 'Not Completed'), ('Working On', 'Working On'), ('Completed', 'Completed')], max_length=200, null=True)), + ('task', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='osinacore.task')), + ], + ), + ] diff --git a/osinaweb/osinacore/migrations/0033_point_date_completed_point_date_workingon_and_more.py b/osinaweb/osinacore/migrations/0033_point_date_completed_point_date_workingon_and_more.py new file mode 100644 index 00000000..373578b3 --- /dev/null +++ b/osinaweb/osinacore/migrations/0033_point_date_completed_point_date_workingon_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.5 on 2023-09-22 17:57 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('osinacore', '0032_point'), + ] + + operations = [ + migrations.AddField( + model_name='point', + name='date_completed', + field=models.CharField(max_length=200, null=True), + ), + migrations.AddField( + model_name='point', + name='date_workingon', + field=models.CharField(max_length=200, null=True), + ), + migrations.AddField( + model_name='point', + name='time_completed', + field=models.CharField(max_length=200, null=True), + ), + migrations.AddField( + model_name='point', + name='time_workingon', + field=models.CharField(max_length=200, null=True), + ), + ] diff --git a/osinaweb/osinacore/migrations/0034_alter_point_date_completed_and_more.py b/osinaweb/osinacore/migrations/0034_alter_point_date_completed_and_more.py new file mode 100644 index 00000000..33d90f8f --- /dev/null +++ b/osinaweb/osinacore/migrations/0034_alter_point_date_completed_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.5 on 2023-09-22 18:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('osinacore', '0033_point_date_completed_point_date_workingon_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='point', + name='date_completed', + field=models.CharField(blank=True, max_length=200, null=True), + ), + migrations.AlterField( + model_name='point', + name='date_workingon', + field=models.CharField(blank=True, max_length=200, null=True), + ), + migrations.AlterField( + model_name='point', + name='time_completed', + field=models.CharField(blank=True, max_length=200, null=True), + ), + migrations.AlterField( + model_name='point', + name='time_workingon', + field=models.CharField(blank=True, max_length=200, null=True), + ), + ] diff --git a/osinaweb/osinacore/migrations/__pycache__/0032_point.cpython-310.pyc b/osinaweb/osinacore/migrations/__pycache__/0032_point.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bb374ac727b909ebeb82b59ad1aa4177eaf6809a GIT binary patch literal 1000 zcmYjQOK;RL5RRQ}_T48c4+*I!qzJTI;EGVomLddgky?bb7t6bzO}(4M!OlXrSGe|1 zaO0ow133B0sehqDlySB%M;`h6?09Cr8LM`?;o+G6Zo{GPd4C+ZJpu%qI86tQ@B~S` zl=MkT`;<6L6Tct4@q{me@16*Nj4R*#enrp&FRGm3KVC#_BbBk{g;bfbVX6cqW^d^B zZjUB{O`N7c174p9uTKSuN#BQHj5i7&!f{mu_*FzGs;9w-iW+h?Wa_5`Q3Fvu_C)gs z5iMlfr#`X^$Tl#x=D0Nu$L;ZgSQJZcCl18&DMb&9Vg=(}we{VrKr!mNGBV>srNKVj z*m(Yw@uUFFOuvxyDSQ!zD>AJOyno+{RRD$NtX`}8tO zglyxJ(i54*>-(8rDJfgOIkbw**)K=?wmLjgatH=X!H-!2SzH|1Ae$x$dgW$vvT&Vj z$KlA=ckxfuAY)iAbZTj#P?VsIG#p7tgxQOhY>kz{GiDo%VQr_V3bQT7K2Le#4m%_u zhfF{=lwdS<7dLyQG`p@DG&Y`RTd!oig`(}at8M)dwYXgNj<}vL8#`DH8E5ZM#!!rT z7As4|z}CtbvA=A!w{_6l+J0>tDu>IS`|0V&=%F;{y!#RLH(f}vevl+`2HkBilS1X) z1FTBA{+{O!>>F7ORoX3uncJ^0m@iyYbZ?rvi|z4@<*o@j`AoYvQ^jfSp{aS)4=#cV zC3oloStAb!{TuwNU6iMy(AMW^bi|+(X0FBkYqB$cE}g3c^&^*w^Kg^XeDwr5TYE7t Q!ApY3glLv%jjZ|q0ZFGO`Tzg` literal 0 HcmV?d00001 diff --git a/osinaweb/osinacore/migrations/__pycache__/0033_point_date_completed_point_date_workingon_and_more.cpython-310.pyc b/osinaweb/osinacore/migrations/__pycache__/0033_point_date_completed_point_date_workingon_and_more.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..903bfd6551fcf53727037b0a1bd287ac0a158145 GIT binary patch literal 814 zcmaJ8S%5Z+ze7u(!LR0ujMq-)|6X%Pwvf(AknXxyweH^XHw>$UOv2&qAIq2Vcb z6JCI3TdH)_NC;-_{2WMOq#4hTJ@d^st|yb6k$nC(!H*GR-$Sr2F$FuM?j9LnzzwT- z$tzI`&Ym(55Pe_}Azw!CqcVbcpG}i9dY4Uw&nvxXRi|s~{HUq{jhlzkx`gpNr0y*l zWF-ey3g8P~Mi?)XFaSr(4TvFu(W!uq(~Eq1O+LFOpZ}X*#AOOM2=Lfv&o7V??5uX$ zs(IaFna^h1_hnOS+xcX8Y=Y`g&g-f%*dd&KCEPFjWz{=r&@Q?|AKR5N(})NNOG~RN zq+GDcYmEl{(B!yokF;IX)^B#YT5Eb9U)J}gnNMZkM@pYdNqtua$sbGkW~EH%9U{O6 zEufuibgdv{K79o6B+P8-yv%32hpO#kpVtkZU*`*JZ&S55KR*?(9Ja2&N*hFD^a&P^ z(H(VlQ|v3FtGmxs6M`2`cf>={(>2&*JQ$q7UU7B)f_U5>c$9zhx1PM*S1Jp%V~bnO zNgIB_5viMzNtuY^-*Fezw6t>TI>D{%7n2=y%Ldw#MR3sLJT7h7JG8C3uEGK@XPJH%pzNmD80oMKy z{t5p8$tz;0SeTIzJYSL~2o+23>3#Rz^ZWeSw%^YQu5VxZ@SPFzHGu6EBRIrxcQHvK zsU{UIX%&?bB~OWrB>PAt13F_LSjl93LWapD{!50D&nq=;M60ZEzE@cZ+D!try><~C zVz_shfRt2{GLm#kO9t^Q2?L-v+mW$MFnSkE?p&;y^japnmdXERrg53dT@=3Ov*&BY zC_l4K88NX9l=nxYg9Bb$Wm+yp3w&a$T0;wR`{S8y=E_X1;lfB>VWUsF9zXcI>E-2T zJnfMAWUPgmqfz25*I=gYsgKP!v7KOSa2 z<=sA<`<$aLxzK?19_McsLWjKrl2C(@U?vJ&6QMqzAL$mFCt+%XkAwK^(WzKspW7N% zcl(Jnw~+19&-cYE2aPMBQW`*Obq>X2aP!vI#fi|Wy7Nrb0laXkMHh?C z7n{dZp!@f@2x7MF-rT|3?*00_2`{#X;YOHJ60!JqoJ2ID0~-JOf0h2|x{rsk&*V(t iP43HaXGM4Xj@%q|S>47dK7Ft>^&t&|gMu5;P4)+{PxU4M literal 0 HcmV?d00001 diff --git a/osinaweb/osinacore/models.py b/osinaweb/osinacore/models.py index 0e65fc6e..f0337950 100644 --- a/osinaweb/osinacore/models.py +++ b/osinaweb/osinacore/models.py @@ -216,6 +216,23 @@ class Task(models.Model): return f"{parts[2]}-{parts[1]}-{parts[0]}" + +class Point(models.Model): + text = models.TextField(blank=True) + STATUS_CHOICES = ( + ('Not Completed', 'Not Completed'), + ('Working On', 'Working On'), + ('Completed', 'Completed') + ) + status = models.CharField(max_length=200, choices=STATUS_CHOICES, null=True) + task = models.ForeignKey(Task, on_delete=models.CASCADE, null=True) + date_workingon = models.CharField(max_length=200, null=True, blank=True) + date_completed = models.CharField(max_length=200, null=True, blank=True) + time_workingon = models.CharField(max_length=200, null=True, blank=True) + time_completed = models.CharField(max_length=200, null=True, blank=True) + + + class Status(models.Model): text = models.TextField(blank=True) date = models.CharField(max_length=40) diff --git a/osinaweb/osinacore/views.py b/osinaweb/osinacore/views.py index fe5afc1c..0fb7d5e7 100644 --- a/osinaweb/osinacore/views.py +++ b/osinaweb/osinacore/views.py @@ -288,9 +288,11 @@ def staffs(request): @login_required def detailed_task(request, task_id): task = get_object_or_404(Task, task_id=task_id) + points = Point.objects.filter(task=task).order_by('-id') context = { 'task': task, + 'points' : points, } @@ -371,8 +373,10 @@ def add_credentials_modal(request, *args, **kwargs): return render(request, 'addcredentials-modal.html', context) -def add_point_modal(request, *args, **kwargs): +def add_point_modal(request, task_id): + task = get_object_or_404(Task, task_id=task_id) context = { + 'task' : task, } return render(request, 'addpoint-modal.html', context) @@ -389,8 +393,12 @@ def delete_task_modal(request, *args, **kwargs): } return render(request, 'deletetask-modal.html', context) -def show_points_modal(request, *args, **kwargs): +def show_points_modal(request, task_id): + task = get_object_or_404(Task, task_id=task_id) + points = Point.objects.filter(task=task).order_by('-id') context = { + 'task' : task, + 'points' : points, } return render(request, 'showpoints-modal.html', context) @@ -460,6 +468,7 @@ def add_daily_report(request): #Fetch Views + def fetch_related_tasks(request): # Get the selected epic ID from the request epic_id = request.GET.get("epic_id") @@ -486,6 +495,8 @@ def fetch_related_tasks(request): #Save Functions + + @login_required def save_note(request): if request.method == 'POST': @@ -805,8 +816,6 @@ def save_staff(request): - - @login_required def save_status(request): if request.method == 'POST': @@ -898,6 +907,67 @@ def save_tag(request): return redirect('tags') + +@login_required +def save_point(request): + if request.method == 'POST': + text = request.POST.get('text') + task = request.POST.get('task') + + taskobj = get_object_or_404(Task, id=task) + + + point = Point( + text = text, + task = taskobj, + status='Not Completed' + ) + point.save() + + + return render(request, 'addpoint-modal.html') + + +@login_required +def mark_point_working_on(request, point_id): + point = get_object_or_404(Point, id=point_id) + point.status = 'Working On' + current_datetime = timezone.now() + point.date_workingon = current_datetime.date() + point.time_workingon = current_datetime.strftime("%I:%M %p") + + point.save() + + # Create a new Status object + status_text = f'Working On: {point.text}' + status = Status(text=status_text, date=current_datetime.date(), time=current_datetime.strftime("%I:%M %p"), staff=request.user.staffprofile) + status.save() + + + + return redirect(request, 'showpoints-modal.html') + + +@login_required +def mark_point_completed(request, point_id): + point = get_object_or_404(Point, id=point_id) + point.status = 'Completed' + current_datetime = timezone.now() + point.date_completed = current_datetime.date() + point.time_completed = current_datetime.strftime("%I:%M %p") + + point.save() + + # Create a new Status object + status_text = f'{point.text} - Completed' + status = Status(text=status_text, date=current_datetime.date(), time=current_datetime.strftime("%I:%M %p"), staff=request.user.staffprofile) + status.save() + + + + return redirect(request, 'showpoints-modal.html') + + # EDIT TEMPLATES @login_required @@ -978,6 +1048,7 @@ def edit_project_type(request, projecttype_id): return render(request, 'edit_pages/edit-project-type.html', {'projecttype': projecttype}) + @login_required def edit_reference(request, reference_id): reference = get_object_or_404(Reference, id=reference_id) @@ -992,6 +1063,7 @@ def edit_reference(request, reference_id): return render(request, 'edit_pages/edit-reference.html', {'reference': reference}) + @login_required def edit_tag(request, tag_id): tag = get_object_or_404(Tag, id=tag_id) diff --git a/osinaweb/osinaweb/__pycache__/urls.cpython-310.pyc b/osinaweb/osinaweb/__pycache__/urls.cpython-310.pyc index 949a0d9cfb5583cffe661fbbfabac551ff71573e..2fe6baf7e935229afdc4bbcf9f7e3582414e4dbf 100644 GIT binary patch delta 448 zcmaE?aaW5kpO=@50SNv*<4si&pU5Y}cxa<`HH%LwOG-~FTUJ0yZwhxW^F&4tPmg$O_|ioWX=#3oH99>L37IHLo5w!HsXmXDFykN zc_sQb#U({nC5gq^@tG-h`cWJ(i7LtBjQn!2nqpK%o0GUbm?XH16U$QLA!gj-LU1;( zf}GTn)D#TO zBG^=EGT!1%;m=Pl%}vcKi7(2}FY(h1+sw$X!pu~pJXuL-GFOobFo=s(fyCskLh5XW zAfDmmM?%SrYLnfBznHo(?cwuc+Q#S2w3W|?X$zk((`G(DrcHeQOdI(Em^SbQGOgze VVp_)+%(Rv-glP?5D9dVzNC5HYmjD0& delta 198 zcmcbs^;m;1pO=@50SK-i;Z6N4I+0I?aneTZY8IKOfYg9gu2i0^Kp+lE>FH%MXNU?& z=?!Mk?A!c_rGZU>GchHlAU`v&L_dlH#;oEl&d4tZixzKQ$L+zinV-*@QACsR7H>*^ za%paAUP*jWetwCcX7J_*{3^_oIfW-oUM#H6rU!IFk>2DB!pV$MlTAdvXu2`&;&W%( o$>+hegU^#`JD(TRHa>5rt$aRATljpLHuL#0ZQ}E1*(ebV0IF0y^Z)<= diff --git a/osinaweb/osinaweb/urls.py b/osinaweb/osinaweb/urls.py index 8ca94787..d99d804a 100644 --- a/osinaweb/osinaweb/urls.py +++ b/osinaweb/osinaweb/urls.py @@ -63,8 +63,8 @@ urlpatterns = [ path('addfile/', views.add_file_modal, name='addfile'), path('addcredentials/', views.add_credentials_modal, name='addcredentials'), path('updatestatus/', views.update_status_modal, name='updatestatus'), - path('addpoint/', views.add_point_modal, name='addpoint'), - path('showpoints/', views.show_points_modal, name='showpoints'), + path('addpoint//', views.add_point_modal, name='addpoint'), + path('showpoints//', views.show_points_modal, name='showpoints'), path('addtime/', views.add_time_modal, name='addtime'), path('timeline/', views.timeline_modal, name='timeline'), path('deletetask/', views.delete_task_modal, name='deletetask'), @@ -88,8 +88,12 @@ urlpatterns = [ path('save_projecttype/', views.save_projecttype, name='save_projecttype'), path('save_reference/', views.save_reference, name='save_reference'), path('save_tag/', views.save_tag, name='save_tag'), + path('save_point/', views.save_point, name='save_point'), - # Edit Templates + + + + # Edit Urls path('editproject/', views.edit_project, name='editproject'), path('editepic/', views.edit_epic, name='editepic'), path('edittask/', views.edit_task, name='edittask'), @@ -100,6 +104,8 @@ urlpatterns = [ path('editreference/', views.edit_reference, name='editreference'), path('edittag/', views.edit_tag, name='edittag'), path('editstaffposition/', views.edit_staff_position, name='editstaffposition'), + path('mark_point_working_on//', views.mark_point_working_on, name='mark_point_working_on'), + path('mark_point_completed//', views.mark_point_completed, name='mark_point_completed'), ] diff --git a/osinaweb/templates/addpoint-modal.html b/osinaweb/templates/addpoint-modal.html index 39dc3795..eaacd2b9 100644 --- a/osinaweb/templates/addpoint-modal.html +++ b/osinaweb/templates/addpoint-modal.html @@ -15,13 +15,19 @@ -
+
+ {% csrf_token %}

Add Point

+
- + >
@@ -30,13 +36,9 @@

- - -
@@ -44,7 +46,7 @@
- --> -
+ \ No newline at end of file diff --git a/osinaweb/templates/index.html b/osinaweb/templates/index.html index 2c0d0fc1..2f9da78f 100644 --- a/osinaweb/templates/index.html +++ b/osinaweb/templates/index.html @@ -161,11 +161,11 @@ + +
+ {% csrf_token %} + - +
+ {% endif %} + {% if point.status == 'Completed' %}
-

Fix the LaylNhar Header

+

{{point.text}}

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

Fix the LaylNhar Header Lorem ipsum dolor sit amet - consectetur - adipisicing elit. Autem sit esse, cupiditate voluptas, dolorem nisi sunt, molestiae eaque neque - cumque ex amet! Sequi aliquid quos ullam, sapiente iste impedit explicabo?

+

{{point.text}}

-
- +
+ +
+ {% csrf_token %} + +
+
+ {% endif %} + + {% endfor %} + + + +
diff --git a/osinaweb/templates/task-details.html b/osinaweb/templates/task-details.html index 047c5446..5ea8054b 100644 --- a/osinaweb/templates/task-details.html +++ b/osinaweb/templates/task-details.html @@ -56,9 +56,21 @@
+ {% if task.status == 'Open' %}
-

Task Name

+

{{task.name}}

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

{{task.name}}

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

{{task.name}}

+
+ {% endif %}
+ +
+ {% csrf_token %} + - +
+ {% endif %} + {% if point.status == 'Completed' %}
-

Fix the LaylNhar Header

+

{{point.text}}

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

Fix the LaylNhar Header Lorem ipsum dolor sit amet - consectetur - adipisicing elit. Autem sit esse, cupiditate voluptas, dolorem nisi sunt, molestiae eaque neque - cumque ex amet! Sequi aliquid quos ullam, sapiente iste impedit explicabo?

+

{{point.text}}

-
- +
+ +
+ {% csrf_token %} + +
+
+ {% endif %} + + {% endfor %} +
- +
@@ -284,14 +323,7 @@

Description:

- Lorem Ipsum is simply dummy text of the printing and typesetting industry. - Lorem Ipsum has been the industry's standard dummy text ever since the - 1500s, when an unknown printer took a galley of type and scrambled it to - make a type specimen book. It has survived not only five centuries, but also - the leap into electronic typesetting, remaining essentially unchanged. It - was popularised in the 1960s with the release of Letraset sheets containing - Lorem Ipsum passages, and more recently with desktop publishing software - like Aldus PageMaker including versions of Lorem Ipsum. + {{task.description}}

diff --git a/osinaweb/templates/tasks.html b/osinaweb/templates/tasks.html index 3b612c56..55802c78 100644 --- a/osinaweb/templates/tasks.html +++ b/osinaweb/templates/tasks.html @@ -118,6 +118,13 @@

{{task.name}}

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

{{task.name}}

+
+ {% endif %} +

{{task.status}}

@@ -182,17 +189,17 @@ -
+