Example #1
0
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]
Example #2
0
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
Example #3
0
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
Example #5
0
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 ""),
    }]
Example #6
0
    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
Example #7
0
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
Example #8
0
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
Example #9
0
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)