Skip to content

Commit d8a3a70

Browse files
authored
requirement source title related fix (#635)
1 parent 08e90fa commit d8a3a70

File tree

6 files changed

+32
-8
lines changed

6 files changed

+32
-8
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""Schema for Inspection Record Approval."""
22

3+
from compliance_api.schemas.common import KeyValueSchema
34
from marshmallow import EXCLUDE, ValidationError, fields, post_dump, post_load, validate
45
from marshmallow_enum import EnumField
56

@@ -24,6 +25,7 @@ class Meta: # pylint: disable=too-few-public-methods
2425
include_fk = True
2526

2627
approved_by = fields.Nested(StaffUserSchema)
28+
approved_by_position = fields.Nested(KeyValueSchema)
2729

2830
@post_dump
2931
def convert_enum_to_key_value(

compliance-api/src/compliance_api/services/inspection_record/inspection_record_builder.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ def _build_officer_attendance(self):
186186
{
187187
"id": officer.get("id"),
188188
"name": f"{officer.get('name')}",
189+
"position": officer.get("position").get("name"),
189190
}
190191
)
191192
# Iterate over the inspecting officers to fix their position name

compliance-api/src/compliance_api/services/restorative_justice.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Restorative Justice Service."""
22

3-
from compliance_api.exceptions import BadRequestError, ResourceNotFoundError, UnprocessableEntityError
3+
from compliance_api.exceptions import ResourceNotFoundError, UnprocessableEntityError
44
from compliance_api.models.case_file import CaseFile as CaseFileModel
55
from compliance_api.models.db import session_scope
66
from compliance_api.models.restorative_justice import RestorativeJustice as RestorativeJusticeModel

compliance-web/src/components/App/Inspections/Profile/Reports/ReportTabContents/IROverview/ProjectOverview.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,8 @@ const ProjectOverview = () => {
122122
].includes(inspectionReportsData?.ir_progress?.id as IRProgressEnum);
123123
if (isApproved) {
124124
const approvedBy = irApprovalsData?.[0]?.approved_by;
125-
return `${approvedBy?.name}, ${approvedBy?.position?.name}`;
125+
const approvedByPosition = irApprovalsData?.[0]?.approved_by_position;
126+
return `${approvedBy?.name}, ${approvedByPosition?.name}`;
126127
}
127128
return "";
128129
};

compliance-web/src/components/App/Inspections/Profile/Reports/ReportTabContents/IRRequirement.tsx

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { RequirementImage } from "@/models/Image";
33
import IRBoxContainer from "./IRBoxContainer";
44
import { Box, Typography } from "@mui/material";
55
import { useReportStore } from "@/components/App/Inspections/Profile/Reports/reportStore";
6-
import { DRAWER_WIDTHS } from "@/utils/constants";
6+
import { DRAWER_WIDTHS, RequirementSourceEnum } from "@/utils/constants";
77
import RequirementDrawer from "@/components/App/Inspections/Profile/Requirements/RequirementDrawer";
88
import { useCallback, useEffect, useMemo, useState } from "react";
99
import { useDrawer } from "@/store/drawerStore";
@@ -155,12 +155,30 @@ const IRRequirement = ({
155155
{Array.from(groupedRequirementSources.entries()).map(
156156
([sourceId, reqSourceDetails], groupIndex) => (
157157
<Box key={sourceId} sx={{ mb: 3 }}>
158-
{reqSourceDetails.map((reqSourceDetail) => (
158+
{reqSourceDetails.map((reqSourceDetail) => {
159+
let title = `${groupIndex === 0 ? `Requirement ${requirementIndex + 1}:` : ""} `;
160+
if ( reqSourceDetail.condition_number) {
161+
title += `Condition ${reqSourceDetail.condition_number} of`;
162+
}
163+
if (reqSourceDetail.section_number) {
164+
title += `Section ${reqSourceDetail.section_number} of`;
165+
}
166+
if (reqSourceDetail.source_title) {
167+
title += ` ${reqSourceDetail.source_title}`;
168+
}
169+
if (reqSourceDetail.requirement_source_id.toString() === RequirementSourceEnum.EACA) {
170+
title += ` ${reqSourceDetail.amendment_number}`;
171+
}
172+
if (reqSourceDetail.requirement_source_id.toString() === RequirementSourceEnum.COMPLAINCE_AGREEMENT) {
173+
title += ` ${reqSourceDetail.compliance_number}`;
174+
}
175+
if (reqSourceDetail.requirement_source_id.toString() === RequirementSourceEnum.REGULATION) {
176+
title += ` ${reqSourceDetail.regulation_number}`;
177+
}
178+
return(
159179
<Box key={reqSourceDetail.id} sx={{ mb: 2 }}>
160180
<DetailSection
161-
title={`${groupIndex === 0 ? `Requirement ${requirementIndex + 1}:` : ""}
162-
${reqSourceDetail.condition_number ? `Condition ${reqSourceDetail.condition_number}` : `Section ${reqSourceDetail.section_number}`}
163-
of ${reqSourceDetail.source_title || ""}`}
181+
title={title}
164182
subTitle={reqSourceDetail.title || ""}
165183
content={reqSourceDetail.description || ""}
166184
appendixNo={reqSourceDetail.appendix?.appendix_no}
@@ -176,7 +194,7 @@ const IRRequirement = ({
176194
/>
177195
))}
178196
</Box>
179-
))}
197+
)})}
180198
</Box>
181199
)
182200
)}

compliance-web/src/models/IRApproval.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import { ApprovalStatus } from "./ApprovalStatus";
2+
import { Position } from "./Position";
23
import { StaffUser } from "./Staff";
34

45
export interface IRApproval {
56
approved_by: StaffUser;
67
approval_status: ApprovalStatus;
8+
approved_by_position: Position;
79
id: number;
810
inspection_record_id: number;
911
date_report_sent: string;

0 commit comments

Comments
 (0)