def _convert_goods_types(goods_types): return [{ "Description": good["description"], "Controlled": friendly_boolean(good["is_good_controlled"]), "Control list entries": convert_control_list_entries(good["control_list_entries"]), "Incorporated": friendly_boolean(good["is_good_incorporated"]), } for good in goods_types]
def _get_temporary_export_details(application): if _is_application_export_type_temporary(application): fields = [ ("temp_export_details", applications.TemporaryExportDetails. CheckYourAnswers.TEMPORARY_EXPORT_DETAILS), ( "is_temp_direct_control", applications.TemporaryExportDetails.CheckYourAnswers. PRODUCTS_UNDER_DIRECT_CONTROL, ), ("proposed_return_date", applications.TemporaryExportDetails. CheckYourAnswers.PROPOSED_RETURN_DATE), ] values_to_print = [] for field, display_string in fields: display_entry = {} if application.get(field) is not None: display_entry["Description"] = display_string display_entry["Answer"] = ( friendly_boolean(application.get(field)) + "\n" + (application.get("temp_direct_control_details") or "") if field == "is_temp_direct_control" else application.get(field)) if display_entry: values_to_print.append(display_entry) return values_to_print
def _get_goods_categories(application): return [{ "Description": applications.GoodsCategories.GOODS_CATEGORIES, "Answer": friendly_boolean(application.get("contains_firearm_goods")), }]
def _convert_goods(goods, is_exhibition=False): goods_list = [] for good in goods: goods_dict = { "Description": good["good"]["description"], "Part number": default_na(good["good"]["part_number"]), "Controlled": good["good"]["is_good_controlled"]["value"], "Control list entries": convert_control_list_entries(good["good"]["control_list_entries"]), } if is_exhibition: goods_dict["Product type"] = good["other_item_type"] if good[ "other_item_type"] else good["item_type"] else: goods_dict["Incorporated"] = friendly_boolean( good["is_good_incorporated"]) goods_dict["Quantity"] = ( intcomma(good["quantity"]) + " " + pluralise_unit(good["unit"]["value"], good["quantity"])) goods_dict["Value"] = "£" + good["value"] goods_list.append(goods_dict) return goods_list
def _get_route_of_goods(application): return [{ "Description": "Shipped air waybill or lading", "Answer": friendly_boolean(application.get("is_shipped_waybill_or_lading")) + "\n" + (application.get("non_waybill_or_lading_route_details") or ""), }]
def prettify_data(self, data): countries, _ = get_countries(self.request) countries = [ country["name"] for country in countries["countries"] if country["id"] in data.get("countries", []) ] data["registration_required"] = friendly_boolean( data["registration_required"]) data["control_list_entries[]"] = ", ".join( data.get("control_list_entries", [])) data["countries[]"] = ", ".join(countries) return data
def _get_additional_information(application): field_titles = { "electronic_warfare_requirement": applications.AdditionalInformation.ELECTRONIC_WARFARE_REQUIREMENT, "expedited": applications.AdditionalInformation.EXPEDITED, "expedited_date": applications.AdditionalInformation.EXPEDITED_DATE, "foreign_technology": applications.AdditionalInformation.FOREIGN_TECHNOLOGY, "foreign_technology_type": applications.AdditionalInformation.FOREIGN_TECHNOLOGY_TYPE, "locally_manufactured": applications.AdditionalInformation.LOCALLY_MANUFACTURED, "mtcr_type": applications.AdditionalInformation.MTCR_TYPE, "uk_service_equipment": applications.AdditionalInformation.UK_SERVICE_EQUIPMENT, "uk_service_equipment_type": applications.AdditionalInformation.UK_SERVICE_EQUIPMENT_TYPE, "value": applications.AdditionalInformation.VALUE, } values_to_print = [] for field, title in field_titles.items(): value = application.get(field) if value is not None: values_to_print.append({ "Description": title, "Answer": (friendly_boolean(value) + "\n" + application.get(f"{field}_description") if isinstance(value, bool) and application.get(f"{field}_description") is not None else friendly_boolean(value) if isinstance(value, bool) else value["value"] if isinstance(value, dict) else value), }) return values_to_print
def convert_goods_on_application(goods_on_application, is_exhibition=False): converted = [] for good_on_application in goods_on_application: # TAU's review is saved at "good on application" level, while exporter's answer is at good level. if good_on_application["good"]["is_good_controlled"] is None: is_controlled = "N/A" else: is_controlled = good_on_application["good"]["is_good_controlled"][ "value"] control_list_entries = convert_control_list_entries( good_on_application["good"]["control_list_entries"]) if good_on_application["is_good_controlled"] is not None: is_controlled_application = good_on_application[ "is_good_controlled"]["value"] if is_controlled != is_controlled_application: is_controlled = f"<span class='strike'>{is_controlled}</span><br> {is_controlled_application}" control_list_application = convert_control_list_entries( good_on_application["control_list_entries"]) if control_list_entries != control_list_application: control_list_entries = f"<span class='strike'>{control_list_entries}</span> {control_list_application}" if good_on_application["good"].get("name"): name = good_on_application["good"]["name"] else: name = good_on_application["good"]["description"] item = { "Name": name, "Part number": default_na(good_on_application["good"]["part_number"]), "Controlled": mark_safe(is_controlled), # nosec "Control list entries": mark_safe(control_list_entries), # nosec } if is_exhibition: item["Product type"] = good_on_application[ "other_item_type"] or good_on_application["item_type"] else: item["Incorporated"] = friendly_boolean( good_on_application["is_good_incorporated"]) item["Quantity"] = pluralise_quantity(good_on_application) item["Value"] = f"£{good_on_application['value']}" converted.append(item) return converted
def _get_end_use_details(application): fields = [ ("intended_end_use", "", applications.EndUseDetails.CheckYourAnswers.INTENDED_END_USE_TITLE), ( "is_military_end_use_controls", "military_end_use_controls_ref", applications.EndUseDetails.CheckYourAnswers. INFORMED_TO_APPLY_TITLE, ), ("is_informed_wmd", "informed_wmd_ref", applications.EndUseDetails.CheckYourAnswers.INFORMED_WMD_TITLE), ("is_suspected_wmd", "suspected_wmd_ref", applications.EndUseDetails.CheckYourAnswers.SUSPECTED_WMD_TITLE), ("is_eu_military", "", applications.EndUseDetails.CheckYourAnswers.EU_MILITARY_TITLE), ( "is_compliant_limitations_eu", "compliant_limitations_eu_ref", applications.EndUseDetails.CheckYourAnswers. COMPLIANT_LIMITATIONS_EU_TITLE, ), ] values_to_print = [] for main_field, ref_field, display_string in fields: ds = {} if application.get(main_field) is not None: ds["Description"] = display_string if not isinstance(application.get(main_field), str): ds["Answer"] = friendly_boolean(application.get( main_field)) + "\n" + (application.get(ref_field) or "") else: ds["Answer"] = application.get(main_field) if ds: values_to_print.append(ds) return values_to_print
def test_friendly_boolean_anything_else(self): expected_value = "No" actual_value = ct.friendly_boolean("junk") self.assertEqual(actual_value, expected_value)
def test_friendly_boolean_True(self): expected_value = "Yes" actual_value = ct.friendly_boolean("true") self.assertEqual(actual_value, expected_value)