From a8b2bcc8388630c60e242eedd83a51474ecca6a8 Mon Sep 17 00:00:00 2001 From: "M. Palanikannan" <73993394+Palanikannan1437@users.noreply.github.com> Date: Tue, 23 Jul 2024 20:50:51 +0530 Subject: [PATCH] feat: added created_at field to be writable and added those changes to (#5142) the activity --- apiserver/plane/api/serializers/issue.py | 1 - apiserver/plane/api/views/issue.py | 5 ++++ .../plane/bgtasks/issue_activites_task.py | 29 +++++++++++-------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/apiserver/plane/api/serializers/issue.py b/apiserver/plane/api/serializers/issue.py index 45b7e7e06..e60b3a137 100644 --- a/apiserver/plane/api/serializers/issue.py +++ b/apiserver/plane/api/serializers/issue.py @@ -55,7 +55,6 @@ class IssueSerializer(BaseSerializer): "project", "created_by", "updated_by", - "created_at", "updated_at", ] exclude = [ diff --git a/apiserver/plane/api/views/issue.py b/apiserver/plane/api/views/issue.py index 365e1c470..e2bbd6a88 100644 --- a/apiserver/plane/api/views/issue.py +++ b/apiserver/plane/api/views/issue.py @@ -309,6 +309,11 @@ class IssueAPIEndpoint(BaseAPIView): ) serializer.save() + # Refetch the issue + issue = Issue.objects.filter(workspace__slug=slug, project_id=project_id, pk=serializer.data["id"]).first() + issue.created_at = request.data.get("created_at") + issue.save(update_fields=["created_at"]) + # Track the issue issue_activity.delay( diff --git a/apiserver/plane/bgtasks/issue_activites_task.py b/apiserver/plane/bgtasks/issue_activites_task.py index 2169f1e1d..0c2af6039 100644 --- a/apiserver/plane/bgtasks/issue_activites_task.py +++ b/apiserver/plane/bgtasks/issue_activites_task.py @@ -582,17 +582,18 @@ def create_issue_activity( issue_activities, epoch, ): - issue_activities.append( - IssueActivity( - issue_id=issue_id, - project_id=project_id, - workspace_id=workspace_id, - comment="created the issue", - verb="created", - actor_id=actor_id, - epoch=epoch, - ) + issue = Issue.objects.get(pk=issue_id) + issue_activity = IssueActivity.objects.create( + issue_id=issue_id, + project_id=project_id, + workspace_id=workspace_id, + comment="created the issue", + verb="created", + actor_id=actor_id, + epoch=epoch, ) + issue_activity.created_at = issue.created_at + issue_activity.save(update_fields=["created_at"]) requested_data = ( json.loads(requested_data) if requested_data is not None else None ) @@ -1717,12 +1718,16 @@ def issue_activity( event=( "issue_comment" if activity.field == "comment" - else "inbox_issue" if inbox else "issue" + else "inbox_issue" + if inbox + else "issue" ), event_id=( activity.issue_comment_id if activity.field == "comment" - else inbox if inbox else activity.issue_id + else inbox + if inbox + else activity.issue_id ), verb=activity.verb, field=(