emile 10 months ago
parent 1f4398cea6
commit 42ce92cfad

@ -41,6 +41,16 @@ class Ticket(models.Model):
super().save(*args, **kwargs) super().save(*args, **kwargs)
class TicketStatus(models.Model):
STATUS_CHOICES = (
('Open', 'Open'),
('Working On', 'Working On'),
('Closed', 'Closed'),
)
ticket = models.ForeignKey(Ticket, on_delete=models.CASCADE)
status = models.CharField(max_length=50, choices=STATUS_CHOICES, null=True)
added_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
date_added = models.DateTimeField()
class TicketStatus(models.Model): class TicketStatus(models.Model):
STATUS_CHOICES = ( STATUS_CHOICES = (
('Open', 'Open'), ('Open', 'Open'),

@ -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 import login as auth_login
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from .forms import * from .forms import *
from django.utils import timezone
from django.http import HttpResponse from django.http import HttpResponse
from django.db.models import Q from django.db.models import Count, Q
from django.http import JsonResponse from django.http import JsonResponse
from .models import Task, Epic from .models import Task, Epic
from django.template.loader import render_to_string 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.total_time_worked_seconds = total_time['seconds']
project.open_user_tasks_count = project.open_tasks_count(request.user) 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 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.total_time_worked_seconds = total_time['seconds']
project.open_user_tasks_count = project.open_tasks_count(request.user) 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 = { context = {
'projects': projects, 'projects': projects,
'in_progress_projects': in_progress_projects, 'in_progress_projects': in_progress_projects,

Loading…
Cancel
Save