Ejemplo n.º 1
0
    def get(self, request, **kwargs):
        status_props, _ = get_status_properties(
            request, self.application["status"]["key"])

        context = {
            "case_id": self.application_id,
            "application": self.application,
            "type": self.view_type,
            "answers": {
                **convert_application_to_check_your_answers(self.application)
            },
            "status_is_read_only": status_props["is_read_only"],
            "status_is_terminal": status_props["is_terminal"],
            "errors": kwargs.get("errors"),
            "text": kwargs.get("text", ""),
        }

        context["activity"] = get_activity(request, self.application_id) or {}

        if self.application.sub_type != HMRC:
            if self.view_type == "case-notes":
                context["notes"] = get_case_notes(request,
                                                  self.case_id)["case_notes"]

            if self.view_type == "ecju-queries":
                context["open_queries"], context[
                    "closed_queries"] = get_application_ecju_queries(
                        request, self.case_id)

        if self.view_type == "generated-documents":
            generated_documents, _ = get_case_generated_documents(
                request, self.application_id)
            context["generated_documents"] = generated_documents["results"]

        return render(request, "applications/application.html", context)
Ejemplo n.º 2
0
    def get(self, request, **kwargs):
        application_id = str(kwargs["pk"])
        application = get_application(request, application_id)
        notes = get_case_notes(request, application_id)["case_notes"]

        context = {
            "application":
            application,
            "notes":
            notes,
            "post_url":
            reverse_lazy("applications:notes", kwargs={"pk": application_id}),
            "error":
            kwargs.get("error"),
            "text":
            kwargs.get("text", ""),
        }
        return render(request, "applications/case-notes.html", context)
Ejemplo n.º 3
0
    def get(self, request, **kwargs):

        context = {
            "case_id": self.application_id,
            "application": self.application,
            "answers": {
                **convert_application_to_check_your_answers(self.application,
                                                            summary=True)
            },
            "summary_page": True,
            "application_type": get_application_type_string(self.application),
        }

        if self.application.sub_type != HMRC:
            context["notes"] = get_case_notes(request,
                                              self.case_id)["case_notes"]
            if self.application.sub_type == STANDARD:
                context["reference_code"] = get_reference_number_description(
                    self.application)

        return render(request, "applications/application.html", context)
Ejemplo n.º 4
0
    def get(self, request, pk, tab, **kwargs):
        data = get_compliance_detail(request, pk)
        data["tab"] = tab
        if tab == "case-notes":
            data["notes"] = get_case_notes(request, str(pk))["case_notes"]
        elif tab == "ecju-queries":
            data["open_queries"], data[
                "closed_queries"] = get_application_ecju_queries(
                    request, str(pk))
        elif tab == "generated-documents":
            generated_documents, _ = get_case_generated_documents(
                request, str(pk))
            data["generated_documents"] = generated_documents["results"]
        elif tab == "visit-reports":
            data["visit_reports"] = get_case_visit_reports(
                request, str(pk), request.GET.get("page"))

        if kwargs.get("errors"):
            data["errors"] = kwargs["errors"]
            data["text"] = kwargs["text"]

        return render(request, "compliance/compliance/site-case.html", data)
Ejemplo n.º 5
0
    def get(self, request, **kwargs):
        documents = get_good_documents(request, str(self.good_id))

        context = {
            "good": self.good,
            "documents": documents,
            "type": self.view_type,
            "error": kwargs.get("error"),
            "text": kwargs.get("text", ""),
        }

        if self.good["query"]:
            context["case_id"] = self.good["query"]["id"]
            status_props, _ = get_status_properties(
                request, self.good["case_status"]["key"])
            context["status_is_read_only"] = status_props["is_read_only"]
            context["status_is_terminal"] = status_props["is_terminal"]

            if self.view_type == "ecju-generated-documents":
                generated_documents, _ = get_case_generated_documents(
                    request, self.good["query"]["id"])
                context["generated_documents"] = generated_documents["results"]

        if self.view_type == "case-notes":
            if self.good.get("case_id"):
                case_notes = get_case_notes(request,
                                            self.good["case_id"])["case_notes"]
                context["notes"] = filter(
                    lambda note: note["is_visible_to_exporter"], case_notes)

        if self.view_type == "ecju-queries":
            context["open_queries"], context[
                "closed_queries"] = get_application_ecju_queries(
                    request, self.good["case_id"])

        return render(request, "goods/good.html", context)
