From 693153a64e5d29ec60790c0ff5edaa148d12a401 Mon Sep 17 00:00:00 2001 From: pablohashescobar Date: Thu, 9 Feb 2023 10:39:57 +0530 Subject: [PATCH] feat: record issue completed at date when the issues are moved to fompleted group --- apiserver/plane/db/models/issue.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/apiserver/plane/db/models/issue.py b/apiserver/plane/db/models/issue.py index 3331b08329e..a870eb93fd5 100644 --- a/apiserver/plane/db/models/issue.py +++ b/apiserver/plane/db/models/issue.py @@ -4,6 +4,7 @@ from django.conf import settings from django.db.models.signals import post_save from django.dispatch import receiver +from django.utils import timezone # Module imports from . import ProjectBaseModel @@ -58,6 +59,7 @@ class Issue(ProjectBaseModel): "db.Label", blank=True, related_name="labels", through="IssueLabel" ) sort_order = models.FloatField(default=65535) + completed_at = models.DateTimeField(null=True) class Meta: verbose_name = "Issue" @@ -86,7 +88,22 @@ def save(self, *args, **kwargs): ) except ImportError: pass + else: + try: + from plane.db.models import State + + # Get the completed states of the project + completed_states = State.objects.filter( + group="completed", project=self.project + ).values_list("pk", flat=True) + # Check if the current issue state and completed state id are same + if self.state.id in completed_states: + self.completed_at = timezone.now() + else: + self.completed_at = None + except ImportError: + pass # Strip the html tags using html parser self.description_stripped = ( None