From 9d096cd1abcb627d397f336a1682299785a49d86 Mon Sep 17 00:00:00 2001 From: gakshita Date: Tue, 22 Oct 2024 16:36:18 +0530 Subject: [PATCH 1/2] fix: intake module and cycle addition fixed --- .../components/issues/issue-modal/base.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/web/core/components/issues/issue-modal/base.tsx b/web/core/components/issues/issue-modal/base.tsx index 19d54a973f1..ab0d9887092 100644 --- a/web/core/components/issues/issue-modal/base.tsx +++ b/web/core/components/issues/issue-modal/base.tsx @@ -4,7 +4,7 @@ import React, { useEffect, useRef, useState } from "react"; import { observer } from "mobx-react"; import { useParams, usePathname } from "next/navigation"; // types -import type { TIssue } from "@plane/types"; +import type { TBaseIssue, TIssue } from "@plane/types"; // ui import { EModalPosition, EModalWidth, ModalCore, TOAST_TYPE, setToast } from "@plane/ui"; import { CreateIssueToastActionItems, IssuesModalProps } from "@/components/issues"; @@ -252,6 +252,22 @@ export const CreateUpdateIssueModalBase: React.FC = observer(( if (isDraft) await draftIssues.updateIssue(workspaceSlug.toString(), data.id, payload); else if (updateIssue) await updateIssue(payload.project_id, data.id, payload); + // check if we should add issue to cycle/module + if ( + payload.cycle_id && + payload.cycle_id !== "" && + (payload.cycle_id !== cycleId || storeType !== EIssuesStoreType.CYCLE) + ) { + await addIssueToCycle(data as TBaseIssue, payload.cycle_id); + } + if ( + payload.module_ids && + payload.module_ids.length > 0 && + (!payload.module_ids.includes(moduleId?.toString()) || storeType !== EIssuesStoreType.MODULE) + ) { + await addIssueToModule(data as TBaseIssue, payload.module_ids); + } + // add other property values await handleCreateUpdatePropertyValues({ issueId: data.id, From d6c0e1945e520ea113b6120e1633ae99f4dc55fd Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Tue, 22 Oct 2024 16:42:27 +0530 Subject: [PATCH 2/2] chore: fixed the search endpoint --- apiserver/plane/app/views/search/issue.py | 59 +++++++++++++---------- 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/apiserver/plane/app/views/search/issue.py b/apiserver/plane/app/views/search/issue.py index 9be1d25d9cd..4ae5b5ea145 100644 --- a/apiserver/plane/app/views/search/issue.py +++ b/apiserver/plane/app/views/search/issue.py @@ -42,47 +42,56 @@ def get(self, request, slug, project_id): issues = search_issues(query, issues) if parent == "true" and issue_id: - issue = Issue.issue_objects.get(pk=issue_id) - issues = issues.filter( - ~Q(pk=issue_id), ~Q(pk=issue.parent_id), ~Q(parent_id=issue_id) - ) + issue = Issue.issue_objects.filter(pk=issue_id).first() + if issue: + issues = issues.filter( + ~Q(pk=issue_id), + ~Q(pk=issue.parent_id), + ~Q(parent_id=issue_id), + ) if issue_relation == "true" and issue_id: - issue = Issue.issue_objects.get(pk=issue_id) - issues = issues.filter( - ~Q(pk=issue_id), - ~Q( - issue_related__issue=issue, - issue_related__deleted_at__isnull=True, - ), - ~Q( - issue_relation__related_issue=issue, - issue_related__deleted_at__isnull=True, - ), - ) + issue = Issue.issue_objects.filter(pk=issue_id).first() + if issue: + issues = issues.filter( + ~Q(pk=issue_id), + ~( + Q(issue_related__issue=issue) + & Q(issue_related__deleted_at__isnull=True) + ), + ~( + Q(issue_relation__related_issue=issue) + & Q(issue_relation__deleted_at__isnull=True) + ), + ) if sub_issue == "true" and issue_id: - issue = Issue.issue_objects.get(pk=issue_id) - issues = issues.filter(~Q(pk=issue_id), parent__isnull=True) + issue = Issue.issue_objects.filter(pk=issue_id).first() + if issue: + issues = issues.filter(~Q(pk=issue_id), parent__isnull=True) if issue.parent: issues = issues.filter(~Q(pk=issue.parent_id)) if cycle == "true": - issues = issues.exclude(issue_cycle__isnull=False) + issues = issues.exclude( + Q(issue_cycle__isnull=False) + & Q(issue_cycle__deleted_at__isnull=True) + ) if module: - issues = issues.exclude(issue_module__module=module) + issues = issues.exclude( + Q(issue_module__module=module) + & Q(issue_module__deleted_at__isnull=True) + ) if target_date == "none": issues = issues.filter(target_date__isnull=True) - + if ProjectMember.objects.filter( project_id=project_id, member=self.request.user, is_active=True, - role=5 + role=5, ).exists(): - issues = issues.filter( - created_by=self.request.user - ) + issues = issues.filter(created_by=self.request.user) return Response( issues.values(