From 29d7a73520e025c8ab15b9988a2ed84141cb640f Mon Sep 17 00:00:00 2001 From: emile Date: Fri, 19 Jan 2024 21:19:44 +0200 Subject: [PATCH] ss --- osinaweb/db.sqlite3 | Bin 638976 -> 638976 bytes .../custom_context.cpython-310.pyc | Bin 2279 -> 2434 bytes .../__pycache__/models.cpython-310.pyc | Bin 9418 -> 9889 bytes .../__pycache__/views.cpython-310.pyc | Bin 27058 -> 31314 bytes ...rement_added_by_projectrequirement_date.py | 26 ++++++ .../migrations/0051_alter_task_requirement.py | 19 +++++ .../0047_task_status_date.cpython-310.pyc | Bin 0 -> 713 bytes ...r_customerprofile_business.cpython-310.pyc | Bin 0 -> 822 bytes ...r_customerprofile_business.cpython-310.pyc | Bin 0 -> 801 bytes ...by_projectrequirement_date.cpython-310.pyc | Bin 0 -> 965 bytes ...051_alter_task_requirement.cpython-310.pyc | Bin 0 -> 808 bytes osinaweb/osinacore/models.py | 3 + osinaweb/osinacore/views.py | 78 ++++++++++-------- .../osinaweb/__pycache__/urls.cpython-310.pyc | Bin 6593 -> 7557 bytes osinaweb/osinaweb/urls.py | 2 +- osinaweb/static/dist/output.css | 8 +- .../details_pages/project-details.html | 6 +- .../popup_modals/add-userstory-modal.html | 2 +- 18 files changed, 99 insertions(+), 45 deletions(-) create mode 100644 osinaweb/osinacore/migrations/0050_projectrequirement_added_by_projectrequirement_date.py create mode 100644 osinaweb/osinacore/migrations/0051_alter_task_requirement.py create mode 100644 osinaweb/osinacore/migrations/__pycache__/0047_task_status_date.cpython-310.pyc create mode 100644 osinaweb/osinacore/migrations/__pycache__/0048_alter_customerprofile_business.cpython-310.pyc create mode 100644 osinaweb/osinacore/migrations/__pycache__/0049_alter_customerprofile_business.cpython-310.pyc create mode 100644 osinaweb/osinacore/migrations/__pycache__/0050_projectrequirement_added_by_projectrequirement_date.cpython-310.pyc create mode 100644 osinaweb/osinacore/migrations/__pycache__/0051_alter_task_requirement.cpython-310.pyc diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 1ec152112c5616f9594d13b47303c1cbee3ae5f2..8c3d15d70ebdd5acff5c41e4e800965d2ed25f4f 100644 GIT binary patch delta 1288 zcmah|ZA@EL7{2G+uioB|Q&?H|QKbVX5NW-)v|Zc8qntvS>-qv3#s3cxMU!XV9G+IPa zF^OE#f;3gM*{qawQ22hO*)}H_#UA2$Ln=NViD>f$Xe~ZyOas1{wC8}o__Mupw{(Lr zgY@W7O6^Z);*pU|dN^)-feeB&98fDGj#B^xKb5HwvYnnQvh#LG&#k!T`|179kzGJd zq>g8zqwfAA-u}aJ`K^Ib)g2p;W{2gh&zH)kLKABj^|g!O=_-@OL zHh3S1l}?-D^}D=&=K+Vu?NsEZkdFK3-mekK6oGohl91t(#w*-y!`JLR)=Ym+SCW5_ zDR>^9$6Fxa!3j$+2qwp}YE)Z3P3|a$9lSPHfWPyNwi-1Si^n3-nOS zL6A>s;aPHL8G1PnKbcBRKs_}dgP#sMIP)n6hvV1~{ z1YGSy^g4n5Lif=xXnoa0{eX(=KU$_J6Qxrox)d<^wlkD{F8x86X77;ol&Y}-rW;Z! zCc;tG)(?4xsM_}omyM5RowCzqmleC>lRa1-TewTlwK0=>t%9&fplhgr9MZ4SCFzLN zD6Wh1Vz00vEaE*g!k*S3O;oowZ#}9kyOoHV$i_2TAjRz2U%rpq2W+xbQt z9(di6Y6~jMxImzv z(06DJEv!^5eT4dUQVd}M+`jgBB9X3rysL`D%yIt^X1=`*pW3bj41q9ucpLPyuMAXx z9AM9^vfOnD&geHFcavghl7mKG|Cr?l2CV`dBBa~mHQ_9O%=jwjHtb+F=x?YiZ*xnbp6pn{-=iKr>dZ9v3?{nU`g)adZ|j&ckPUVYXWS8Q z%dzO8mRLAEq{LlqJrDUh?ec#-uTPJ1C#)RSjA+Ic&`q=4y=t2TRRa0NZV?Jz{yk%f z-C*O)x6F(5N%C(}ft$X03G(^QJkMIv*wsh3TwN7;^mLIS?Ek1I>hVV11?ZF}ggnRMD8hGl nKN&?UBxbaL3h-R6JSS*h7U0s80qtXK2Vd#zY|u}xav9@4-Sclb delta 1790 zcmZ9MT~HHO6vub7_wHsl+1(%@-(~~FkWZ5ULMgQP=s8t*h6{3uEY#;3OgcOS1J2&$?_x{hh z=iEJ;&Q5b@r+I%yf|($Q!!QrR)W94(V9&>9!nx_{8Q*bZ8YkZ8kBjHUEn<)OxwwIs z#RB1^uvaLF%#$)ny_&F|J*7`eu~PYDn}2J4eK6eI*3cLX`Rh9x!Y%V6&+I{xi^z^n z@{LH;u}UM&jd-2L>F4t{X{F3Pf1?g{FLl_uS6tw5@IcXUmw!R+-dfvc8Hl|lJGZp z4)qt+rdbKwi*!4o#OI%`jxx3HL#mAAc2}-rQsfG9x2$;gQ*#yL*Q`#t(xv&B>oV0b zDHRoDcZKTOtw|&I%H0}O?xrHG20j+eKoH_h7&pWls^KwpLo|nd4H9f5=8|<`e@F^< z1Vh^-w~>RjDfOf{DMrQUSp)h_OiaZTNoHonex+;>&_>f913G8G<7I|o$yHS1$uDsg zJBtbn3OwpFFJ>N5X4I)LWpoYPf)%NqOX+trQaQes5HE;bqEmPxoDy0DJ3r3%^R)vB zUl#FuYh@ZHqt?pWFP7}0+KE!l8jb#v{v&;}zF1G|e${=Z+o7x0nYcf=A?^ql;>x)s zc9gxq_Ogv^DVwZ~YQNX^Yqx2uwK>e6%oXMnW-GIb$))em=f!Wu17d*A7cKM#;Ss%0 zxTt?3bn_>Lh5Rr4-~4tyo3GNW!O7@4I)+xDEKcxE52)Y}>9%cWi4+q_n20Q27{+VC zP)l=LlT_1|<#Blm94@!Rz0l<;aTiP8s;-O>r@HUpbaI!FN1T?;Wb9g(wslCY(0Q`# z+Z1l`1;QTp+bof5oC+F?IX%jQa(k=4!|$6Ny12ykqO`aQ;=P_0cM14nV@5o0RvsWO zo)S9=mvOclJZ2pJ7d_^n6b@sXu5JrU$Z;>_nv-@ZhlX(`D%i{t%K2gJL5n(oCWdh- z>dFZJTPSig!s5^Ounk%KK+Xp^Ly_-cMmcs5V`OiFwcrSr1b064i>m-`X?{Jd9U8?i zD3@;GC93H*P9l}xZ)1bveE=?&b@4D}lv@YX`2ZWWMc|gZHg4sh+}ashGefIq$U9Az z8X!n0oAu;F0DCoi22oB6qc8y~O*~_0Z zZA-v>Kc;gm22#hdO>mX5gel%_EiJOLI*KL55XA^Bcm*V>QS3m@ML?BNY)7`2fwn~< zfUR_z?9D)zN3a!FS=s@i`YdJNUCbf-n_$M?#FVMA1mgw4y$gzAB$i%FTwq0cGEl|{ zo{#d{fF|zZ`I*9cLP(7Fv&ZAfYh{VVc&E7CZspotoM{%$5II>pSRyU1@`YnS~kGhQ{4%%^~l-)rehT6Y0B0sL$`3j)RD9+)@fDe zzSE*I%Fi4<%di(U>J<%p86EIy)uRj>*qE-PdI;ere?fmx_ZGK~Ez~B`6Zl7Tn(BeS z44G1U!t9PrHumX%5SyxDKRanm*Wq45Ea7W-jlNj7hr7>AFn;*aY}%C8+Ex!@yViz^#X^ns8$`rQZ}qTjGn+Ia$=2Cfv}Hq~ z_M*~5nX5>961<83fS~BbzhEyO#s9&B^P*67V193Q-h1=D_IqV-v=kSMjw08Wk8h*b z<-^hxJUE=6^Hpkejh?w~fU!95A3(dZ5r|@2wFVa(H7cNRP<|gw9N@`_o5(d#nKkj_SIai zEwbS|lk%GlaT-mXdbgeMM%>$4T@f$zr&^g!3&UtG4Byy^`w^?42Ns%}Ydqv>;yby; zqQ_~JaOR`(f_QFR+&zybZX;zZ>hl0o$jA5-dEO41ams>Ci3GD^v*8XGn2RWgnssj%E6a(jqKVnEY1GUkt{@f=HN+AElVL@KCy{I6M#9Q?GI&hG zZ8n0cQ3>B+%Xq$tO8cbhTX=Z`aUC^Cve=XjzH_b`g<~RQt!ny?MAEkGbbepqPXCJiyigc F+Ak1!x`Y4# delta 731 zcmZ9Kzi-n(6vusb&b~N~Nhv>)7D@#z)Ra_&B2^+ug@A!69XcRINWtWsU`XO}cb1@X zRjHIeAUYv2Ftj@hVnSj@>}=i`5bD6jz{oup#E+BibMO4U_nzOo+nM}2;YP)xt*Nnm z_hry@$L=X~eZ07E8dGyuYh!9rqE?gUsjXIv7S=V-87C`mKF%T3mfuhvm8GZeAXC29 zE3;E7QWrtIUxTRCRP&~q{D&sL=pVKp8hg&ZwufncA5o3k&-IG7Wzqt5cD2O3r9DGi zR)P~Vu@aQ%wD=0Eq;AVYX)fjg+r(Asi{Jplrn$9^VB{e-sWzMTorpaONB!Bgk*B8x zpYyOk3TQ_}na&J2WRPk|4;*F6cCOg~$CQY07iA{sD0Js9U2v`Kv0963Af*ny%zkZ)H7c49y>OW-@ARSfkY<3mw28j6wQOr2B zi#6e69dHel0-ws7(1F~k(~TJmMk3p><8n++9{acE%&RWnlbQwoEsx0WWcfyR2W;hc f*uNU}=N?F77}0nTtio&KPy^8%R6@icC1?I83~{2% diff --git a/osinaweb/osinacore/__pycache__/models.cpython-310.pyc b/osinaweb/osinacore/__pycache__/models.cpython-310.pyc index 99125ae0bffd46b1a2f4abb7241f25e4da45e559..eec19d90e74285a446810826c9cf81aac421fd34 100644 GIT binary patch literal 9889 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 literal 9418 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 diff --git a/osinaweb/osinacore/__pycache__/views.cpython-310.pyc b/osinaweb/osinacore/__pycache__/views.cpython-310.pyc index 75633720d6a8ca2f9a7e453b874aa21a5a7a9ce4..d2a65bf3485fefbe807854b66744fa7db1be7bcc 100644 GIT binary patch literal 31314 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 wKf}3?&_{st$e=JaIp6Sc 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 diff --git a/osinaweb/osinacore/migrations/0050_projectrequirement_added_by_projectrequirement_date.py b/osinaweb/osinacore/migrations/0050_projectrequirement_added_by_projectrequirement_date.py new file mode 100644 index 00000000..eaac694d --- /dev/null +++ b/osinaweb/osinacore/migrations/0050_projectrequirement_added_by_projectrequirement_date.py @@ -0,0 +1,26 @@ +# Generated by Django 4.2.5 on 2024-01-19 18:53 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('osinacore', '0049_alter_customerprofile_business'), + ] + + operations = [ + migrations.AddField( + model_name='projectrequirement', + name='added_by', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL), + ), + migrations.AddField( + model_name='projectrequirement', + name='date', + field=models.DateField(auto_now=True, null=True), + ), + ] diff --git a/osinaweb/osinacore/migrations/0051_alter_task_requirement.py b/osinaweb/osinacore/migrations/0051_alter_task_requirement.py new file mode 100644 index 00000000..27fa15cd --- /dev/null +++ b/osinaweb/osinacore/migrations/0051_alter_task_requirement.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.5 on 2024-01-19 18:54 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('osinacore', '0050_projectrequirement_added_by_projectrequirement_date'), + ] + + operations = [ + migrations.AlterField( + model_name='task', + name='requirement', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='osinacore.projectrequirement'), + ), + ] diff --git a/osinaweb/osinacore/migrations/__pycache__/0047_task_status_date.cpython-310.pyc b/osinaweb/osinacore/migrations/__pycache__/0047_task_status_date.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..944e324dae67d1a11513f3bb875eac656d9262aa GIT binary patch literal 713 zcmYjPv2GMG5VhCdy}e6LijV@7wAvGe(i;Q96QJN%%8{ElGza0G`aZh=Y>MGa|a zMVq8bXvB$O6@Nn%Q~WDY9B7?>VO6Spn=v09z9{ldFgv6l=M*0Fi~(Wd*cg+uZ}Mjt!yChL8s>$ zj5;aiAs2&Rh%gfZ@AU@I-WB4qmnPngNWmIf1?^IU>k^zQ8%7K`&h0S1$JxAvT&PF5BR^ESFi3GkF3EX09vA*i!dQ4E< z15`Ol7{B3ZLKC`2`M>;Th!e*e}vOuM)nwu_a9y!#nP>oEpG{&Hmd Q6)r1racB0DoIYg#0i$@!x&QzG literal 0 HcmV?d00001 diff --git a/osinaweb/osinacore/migrations/__pycache__/0048_alter_customerprofile_business.cpython-310.pyc b/osinaweb/osinacore/migrations/__pycache__/0048_alter_customerprofile_business.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1b4533d1d72378700a371a0b06a722072ab6b162 GIT binary patch literal 822 zcmYjP&2H2%5VoD4&4yh8l>mW2aLr}YLnSy=sH>K80Lo$El8cpHPghBuIK+vn)m)?vnA@vXH>!ZTs?}*G!34_|-+RiI^qFHUW!IYLEybc$pSpSfe5b39%&f9=G#*rx{3b z5=~9OJ3r?pK1 z#us^7u9ab8X@c%wI14j6oG%XNN3Tq%D%j5FJErVXr7Jt-G>lg|o1*FV25Fdd) zYg834QkfOc-lml`-s`McsUq%(iAy-|lpeHqp2M>T3jeTZ=)FL-MI&IhKqMDu~% zS+%L{9**$p9TWj!j(h2Pj57L&y8nX9E*|-2++)tfvSX!Z;^CEZ)-T^|prC$Wd$qN% ZyY96o=rh57&;Lt`miAHHVFA7G{0FIK^;-Y{ literal 0 HcmV?d00001 diff --git a/osinaweb/osinacore/migrations/__pycache__/0049_alter_customerprofile_business.cpython-310.pyc b/osinaweb/osinacore/migrations/__pycache__/0049_alter_customerprofile_business.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6c927732e6270efbef03ba6263f4eca3e06976ae GIT binary patch literal 801 zcmah{&2H2%5VjpBo1|TVDuMX9AaUAD(gO#I5bCO>9Ds6Ixa4AG*V9!}Ck}B|)pCUk zhdv0r1_$23S5CYF5-Q__Z7VKVnvuVm@qC`o*5h$ZaDD&w6}A{5KODHeID&mNlc1AC zQbj77(TZh^I?R-p@fSpTl7AwS11xd2v2Nh+Q+y%qJv`mJU!T)=23nIsg=&CO#TwE>FsGev(pj#G>cOkLao~+9 zx`nRNUW&Aavwky>4#6{+4;v?XdiC@v%D?v?`IBbdx-U0EGdt))!aRP#eMT9*L;3IU zqR&qP8x5R^ocF2>O5D8+Cc{5VHWIYA+^nwm)zri8KE`bLbkP49MPveWH(5w;dw&4S CwCvvi literal 0 HcmV?d00001 diff --git a/osinaweb/osinacore/migrations/__pycache__/0050_projectrequirement_added_by_projectrequirement_date.cpython-310.pyc b/osinaweb/osinacore/migrations/__pycache__/0050_projectrequirement_added_by_projectrequirement_date.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cbf80bb7cf25d4f294736b0619eb8bdd367b2b33 GIT binary patch literal 965 zcmZuvO>fjN5RLP-NxG#4QA96LiPK&-dw>H7p;l@O65Cc{yO#*b%Er@GLK3HTqSc<^ z+P{F{2>*jW;VUQpLM0I6q}x^kOSWdl&-U|s!`IgX1IN~n@33VV#!sEx9yTVsIOPjm zn88SH6eJ=<$7XI8R%8`+WVgAMJCXa^U^a6;8O#AI>wUDM9y(#LxdmsC%i~1jZVwNWU7YegE?`828IcLr7aN?+{Yn^_n^6zn@|eji z@Uwu~u$J{RKU>f4Xbf{MEaqNVSC}4RHjtyuybDv;@%$$9kz=6zqZJ`!=X05sal!?t zC!^8R=QPf15Hx9I%?l8f;Ad$Lbk-mYq>S!iC4;0EaNeW>3Mgyk#f$-?v*qc)Qg+$o zIbK^*{3+C+%$j34Xn#)2xB!Ic)j3NcXUb-A4M@a`o0`*-FNBX091rd)kG611RX`~o zZ;%I7eM--pIM-KDD$q?s-It5Fs^S^$GpL|sP$o-Z>aC5v>FFCfogBQQM<@FSW7WS# zq#%{I$Jn8!A#@9<;1G34=jB^iDwkz(Ip@k`Gv&2kK?jvLIXI=q)A3mO`^dXJs{&rZ zmBZf*@fdGvm&?!LRDzHp6euC&dAfvfALNIcSK%bi(_&{FS2{V7X`S#QY`q9eShPV$ zpert5)&<(B@TQ}}(dgNT{_6={S@ORfQAh1kg|FK<@nB*a`f7_0Z z`WShaEq36kwT{#<;pJJUuzyuyv(}7G$nERmu&QI;Es^x~@ z+6RI6;3a(J#48}7GEQi_5?JzRzVZ0`JTtDx@J_c5p5Hb0R~*L zlBc{Bso)L^<)!``1|Ild82HGG!DlZWfLO4};3wT-6Jet=U+b*R>&n=mtO1pouiV-0 z3JDz1Hiu-8r5so)fUkM#p-Q`zXcz*Vd9e3NS|v1(-ofFPIK|D8eBqV?O%oY}pdJ0~9>-w?0DR-AiZ)He9?uk@M5p z%tm#Ce<$;m>4$W^GrvA1rv|l2u*?;rQu!8>S7^@Kx=9w9%F8FSta0GI$=g+3CS5y{ z3NJdRSM7rrxa=J_h2-`pBs7nwGINiYuEBDrzj3qG?&l3@o4aH}COrSj9|$h^0r!80 zSKav}u%liphGo}|z6B3%f^q-d;_KS=Jy)aSzOAwindow.top.location.reload();') + return response + context = { + 'project' : project, + } return render(request, 'popup_modals/add-userstory-modal.html', context) + def staff_position_modal(request): context = { @@ -701,10 +725,10 @@ def save_project(request): project.members.set(members_profiles) # Save project requirements - requirements = request.POST.getlist('requirements') # Assuming 'requirements' is the name of your requirement input field + requirements = request.POST.getlist('requirements') for requirement_content in requirements: if requirement_content: - requirement = ProjectRequirement(content=requirement_content, project=project) + requirement = ProjectRequirement(content=requirement_content, project=project, added_by=request.user) requirement.save() return redirect('my-projects') @@ -717,28 +741,26 @@ def save_epic(request): title = request.POST.get('title') status = request.POST.get('status') description = request.POST.get('description') - project_id = request.POST.get('project') # Get project ID as a string - # Retrieve the Project instance - try: - project = Project.objects.get(id=project_id) - except Project.DoesNotExist: - pass + + project_id = request.POST.get('project') + project = get_object_or_404(Project, id=project_id) + start_date = request.POST.get('start_date') end_date = request.POST.get('end_date') - # Create the Epic object with the Project instance + epic = Epic( title=title, status=status, - project=project, # Assign the Project instance + project=project, description=description, start_date=start_date, end_date=end_date ) - # Save the Epic object to the database + epic.save() # Redirect to the detailed project page @@ -746,43 +768,28 @@ def save_epic(request): return redirect(redirect_url) + @login_required def save_task(request): if request.method == 'POST': name = request.POST.get('name') status = request.POST.get('status') - project_id = request.POST.get('project') - epic_id = request.POST.get('epic') - assigned_to_id = request.POST.get('assigned_to') extra = request.POST.get('extra') description = request.POST.get('description') start_date = request.POST.get('start_date') end_date = request.POST.get('end_date') - try: - project = Project.objects.get(id=project_id) - except Project.DoesNotExist: - # Handle the case where the project with the provided ID doesn't exist - # You might want to display an error message or redirect to an appropriate page. - pass - try: - epic = Epic.objects.get(id=epic_id) - except Epic.DoesNotExist: - # Handle the case where the epic with the provided ID doesn't exist - # You might want to display an error message or redirect to an appropriate page. - pass + project_id = request.POST.get('project') + project = get_object_or_404(Project, id=project_id) + + epic_id = request.POST.get('epic') + epic = get_object_or_404(Epic, id=epic_id) - try: - - assigned_to = StaffProfile.objects.get(id=assigned_to_id) - except StaffProfile.DoesNotExist: - # Handle the case where the StaffProfile with the provided ID doesn't exist - # You might want to display an error message or redirect to an appropriate page. - pass + assigned_to_id = request.POST.get('assigned_to') + assigned_to = get_object_or_404(StaffProfile, id=assigned_to_id) - # Create the Task object with the Project and Epic instances task = Task( name=name, status=status, @@ -799,7 +806,6 @@ def save_task(request): # Save the Task object to the database task.save() - task_id = task.id # Redirect to the task detailed page task_details_url = reverse('detailed-task', args=[task.task_id]) diff --git a/osinaweb/osinaweb/__pycache__/urls.cpython-310.pyc b/osinaweb/osinaweb/__pycache__/urls.cpython-310.pyc index 4b79fbe115b96ba4bbd310896fb0e593b1ce6694..7cd2165864223a22a81c29fe6bb74fea5bae3485 100644 GIT binary patch delta 1341 zcmZvcNoW&M7{{A0c2B=n(=;tstZR)n1Sz=V3WA7Qt*1FSrt@CfNs~;OnJ68FfFhzI z7@u|5bFEriO&R~4 zcr!x3wdJuDR#fCWCMv6FMY8dzZ~XgOA6pF#EaGb@Y=a&C9GyXid2JuLL26I?^FGca zoMm#;<6E5fliMDTa*mTb9*=SEA>$t3<*bl`$M-lBa^K?zoGE!|^A54#BQ7M!W6$t} zb1!-7@iWeSy4z1IZ-+_mdZ=VP%=5l8NrJ$YkMedAmPYogR#4G?N-JtI8b~ z-dC0TJLmOMQ%=Qs#gyrQs>If*8FS5mt|h5r$|_kOo2s8?VIOLviJ5UiqOQ%JIVK^O zTtzHpRSQc(P0^TC$%kTOwFxb2P(5mxnm!m?XPEk5t4RUw5C*%>W(QueUx6RFc|y{u zLNjLER1c`8%8z1iRTRWNrQm-o)*?bv)TBz5PnV{8S|jn4(^r(7-v8K&y**h&&1I-z zlr#%XNTtn1&9+%{of!=?o=B85+H7|x^MSN3rL{qY99+0eSnz=KQ zV*SC_)e?W*WHD1=d1JE=^f22RS{!KNAAbEd1#vG34v7B%~tY>5puZ3n%b zeQFwRSi(OrdPF>yipMfG6z(k7JNTHr3Ab0Q65=ZMGpzfLu)gMHzFF*CbJy%v_=5A{ zGcJHnxDY<#BKUwE@D8K!mib#&2RFb=+z6An2_|qeyudB+ob7693Gae&?1C}e4R>%4 zjAA$3#=UTh9cqbe>w)X2z%?Xr6)9Z71YE{mxP*Oh5mmT=NjQ)FFoY>MhiPD#fwQPV U9tYqIX5kbbfRi{l<9PGoKTOfsvH$=8 delta 427 zcmZp*K4{FB&&$ij00fWC7NnNQOyrYcYGR$Jv!9tQOJw6GYesRYRJJVf6zLT1Ugn96 zsVpfrK)yzb?PeFIFlL#kxYW2*u2i0^cpy$lS<%a6&JY!svND)KbJgZFHg)FBi#VB? zC*S1J5#~%xNzqNq%t_UcVh1uotjXEDMxYR8E^5XIn88{k4)ow;Whw8;#ZpTJ)PbBL4G^ITBD5xJNE=U1kXC0i198nJ_evKrhE0;u zX5^c!BNHI6!1RDmk?B6464O0CWv07)T1?mY^q4O3=`&sAGhn(fdAf|Hy%W+hegU^#`JD(TRHa>5rt$aRATljpLHuL#0ZQ}E1+Q=8c tw1F>>Y5injSxwn^riFY7ObhrDndb8)G0o#kW}3^F!8C&}lV!R@4ge>rdu{*# diff --git a/osinaweb/osinaweb/urls.py b/osinaweb/osinaweb/urls.py index 80961565..b540de66 100644 --- a/osinaweb/osinaweb/urls.py +++ b/osinaweb/osinaweb/urls.py @@ -73,7 +73,7 @@ urlpatterns = [ path('add-note/', views.add_note_modal, name='addnote'), path('add-project-note/', views.add_project_note_modal, name='addprojectnote'), path('add-file/', views.add_file_modal, name='addfile'), - path('add-user-story/', views.add_user_story_modal, name='adduserstory'), + path('add-user-story//', views.add_user_story_modal, name='adduserstory'), path('add-credentials/', views.add_credentials_modal, name='addcredentials'), path('update-status//', views.update_status_modal, name='updatestatus'), path('add-point//', views.add_point_modal, name='addpoint'), diff --git a/osinaweb/static/dist/output.css b/osinaweb/static/dist/output.css index 136ea63c..c2c1cc6c 100644 --- a/osinaweb/static/dist/output.css +++ b/osinaweb/static/dist/output.css @@ -963,10 +963,6 @@ video { width: 12rem; } -.w-\[100px\] { - width: 100px; -} - .w-\[120px\] { width: 120px; } @@ -1862,6 +1858,10 @@ video { padding-right: 1rem; } +.pr-8 { + padding-right: 2rem; +} + .pt-3 { padding-top: 0.75rem; } diff --git a/osinaweb/templates/details_pages/project-details.html b/osinaweb/templates/details_pages/project-details.html index d2ffff19..1bc5df72 100644 --- a/osinaweb/templates/details_pages/project-details.html +++ b/osinaweb/templates/details_pages/project-details.html @@ -243,8 +243,8 @@

Project Details:

-
-

+

+

{{project.details}}

@@ -263,7 +263,7 @@
diff --git a/osinaweb/templates/popup_modals/add-userstory-modal.html b/osinaweb/templates/popup_modals/add-userstory-modal.html index 8d9bae2a..110db9ee 100644 --- a/osinaweb/templates/popup_modals/add-userstory-modal.html +++ b/osinaweb/templates/popup_modals/add-userstory-modal.html @@ -13,7 +13,7 @@ -
+ {% csrf_token %}

Add User Story