diff --git a/apiserver/plane/api/serializers/issue.py b/apiserver/plane/api/serializers/issue.py index 044aa1581c..31a832f7b6 100644 --- a/apiserver/plane/api/serializers/issue.py +++ b/apiserver/plane/api/serializers/issue.py @@ -11,6 +11,7 @@ from rest_framework import serializers # Module imports from plane.db.models import ( Issue, + IssueType, IssueActivity, IssueAssignee, IssueAttachment, @@ -46,6 +47,12 @@ class IssueSerializer(BaseSerializer): write_only=True, required=False, ) + type_id = serializers.PrimaryKeyRelatedField( + source="type", + queryset=IssueType.objects.all(), + required=False, + allow_null=True, + ) class Meta: model = Issue @@ -129,9 +136,19 @@ class IssueSerializer(BaseSerializer): workspace_id = self.context["workspace_id"] default_assignee_id = self.context["default_assignee_id"] + issue_type = validated_data.pop("type", None) + + if not issue_type: + # Get default issue type + issue_type = IssueType.objects.filter( + project_issue_types__project_id=project_id, is_default=True + ).first() + issue_type = issue_type + issue = Issue.objects.create( **validated_data, project_id=project_id, + type=issue_type, ) # Issue Audit Users