From 2453f3b80f80046dea657198bd3d4092d82b22af Mon Sep 17 00:00:00 2001 From: emile Date: Wed, 15 May 2024 23:15:21 +0300 Subject: [PATCH] new --- .DS_Store | Bin 8196 -> 8196 bytes osinaweb/.DS_Store | Bin 10244 -> 10244 bytes osinaweb/db.sqlite3 | Bin 1273856 -> 1273856 bytes osinaweb/osinacore/.DS_Store | Bin 10244 -> 10244 bytes .../__pycache__/views.cpython-310.pyc | Bin 19156 -> 19421 bytes .../details_templates/project-details.html | 6 ++++-- osinaweb/osinacore/views.py | 20 ++++++++++++++++++ 7 files changed, 24 insertions(+), 2 deletions(-) diff --git a/.DS_Store b/.DS_Store index a6aaa87d6a6f9f760a491742d9596047e606624e..8e9c863aceb3cbb92514c4200869473430961d04 100644 GIT binary patch delta 158 zcmZp1XmQx!DadYYsiR$S?Oy&d&=d zN-fJwEsw|qvV$|LQYW7mvXE4Eh&#Xl0-Pav`FW|F$_@cwF2iJTVMR+xMkPjVMiWL` yMtepNMo-2l#$?76#!SX6h#DqF2+bf1rJ)pK@#K8r9ZU=klWk>`H;0R?pvCXgMRS(Q5ZgM@_uXGmUtUMi=uLjVI9Om>u1G?!#lV$^0d zVYFqmXY^q7WQ<~rW=vpAgs5O*gwPB!P#Q`xW=*~*CboH_WC0_G5yD9hn=_^7u}o~> a-psC$$d2h&0kB)+1%#6lle5!{@=F0p9yRR% delta 73 zcmZn(XbITRD#T%EXs)ARWM(iqP}X7dS)ti1liP&cC$ATm+x$`JBID#MV#1r3Nft0p Y_LTM5949@GWiz`%B0EgY}vnTJ|2!?s%V2o!HjZYI3JbC!!y}XzAegA%2ZE3459o&V^-wup> z&O64^)5q$&AT-qa5qv&=n9#jTPn$xysdL(#5}Te1<>y!(qf6RQK9*b#1s5z;tmJ~T zLR{M@262L^RwI~f;+!O#Li15=cFp31Cj>@NqZmDk)AtB0j4@%19V1DMqIS=W{WAjs zU;qKG0Un?e@B&@Hb)eflGkQk8BRYKQc%S)BVEDAv*Zv7Pmw8`r-<4F7!LW```(W6; z%%j~e5U#7&^|sLz1cT1f7xcK(dGpe9+kJR}em+8Es`{-mL%*`%sW{ z(t`}|4LQ*3K!5)~SI2Rh8{QlIGvmfy1wNc~!Dy?)e~PxivLke4XK;JUBkiX6|D3{s z-gn;GlyE*osd26@Oh{}cY81p}QXHMh<|=$$CCiB!Em=wsxXI$RM3HV3)_F^=sDvcy z_$)a&!=>^V5uLB8rHr|1vek$x7l}1GJ8x%gO5`-L#$?KZsOY(5JYq39J(EidO42H@ z1wM+2)y??$;&fVFT$2Qgi%Nnb+0u%+ku6Ll^$Ar8;}#>XQ{hl!QHUievWby)TFz)h zj-5=UV+$6gmr_}&&NuCqL{nXmSCqd6LvU9M=J(g`+~1CZhneF|d$ro&$fCtm+;8QZ G0q7T+HSuHs delta 364 zcmZp8;M?%PcY-wIt%)+uthX5S%DOhD%+O|3-uzd)#yQ#C$N&gbOmh8;Oe{)sqe@Z( zGmRq)ObY!A9KBR>LM+@fJOcEM%hJkyy#n?9U9yuBE5i#y@*?#OJhU@R3q2g8eA5fU z^NVeb42(>44NP?nO%)7{tqcsU49)cnEi4TzoA2be-^phLVkRJF24WT zaeLfD-i>S%130Ghzu;xvF7<-<)pF)w<`>i1C-7NMcbUMK!^9E=G(w13O_kY~$+9#n zC)1#?#IUr=JhLF9tSreiC(G2dpg76MGA%DVpW$fxi^+UI%n!r@+h0r;lzGD}!DBj| ty+OzjXv|-3X4Mwu>5RQXBHMj>gmzqJW8}NVz;_EMb%AgDtvq2hMgVP`gS`L% diff --git a/osinaweb/osinacore/.DS_Store b/osinaweb/osinacore/.DS_Store index 5f204903921da098608c093cdc19582063fce18c..fd9444fd90a3477cb5df99f0bc7ffdebea2d0029 100644 GIT binary patch delta 39 ncmZn(XbISGLy*JB*iuKq$jEf_13_a(IB)U;L6^<(!b?Q}@|g?P delta 33 pcmZn(XbISGLvZpB5s%3VLZ3Md4b62FjLZxsKM-`;951|71OVNI3=9AO diff --git a/osinaweb/osinacore/__pycache__/views.cpython-310.pyc b/osinaweb/osinacore/__pycache__/views.cpython-310.pyc index 1b3ea5653fcc0e8ddbb492f6e9d649bc71fd1ea5..bb844e2b030a4ac9f6b9197260816d889edc0da7 100644 GIT binary patch delta 772 zcmW;KPiWIn7y$5muW6DdZRTj#&J8!)&AGa6m$d6v`p0y&Lp=(D=qPik)5$iL7Edpe zxr2BZ2p?k#8*G9I{sFZJ{+S049=(VlOudPo{eveDzR!gB%lGnqc`qNyhjsX}0p?;T zq)Xzs89R0%(|BU0Ez=ZJMT`kC8t<`vs2`hF$JIG?TicO5KlfLpshp>9HW!$ax#Gxc z;Hi$^)3_=!9bSM3w)Gw9oX^ue!wYha>y8qUxZ$V~DJJn?Ov*~0wlu;uN9mG0ovu;I zQAKQsSdEG-*SS(NxFMt!lv;0SDb5-9ahdxaZBzC_O_NJbfQMFnr=+BgJJ$ZFyDZ+> z1>zy`NRX6q*Xs7W_eG2!tt7M|r2CUJb?*=_h?m4GVwZSLFhSD9p>$W6s`r%n`uzF2 z>t3Ve8(goZ@Ju>lrNlJIA`oG^tT7X0(7=Q)&{$AJ3R8s4$AC`dZ%}o60H>p2+(=(< zTN8WylEnhDFDScl9L|hGAI@f`l|Iph+mCj-(+JGgo3-Y2<8osQe`Gpf0M*eyaF}u! z&BovXj${w8K|mPj#*5ju?nJ>|q#0tvm#F zD_y=viO&-?rA(z0;_(EO(5YBZZQZJr8BF1)Y8ED2;mO-SugG2cAMB*Q|WwCky delta 587 zcmXw#&ubGw6vy*sf3(I;n&8@iHKtA4hIOri*(595b+;QgYAU@HPaZ-^B1AA7CqWR> zdhj4E9)yP!p+Y@~dQrikN z2wM}&-gT|J6E_NRnH@z|6;{0~nAE4SUpTrn5C&pX+!9u${>UKGlm^m0VL777OD|y< z?b6^ztI@BwoAed4(E)=d(AR7mO090Y(Hq7NG@YQ|>fvoegHhZzre(slGVU735OXS4 zi)t#tt`wqzN{B#!fc#sLX&P{4{0MFr?~mPKo*%qNQBXuWiHWj`Yo}SJe_3-Sup8%&YZ)IT)YnB5$xM3B*2;W)H0E*bO*U3J?J$nl@d~kj(WwKU= z(MHheuwQBi9r}dD(IQScHk7dLWT1?9odx)a@0~?r9ZWh(=n2$a4KjGuJ$YCZm}!bn zH6L!c-vMk~^;+QI7jF(!OjdMoL%Z^vKYY7TmlwFy!L01Vy3xhl4FJ=&!KY|92Unsht1(~_#9Q-t$lzbzFo}z1z69LG5`Po diff --git a/osinaweb/osinacore/templates/details_templates/project-details.html b/osinaweb/osinacore/templates/details_templates/project-details.html index e029783d..5eff031d 100644 --- a/osinaweb/osinacore/templates/details_templates/project-details.html +++ b/osinaweb/osinacore/templates/details_templates/project-details.html @@ -107,7 +107,7 @@

