Skip to content

Commit 4234a13

Browse files
authored
Merge pull request #217 from dinesh-aot/COMP-317
New inspection status
2 parents 16f0ba8 + 61f0111 commit 4234a13

File tree

4 files changed

+83
-9
lines changed

4 files changed

+83
-9
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
"""More inspection status added
2+
3+
Revision ID: 91f76d883f32
4+
Revises: 88ed0885be9e
5+
Create Date: 2025-02-03 15:06:34.042205
6+
7+
"""
8+
from alembic import op
9+
import sqlalchemy as sa
10+
11+
12+
# revision identifiers, used by Alembic.
13+
revision = '91f76d883f32'
14+
down_revision = '88ed0885be9e'
15+
branch_labels = None
16+
depends_on = None
17+
18+
19+
def upgrade():
20+
# ### commands auto generated by Alembic - please adjust! ###
21+
op.execute("ALTER TYPE inspectionstatusenum ADD VALUE 'CLOSED_AS_NOTE'")
22+
op.execute("COMMIT;")
23+
op.execute("UPDATE inspections set inspection_status='CLOSED_AS_NOTE' WHERE inspection_status='CLOSED'")
24+
op.execute("UPDATE inspections_version set inspection_status='CLOSED_AS_NOTE' WHERE inspection_status='CLOSED'")
25+
26+
# ### end Alembic commands ###
27+
28+
29+
def downgrade():
30+
# ### commands auto generated by Alembic - please adjust! ###
31+
op.execute("UPDATE inspections set inspection_status='CLOSED' WHERE inspection_status='CLOSED_AS_NOTE'")
32+
op.execute("UPDATE inspections_version SET inspection_status='CLOSED' WHERE inspection_status='CLOSED_AS_NOTE'")
33+
op.execute("""
34+
CREATE TYPE inspectionstatusenum_old AS ENUM ('OPEN', 'CLOSED', 'CANCELED');
35+
""")
36+
op.execute("""
37+
ALTER TABLE inspections
38+
ALTER COLUMN inspection_status TYPE inspectionstatusenum_old
39+
USING inspection_status::text::inspectionstatusenum_old;
40+
""")
41+
op.execute("""
42+
ALTER TABLE inspections_version
43+
ALTER COLUMN inspection_status TYPE inspectionstatusenum_old
44+
USING inspection_status::text::inspectionstatusenum_old;
45+
""")
46+
op.execute("DROP TYPE inspectionstatusenum;")
47+
op.execute("ALTER TYPE inspectionstatusenum_old RENAME TO inspectionstatusenum;")
48+
# ### end Alembic commands ###
49+
pass

compliance-api/src/compliance_api/models/inspection/inspection_enum.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@ class InspectionStatusEnum(enum.Enum):
2121

2222
OPEN = "Open"
2323
CLOSED = "Closed"
24+
CLOSED_AS_NOTE = "Closed as note"
2425
CANCELED = "Canceled"

compliance-api/src/compliance_api/schemas/inspection.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -391,8 +391,9 @@ def validate_status(
391391
# Retrieve the context to access other fields
392392
status = data.get("status")
393393
if status not in [
394-
InspectionStatusEnum("Closed"),
395-
InspectionStatusEnum("Canceled"),
394+
InspectionStatusEnum.CANCELED,
395+
InspectionStatusEnum.CLOSED,
396+
InspectionStatusEnum.CLOSED_AS_NOTE
396397
]:
397398
raise ValidationError(
398399
"Invalid status value passed",

compliance-web/src/components/App/Inspections/Profile/InspectionFileActions.tsx

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import React, { useCallback } from "react";
21
import MenuActionDropdown from "@/components/Shared/MenuActionDropdown";
32
import ConfirmationModal from "@/components/Shared/Popups/ConfirmationModal";
4-
import { useModal } from "@/store/modalStore";
5-
import { useQueryClient } from "@tanstack/react-query";
6-
import { Inspection } from "@/models/Inspection";
7-
import { notify } from "@/store/snackbarStore";
83
import {
94
useDeleteInspection,
105
useUpdateInspectionStatus,
116
} from "@/hooks/useInspections";
7+
import { Inspection } from "@/models/Inspection";
8+
import { useModal } from "@/store/modalStore";
9+
import { notify } from "@/store/snackbarStore";
10+
import { useQueryClient } from "@tanstack/react-query";
1211
import { useRouter } from "@tanstack/react-router";
12+
import React, { useCallback } from "react";
1313

1414
interface InspectionFileActionsProps {
1515
status: string;
@@ -73,7 +73,7 @@ const InspectionFileActions: React.FC<InspectionFileActionsProps> = ({
7373
),
7474
});
7575
},
76-
hidden: ["canceled", "closed"].includes(status?.toLowerCase()),
76+
hidden: ["canceled", "closed", "closed as note"].includes(status?.toLowerCase()),
7777
},
7878
{
7979
text: "Close as Note to File",
@@ -85,6 +85,29 @@ const InspectionFileActions: React.FC<InspectionFileActionsProps> = ({
8585
title="Close Inspection as Note to File?"
8686
description="Are you sure you want to close inspection as note to file?"
8787
confirmButtonText="Close Inspection"
88+
onConfirm={() => {
89+
updateInspectionInspection({
90+
id: inspectionData?.id ?? 0,
91+
inspectionStatus: { status: "CLOSED_AS_NOTE" },
92+
});
93+
}}
94+
/>
95+
),
96+
width: "420px",
97+
});
98+
},
99+
hidden: ["canceled", "closed as note", "closed"].includes(status?.toLowerCase()),
100+
},
101+
{
102+
text: "Closed",
103+
onClick: () => {
104+
// Handle closing inspection
105+
setOpen({
106+
content: (
107+
<ConfirmationModal
108+
title="Close Inspectio?"
109+
description="Are you sure you want to close inspection?"
110+
confirmButtonText="Close Inspection"
88111
onConfirm={() => {
89112
updateInspectionInspection({
90113
id: inspectionData?.id ?? 0,
@@ -96,7 +119,7 @@ const InspectionFileActions: React.FC<InspectionFileActionsProps> = ({
96119
width: "420px",
97120
});
98121
},
99-
hidden: ["canceled", "closed"].includes(status?.toLowerCase()),
122+
hidden: ["canceled", "closed", "closed as note"].includes(status?.toLowerCase()),
100123
},
101124
{
102125
text: "Delete Inspection",

0 commit comments

Comments
 (0)