def _convert_document(party, document_type, application_id, editable): document = party.get("document") if not document: return default_na(None) if document["safe"] is None: return "Processing" if not document["safe"]: return convert_to_link( f"/applications/{application_id}/{document_type}/{party['id']}/document/attach/", Parties.Documents.VIRUS) if editable: return convert_to_link( f"/applications/{application_id}/{document_type}/{party['id']}/document/download", "Download", include_br=True, ) + convert_to_link( f"/applications/{application_id}/{document_type}/{party['id']}/document/delete", Parties.Documents.DELETE) else: return convert_to_link( f"/applications/{application_id}/{document_type}/{party['id']}/document/download", Parties.Documents.DOWNLOAD, include_br=True, )
def convert_party(party, application, editable): if not party: return {} has_clearance = application["case_type"]["sub_type"]["key"] == F680 data = { "Name": party["name"], "Type": party["sub_type_other"] if party["sub_type_other"] else party["sub_type"]["value"], "Clearance level": None, "Descriptors": party.get("descriptors"), "Address": get_address(party), "Website": convert_to_link(party["website"]), } if party["type"] == "third_party": data["Role"] = party.get("role_other") if party.get( "role_other") else party.get("role").get("value") if application["case_type"]["sub_type"]["key"] != OPEN: if party.get("document"): document_type = party[ "type"] if party["type"] != "end_user" else "end-user" document = _convert_document(party, document_type, application["id"], editable) else: document = convert_to_link( reverse_lazy( f"applications:{party['type']}_attach_document", kwargs={ "pk": application["id"], "obj_pk": party["id"] }, ), "Attach document", ) data["Document"] = document if has_clearance: data["Clearance level"] = party["clearance_level"].get( "value") if party["clearance_level"] else None else: data.pop("Clearance level") # Only display descriptors on third parties for non F680 applications if party["type"] != "third_party" and not data.get("Descriptors"): data.pop("Descriptors") return data
def _get_supporting_documentation(supporting_documentation, application_id): return [{ "File name": convert_to_link( reverse_lazy("applications:download_additional_document", kwargs={ "pk": application_id, "obj_pk": document["id"] }), document["name"], ), "Description": default_na(document["description"]), } for document in supporting_documentation]
def _convert_standard_application(application, editable=False, is_summary=False): converted_app = { convert_to_link( reverse_lazy(f"applications:good_detail_summary", kwargs={"pk": application["id"]}), applications.ApplicationSummaryPage.GOODS, ): _convert_goods(application["goods"]), applications.ApplicationSummaryPage.END_USE_DETAILS: _get_end_use_details(application), applications.ApplicationSummaryPage.ROUTE_OF_GOODS: _get_route_of_goods(application), **({ applications.ApplicationSummaryPage.TEMPORARY_EXPORT_DETAILS: _get_temporary_export_details(application), } if _is_application_export_type_temporary(application) else {}), applications.ApplicationSummaryPage.GOODS_LOCATIONS: _convert_goods_locations(application["goods_locations"]), applications.ApplicationSummaryPage.END_USER: convert_party(application["end_user"], application, editable), **({ applications.ApplicationSummaryPage.ULTIMATE_END_USERS: [ convert_party(party, application, editable) for party in application["ultimate_end_users"] ], } if has_incorporated_goods(application) else {}), applications.ApplicationSummaryPage.CONSIGNEE: convert_party(application["consignee"], application, editable), applications.ApplicationSummaryPage.THIRD_PARTIES: [ convert_party(party, application, editable) for party in application["third_parties"] ], applications.ApplicationSummaryPage.SUPPORTING_DOCUMENTATION: _get_supporting_documentation(application["additional_documents"], application["id"]), } return converted_app
def _convert_attachable_document(address, attach_address, document, editable): if not document and editable: return convert_to_link(attach_address, Parties.Documents.ATTACH) return convert_to_link(address, "Download")