Member(s):

- {% for member in project.members.all %} + {% for member in members %}
@@ -124,7 +124,9 @@

-

Working Hours: 0hr 0min 0sec

+ {% if request.user.is_superuser %} +

Working Hours: {{member.total_time_worked_hours}}hr {{member.total_time_worked_minutes}}min {{member.total_time_worked_seconds}}sec

+ {% endif %}
{% endfor %}
diff --git a/osinaweb/osinacore/views.py b/osinaweb/osinacore/views.py index 993deeed..2dc8fdf5 100644 --- a/osinaweb/osinacore/views.py +++ b/osinaweb/osinacore/views.py @@ -619,10 +619,30 @@ def projectdetails(request, project_id): project_notes = Note.objects.filter(project=project).order_by('-id') + + + members = project.members.all() + + for member in members: + tasks = project.task_set.filter(assigned_to=member) + total_time_seconds = 0 + for task in tasks: + total_time_hours, total_time_minutes, total_time_seconds_task = task.total_task_time() + total_time_seconds += (total_time_hours * 3600) + (total_time_minutes * 60) + total_time_seconds_task + + total_time_hours = total_time_seconds // 3600 + total_time_minutes = (total_time_seconds % 3600) // 60 + total_time_seconds = total_time_seconds % 60 + + member.total_time_worked_hours = total_time_hours + member.total_time_worked_minutes = total_time_minutes + member.total_time_worked_seconds = total_time_seconds + context = { 'project': project, 'epics': epics, 'project_notes' : project_notes, + 'members': members, } return render(request, 'details_templates/project-details.html', context)