diff --git a/compliance-api/migrations/versions/f71662d8e6c6_adding_project_components_and_area_.py b/compliance-api/migrations/versions/f71662d8e6c6_adding_project_components_and_area_.py new file mode 100644 index 00000000..802241d7 --- /dev/null +++ b/compliance-api/migrations/versions/f71662d8e6c6_adding_project_components_and_area_.py @@ -0,0 +1,28 @@ +"""adding project components and area inspected to inspecton model + +Revision ID: f71662d8e6c6 +Revises: 36db02e529a3 +Create Date: 2026-02-19 14:04:12.318696 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'f71662d8e6c6' +down_revision = '36db02e529a3' +branch_labels = None +depends_on = None + + +def upgrade(): + op.add_column('inspections', sa.Column('area_inspected', sa.String(), nullable=True)) + op.add_column('inspections_version', sa.Column('area_inspected', sa.String(), nullable=True)) + op.add_column('inspections_version', sa.Column('area_inspected_mod', sa.Boolean(), nullable=True)) + + +def downgrade(): + op.drop_column('inspections', 'area_inspected') + op.drop_column('inspections_version', 'area_inspected') + op.drop_column('inspections_version', 'area_inspected_mod') diff --git a/compliance-api/src/compliance_api/models/inspection/inspection.py b/compliance-api/src/compliance_api/models/inspection/inspection.py index 717b68d3..9d07804e 100644 --- a/compliance-api/src/compliance_api/models/inspection/inspection.py +++ b/compliance-api/src/compliance_api/models/inspection/inspection.py @@ -99,6 +99,7 @@ class Inspection(BaseModelVersioned): Integer, nullable=True, ) + area_inspected = Column(String, nullable=True, comment="A brief description of Project Components / Area Inspected") initiation = relationship( "InspectionInitiationOption", foreign_keys=[initiation_id], lazy="joined" diff --git a/compliance-api/src/compliance_api/schemas/inspection.py b/compliance-api/src/compliance_api/schemas/inspection.py index 9b09fe2b..9f8f4d4c 100644 --- a/compliance-api/src/compliance_api/schemas/inspection.py +++ b/compliance-api/src/compliance_api/schemas/inspection.py @@ -159,6 +159,10 @@ class InspectionUpdateSchema(BaseSchema): # pylint: disable=too-many-ancestors ), required=False, ) + area_inspected = fields.Str( + metadata={"description": "A brief description of Project Components / Area Inspected"}, + allow_none=True, + ) @pre_load def end_date_populate( diff --git a/compliance-api/src/compliance_api/services/inspection.py b/compliance-api/src/compliance_api/services/inspection.py index cc20b81b..081f0b02 100644 --- a/compliance-api/src/compliance_api/services/inspection.py +++ b/compliance-api/src/compliance_api/services/inspection.py @@ -935,6 +935,7 @@ def _create_inspection_update_obj(inspection_data: dict): "initiation_id": inspection_data.get("initiation_id"), "debrief_date": inspection_data.get("debrief_date", None), "project_status_id": inspection_data.get("project_status_id", None), + "area_inspected": inspection_data.get("area_inspected", None), } diff --git a/compliance-api/src/compliance_api/services/inspection_record/inspection_record_builder.py b/compliance-api/src/compliance_api/services/inspection_record/inspection_record_builder.py index e8b32fa8..b18263c7 100644 --- a/compliance-api/src/compliance_api/services/inspection_record/inspection_record_builder.py +++ b/compliance-api/src/compliance_api/services/inspection_record/inspection_record_builder.py @@ -276,11 +276,13 @@ def build_inspection_scope(self): self.data["inspection_scope"] = self.existing_ir.inspection_scope return self debreif_date = self.inspection.debrief_date + area_inspected = self.inspection.area_inspected inspection_scope_data = { "debrief_date": ( convert_to_full_month_format(debreif_date) if debreif_date else None ), # handling of the null case "requirements": [], + "area_inspected": area_inspected if area_inspected else None, } requirements = InspectionRequirementModel.get_by_inspection_id( self.inspection.id diff --git a/compliance-api/src/compliance_api/services/inspection_record/ir_template_constant.py b/compliance-api/src/compliance_api/services/inspection_record/ir_template_constant.py index c085c40f..0912d245 100644 --- a/compliance-api/src/compliance_api/services/inspection_record/ir_template_constant.py +++ b/compliance-api/src/compliance_api/services/inspection_record/ir_template_constant.py @@ -1,7 +1,7 @@ """IR template related constants.""" INSPECTION_SCOPE = """
- The Officer inspected [Brief description of Project Components / Area inspected] + The Officer inspected {{ area_inspected }}.
The inspection included a debrief of observations with Project staff on {{ debrief_date }}.
diff --git a/compliance-web/cypress/components/_components/_App/_Inspections/InspectionFormUtils.cy.ts b/compliance-web/cypress/components/_components/_App/_Inspections/InspectionFormUtils.cy.ts
index d121b07a..7ccffb8f 100644
--- a/compliance-web/cypress/components/_components/_App/_Inspections/InspectionFormUtils.cy.ts
+++ b/compliance-web/cypress/components/_components/_App/_Inspections/InspectionFormUtils.cy.ts
@@ -77,6 +77,7 @@ describe("InspectionFormUtils", () => {
other: "Other Info",
firstNations: [{ id: 1, name: "First Nation 1" }],
agencies: [{ id: 1, name: "Agency 1" }],
+ areaInspected: "Area A",
};
const expectedFormattedData = {
@@ -94,6 +95,7 @@ describe("InspectionFormUtils", () => {
attendance_option_ids: [1, AttendanceEnum.OFFICERS],
attending_officer_ids: [2],
is_history: false,
+ area_inspected: "Area A",
};
const formattedData = formatInspectionAPIData(formData, 123);
diff --git a/compliance-web/src/components/App/Inspections/InspectionDrawer.tsx b/compliance-web/src/components/App/Inspections/InspectionDrawer.tsx
index 0487d619..942cd625 100644
--- a/compliance-web/src/components/App/Inspections/InspectionDrawer.tsx
+++ b/compliance-web/src/components/App/Inspections/InspectionDrawer.tsx
@@ -62,7 +62,8 @@ const initFormData: InspectionFormData = {
projectDescription: "",
locationDescription: "",
utm: "",
- debriefDate: undefined,
+ debriefDate: undefined,
+ areaInspected: "",
};
const InspectionDrawer: React.FC