From 42ce92cfad64e54bb01616516b7c7615ec2d6fe9 Mon Sep 17 00:00:00 2001 From: emile Date: Mon, 24 Jun 2024 23:00:41 +0300 Subject: [PATCH] new --- .../__pycache__/models.cpython-310.pyc | Bin 3521 -> 3615 bytes osinaweb/customercore/models.py | 10 ++++++++++ .../__pycache__/views.cpython-310.pyc | Bin 21227 -> 21315 bytes osinaweb/osinacore/views.py | 8 +++----- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/osinaweb/customercore/__pycache__/models.cpython-310.pyc b/osinaweb/customercore/__pycache__/models.cpython-310.pyc index 815ec65b31c845d67904cc12c40a99065523f2bb..3c19e301266451b6f4b17c5850a6b7dd29645dfa 100644 GIT binary patch delta 675 zcmYL`yH6WI5QlFuzUSU?UJjgKLn0+XSaHEa!YPQ5c-XutY$dU!NI~pb0wuPzrlFz; zN@{DnG}M%lqBKE5`~~!+prJ`x{sDetpTwQ^)7-Z=GdFuzxwCxG_I=mD_2>Gy`7!JU zdG@ROdh5hGHKY}@!}Qlw!>Sn4kuHpz7#qfu9EK;xf$?Pk6C}ok8ImDPm>3TxBL$2| z441=IqY(Y04=Au3^GjRCpF4THCBNUzJk@WUO%y(LiY6&l(Z8K?b{ip8>ev8f(XF=iuzL|c z_U|R^>RWdzTg7`jj|mZr&_-49>EGwy!xsi_y!DnmXf|UNw~o|@zDrg2q^cvXsR&dd zAwyWzf4$PPUav)Zo(3AWiud-94%#i1w5AE)VW)J{PGx`e!mGFg`)9#1+hKDv-*cWG&Tyy4I95uq{O6f M1s9e`3v-k|0HyVQg8%>k delta 573 zcmYL`ze)o^5XNs!a({O(mo=JTB3MW;m_ighK}9g}VvHC_)Ix29O+W<$do~tgp)a5- zVkh_pwjzSBVWWku&!9880}tlM@XgNdd~=V*_k!DJ%+}yryg2W@xHoQ*Jl#xh?pxQI zu)5?pb(PpN>zc5I1Bw$X7ARCOP*|+kptvFpN;*~?P&|G7O602g)r;!Z+#^->W6qRoa6qmhW)X9UC4`R% z5X*?V`eeB=xeoaPM2J33%_DAf?YerS_UnW>Hu5x*KpaaG}VGP(_fiZUqbllsHu2a;) z1eQolh>{b37!g!NB8p0G3?||y(GZOjj1kx$f%p+YCkZD0@QJ58?gwBIWENcxPap#EWuKafvJ!c%dmV}IRavFs0k~u zQo5P#$13S1>}sr$Udpb;I_YKXdTfwh&Thno(ks}DFd)5>y%?LMTiDIGM7ou|6qij; zC2!ou7t3*lEUaR$#1`q*>{e`(4zgF_YUy@%5Zk5Ku-D*P>9y>2*de`+y&gNIJJ?;= zExn%IgT2z7p{6P9!wvGHiwhgEU%H#U2?wNm*qd>SbT4}=4odg2hfqjwU_XT0q&Kp+ z;|}S5_Au_0-ozfkhouMDqloN!5S#hXg!rIr5nFg4cj0c{m#w%5!yE@u$GxacgBZfG zO^QE4Yfbyy86ENXczqNN`du;&2}5W zO82vZaF_!26Yv~evm0hBKM8&{RzWl7T&rbwbT}H(!jaGm#@pFx0H=+Mj((MwrRVg) zTO@L3;A_M0ZUy*(!k%fkOLLwFaGmbt{tSQ67kM`T=yd+8kWL-m^7J(BoyDJtPiepR zJ!q!Jf{vEB2W{~*%tHGy!0clxI*!3uDms(#rQDa5MCx$fKJk>Y3($p@X>%f_osY(W zlw{m4TeSVJ7B42|B~lU=%sF8?V2$S|6m%!7M@&3B4>=3pgev;D@F0CuXrXmJZ?DLR zhe!8@;uG43G(Ppah)pw4wD%&AYHy~Y5-K#D4oAoj4$;89HnQL-Gle(iRIVeOQUB+1Her> zxbhdcYwT&6NglW6wo~xHxZc*I^7fYnUx69A5**+{Vf$6cp}F=;&~Ci3=DZ36#!!bn zdDO-_yFoK9b{4B}l5TWA3a4m8&mjNH*L(QKK24W;H-jKY-vOHy$3`N%qjh`uDTrC= loj&)x3gl5hx%c>Qz+qJP~}a)l%K&N{EAH z$s&K~N!UMTiXZ#KsLS%Q%q3%q*_JHJB)VmrvTTu<%`DEiWig9cmh5ojU+YVIe&?L` z?tAav+t1#ECs!dUykbS7!k?eNe(mt^>t~a4ApLB~$OI^;V1k}vIE7O>QFj=rB9*P8 zOI6?mx@wZ zbL(YBKm^zsm^r10HJF9j9Lq5Wb2+X>4|+LPU>@dkti+XAz_Drq3vm@=oo2%#^i3&~ zAl7TuxElS^8`#BIB3;8S#WLwyb^zB%*RjiSt@K8A1y)LLVprih>3a5htd?$IZ@?Pq ziAGLpu}&sU?2WiddNaEo8>E}rjo2jJ!rqL{(yi@EyScd)y$XF?{Oob=*0=`MC3ZkG3;S>JS4qCtFA^wO(p}pX%6#7*(rANIu7FzUY1=rf}_*DP=jp74w?2Pvy)0 zb@jme6il0kyJk*$1Hdn|*F6PKXwm%_+^6p{9>a5*%e)UN&178x8`WhOCC2mE4*rhK z(9!H$P)gTw+E-%|I;P>Gdsd0X@6R|c-ck+&CS$^sH5S*xTW~yXDGth$i~o1>x!AH; zTr2@o&RfQ9(ae~F&X{e|!jqCp6}i`G(33!qb5HV}_IV0y3-Qf*cud2{xI(k7ZhGv| zpqhf-1CT{Gz5iI3Yp)*CPoPF0c8eJ|r6c?H2*CU7T4n)kKd<6j4P4N2xKBki58}Jo9D4v7w>79}fVUdER zx8WH%%HD++bhGRn#F^)buga+bh(xFS+MZtl;9Ax5Lu>^Fe3&x}cmM^o{-pF!#5C diff --git a/osinaweb/osinacore/views.py b/osinaweb/osinacore/views.py index 0a80fe87..51044ff4 100644 --- a/osinaweb/osinacore/views.py +++ b/osinaweb/osinacore/views.py @@ -4,9 +4,8 @@ from django.contrib.auth import authenticate, login, logout from django.contrib.auth import login as auth_login from django.contrib.auth.decorators import login_required from .forms import * -from django.utils import timezone from django.http import HttpResponse -from django.db.models import Q +from django.db.models import Count, Q from django.http import JsonResponse from .models import Task, Epic from django.template.loader import render_to_string @@ -305,7 +304,7 @@ def my_projects(request, *args, **kwargs): project.total_time_worked_seconds = total_time['seconds'] project.open_user_tasks_count = project.open_tasks_count(request.user) - project.open_tickets_count = Ticket.objects.filter(project=project).exclude(status='Closed').count() + project.open_tickets_count = Ticket.objects.filter(project=project).annotate(closed_status_count=Count('ticketstatus', filter=Q(ticketstatus__status='Closed'))).filter(closed_status_count=0).count() in_progress_projects = [project for project in in_progress_projects if project.id not in latest_pinned_project_ids] #Exclude pinned projects @@ -316,8 +315,7 @@ def my_projects(request, *args, **kwargs): project.total_time_worked_seconds = total_time['seconds'] project.open_user_tasks_count = project.open_tasks_count(request.user) - project.open_tickets_count = Ticket.objects.filter(project=project).exclude(status='Closed').count() - + project.open_tickets_count = Ticket.objects.filter(project=project).annotate(closed_status_count=Count('ticketstatus', filter=Q(ticketstatus__status='Closed'))).filter(closed_status_count=0).count() context = { 'projects': projects, 'in_progress_projects': in_progress_projects,