Ejemplo n.º 6
0
    def get(self, request, **kwargs):
        context = {
            "case_id": self.case_id,
            "end_user_advisory": self.end_user_advisory,
            "type": self.view_type,
            "error": kwargs.get("error"),
            "text": kwargs.get("text", ""),
        }

        if self.view_type == "case-notes":
            case_notes = get_case_notes(request, self.case_id)["case_notes"]
            context["notes"] = case_notes

        if self.view_type == "ecju-queries":
            context["open_queries"], context[
                "closed_queries"] = get_application_ecju_queries(
                    request, self.case_id)

        if self.view_type == "ecju-generated-documents":
            generated_documents, _ = get_case_generated_documents(
                request, self.case_id)
            context["generated_documents"] = generated_documents["results"]

        return render(request, "end-users/end-user.html", context)
Ejemplo n.º 7
0
def get_application_task_list(request, application, errors=None):
    user_permissions = get_user_permissions(request)
    additional_documents, _ = get_additional_documents(request,
                                                       application["id"])
    sites, _ = get_sites_on_draft(request, application["id"])
    external_locations, _ = get_external_locations_on_draft(
        request, application["id"])
    application_type = application.sub_type
    is_editing, edit_type = get_edit_type(application)

    context = {
        "strings": _get_strings(application_type),
        "application": application,
        "application_type": application_type,
        "is_editing": is_editing,
        "edit_type": edit_type,
        "licence_type": get_application_type_string(application),
        "errors": errors,
    }

    if application_type == HMRC:
        context["locations"] = application["goods_locations"] or application[
            "have_goods_departed"]
        return render(request, "applications/hmrc-application.html", context)

    context[
        "can_submit"] = Permissions.SUBMIT_LICENCE_APPLICATION in user_permissions
    context["supporting_documents"] = additional_documents["documents"]
    context["locations"] = sites["sites"] or external_locations[
        "external_locations"]
    context["notes"] = get_case_notes(request, application["id"])["case_notes"]

    if application_type == STANDARD:
        context[
            "reference_number_description"] = get_reference_number_description(
                application)
        context["route_of_goods"] = get_route_of_goods(application)
        if _is_application_export_type_temporary(application):
            context["temporary_export_details"] = get_temporary_export_details(
                application)
    elif application_type == OPEN:
        context["countries"] = [
            country_entry["country_id"]
            for country_entry in get_application_countries_and_contract_types(
                request, application["id"])["countries"]
        ]
        context["goodstypes"] = application["goods_types"]
        if _is_application_export_type_temporary(application):
            context["temporary_export_details"] = get_temporary_export_details(
                application)
        goods_types = application.get("goods_types")
        if goods_types:
            destination_countries = [
                goods_type["countries"] for goods_type in goods_types
            ][0]
            context["destinations"] = set(
                [destination["id"] for destination in destination_countries])
            if application["goodstype_category"][
                    "key"] == GoodsTypeCategory.MILITARY:
                context["ultimate_end_users_required"] = True in [
                    goods_type["is_good_incorporated"]
                    for goods_type in goods_types
                ]
        context["route_of_goods"] = get_route_of_goods(application)
        context[
            "is_oicl_appplication"] = application.type_reference == CaseTypes.OICL
        if application.get("goodstype_category"):
            goodstype_category = application.get("goodstype_category").get(
                "key")
            context["is_uk_continental_shelf_application"] = (
                goodstype_category == GoodsTypeCategory.UK_CONTINENTAL_SHELF)
            countries_and_contract_types = get_application_countries_and_contract_types(
                request, application["id"])["countries"]
            if context["is_uk_continental_shelf_application"]:
                context["countries_missing_contract_types"] = [
                    entry["country_id"]
                    for entry in countries_and_contract_types
                    if not entry["contract_types"]
                ]
            context[
                "is_crypto_application"] = goodstype_category == GoodsTypeCategory.CRYPTOGRAPHIC
            context[
                "is_military_dual_use_application"] = goodstype_category == GoodsTypeCategory.MILITARY
            context[
                "oiel_noneditable_countries"] = OielLicenceTypes.is_non_editable_country(
                    goodstype_category)

        # Check if contract types include 'nuclear_related' and set attribute end_user_mandatory
        contract_types = []
        for country in countries_and_contract_types:
            if country["contract_types"]:
                contract_types.extend(country["contract_types"].split(","))

        context["end_user_mandatory"] = "nuclear_related" in set(
            contract_types)

    if not application_type == OPEN:
        context["goods"] = get_application_goods(request, application["id"])
        context["ultimate_end_users_required"] = True in [
            good["is_good_incorporated"] for good in context["goods"]
        ]

    return render(request, "applications/task-list.html", context)