Skip to content

Commit 2783056

Browse files
committed
related document image changes
1 parent d980b19 commit 2783056

File tree

5 files changed

+50
-7
lines changed

5 files changed

+50
-7
lines changed

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,11 @@ class InspectionReqDetailDocCreateSchema(BaseSchema):
146146
section_title = fields.Str(
147147
metadata={"description": "Additional description of the document"}
148148
)
149-
images = fields.List(fields.Nested(InspectionReqDetailDocImageCreateSchema))
149+
images = fields.List(
150+
fields.Nested(InspectionReqDetailDocImageCreateSchema),
151+
allow_none=True,
152+
required=False,
153+
)
150154

151155

152156
class InspectionReqDetailDocUpdateSchema(InspectionReqDetailDocCreateSchema):
@@ -157,7 +161,6 @@ class InspectionReqDetailDocUpdateSchema(InspectionReqDetailDocCreateSchema):
157161
"description": "The unique identifier of the requirement detail document"
158162
}
159163
)
160-
images = fields.List(fields.Nested(InspectionReqDetailDocImageUpdateSchema))
161164

162165

163166
class InspectionReqSourceDetailCreateSchema(BaseSchema):

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -353,8 +353,11 @@ def link(cls, administrative_penalty_id, link):
353353
raise UnprocessableEntityError(
354354
"Administrative Penalty already exists for these requirements."
355355
)
356-
existing_requirements = AdministrativePenaltyInspectionRequirementMap.get_by_inspection_and_administrative_penalty_id(
357-
inspection_id, administrative_penalty_id
356+
existing_requirements = (
357+
AdministrativePenaltyInspectionRequirementMap.
358+
get_by_inspection_and_administrative_penalty_id(
359+
inspection_id, administrative_penalty_id
360+
)
358361
)
359362
if existing_requirements:
360363
raise UnprocessableEntityError(
@@ -386,8 +389,11 @@ def insert_or_update_inspection_requirements(
386389
existing_inspection_requirement_ids = {
387390
req.id for req in existing_inspection_requirements
388391
}
389-
existing_requirements = AdministrativePenaltyInspectionRequirementMap.get_by_inspection_and_administrative_penalty_id(
390-
inspection_id, administrative_penalty_id
392+
existing_requirements = (
393+
AdministrativePenaltyInspectionRequirementMap.
394+
get_by_inspection_and_administrative_penalty_id(
395+
inspection_id, administrative_penalty_id
396+
)
391397
)
392398
existing_requirement_ids = {
393399
req.inspection_requirement_id for req in existing_requirements

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,6 @@ def delete_inspection(cls, inspection_id):
379379
inspection = InspectionModel.find_by_id(inspection_id)
380380
if not inspection:
381381
raise ResourceNotFoundError(f"Inspection with ID {inspection_id} not found")
382-
ServiceUtils.inspection_status_check(inspection)
383382
with session_scope() as session:
384383
InspectionModel.delete_inspection(inspection_id, session)
385384
InspectionTypeModel.delete_inspection_type(inspection_id, session)

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,12 +228,19 @@ def _process_documents(source_detail_dict, documents):
228228
title = doc.document_title
229229
if title not in grouped_docs:
230230
grouped_docs[title] = {"documents": [], "document_title": title}
231+
232+
# Process document images
233+
doc_images = []
234+
if doc.images:
235+
ServiceUtils._process_document_images(doc_images, doc.images)
236+
231237
grouped_docs[title]["documents"].append(
232238
{
233239
"appendix_no": (doc.appendix.appendix_no if doc.appendix else None),
234240
"section_number": doc.section_number,
235241
"section_title": doc.section_title,
236242
"description": doc.description,
243+
"document_images": doc_images,
237244
}
238245
)
239246

@@ -258,6 +265,23 @@ def _process_requirement_source_images(source_detail_dict, images):
258265
}
259266
)
260267

268+
@staticmethod
269+
def _process_document_images(doc_images_list, images):
270+
"""Process document images and get presigned URLs."""
271+
for image in images:
272+
image_response = DocService.get_presigned_url(
273+
{
274+
"relative_url": image.relative_url,
275+
"action": ActionOnFileEnum.GET.value,
276+
}
277+
)
278+
doc_images_list.append(
279+
{
280+
"original_file_name": image.original_file_name,
281+
"image_url": image_response.get("presigned_url"),
282+
}
283+
)
284+
261285
@staticmethod
262286
def _add_photos_and_figures(req, requirement_id):
263287
"""Add photos and figures to requirement dict."""

compliance-api/src/compliance_api/templates/ir_template.html

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,17 @@
615615
{% if doc.description %}
616616
<div class="com-ir-document-description">{{ doc.description | safe | replace('style="white-space: pre-wrap;"', '') }}</div>
617617
{% endif %}
618+
{% if doc.document_images and doc.document_images|length > 0 %}
619+
{% for image in doc.document_images %}
620+
<div class="com-ir-photo-section">
621+
<img src="{{ image.image_url }}" alt="{{ image.original_file_name }}"
622+
style="max-width: 600px; display: block; margin: 10px 0;">
623+
<div class="com-ir-photo-caption">
624+
{{ image.original_file_name }}
625+
</div>
626+
</div>
627+
{% endfor %}
628+
{% endif %}
618629
{% endfor %}
619630
{% endfor %}
620631
{% endif %}

0 commit comments

Comments
 (0)