Example #1
0
 def init(self, request, **kwargs):
     self.object_pk = kwargs["pk"]
     case = get_case(request, self.object_pk)
     self.form = assign_user_and_work_queue(request, kwargs["queue_pk"],
                                            self.object_pk)
     self.action = get_gov_user_from_form_selection
     self.context = {"case": case}
Example #2
0
 def init(self, request, **kwargs):
     user_pk = str(kwargs["user_pk"])
     self.object_pk = kwargs["pk"]
     case = get_case(request, self.object_pk)
     self.form = users_team_queues(request, kwargs["queue_pk"],
                                   self.object_pk, user_pk)
     self.action = put_queue_single_case_assignment
     self.context = {"case": case}
Example #3
0
 def init(self, request, **kwargs):
     self.object_pk = str(kwargs["pk"])
     case = get_case(request, self.object_pk)
     self.case_type = case.type
     self.case_sub_type = case.sub_type
     permissible_statuses = get_permissible_statuses(request, case)
     self.data = case.data
     self.form = change_status_form(get_queue(request, kwargs["queue_pk"]),
                                    case, permissible_statuses)
     self.context = {"case": case}
    def init(self, request, **kwargs):
        self.object_pk = kwargs["pk"]
        case = get_case(request, self.object_pk)
        self.context = {"case": case}
        self.form = respond_to_grading_query_form(request, kwargs["queue_pk"], case)
        self.action = put_goods_query_pv_grading
        self.success_url = reverse("cases:case", kwargs=kwargs)
        self.success_message = PVGradingForm.SUCCESS_MESSAGE

        if not has_permission(request, Permission.RESPOND_PV_GRADING):
            return redirect(reverse_lazy("cases:case", kwargs={"queue_pk": kwargs["queue_pk"], "pk": self.object_pk}))
    def init(self, request, **kwargs):
        self.object_pk = kwargs["pk"]
        case = get_case(request, self.object_pk)
        self.context = {"case": case}
        self.form = respond_to_clc_query_form(request, kwargs["queue_pk"], case)
        self.action = put_goods_query_clc
        self.success_url = reverse("cases:case", kwargs=kwargs)
        self.success_message = CLCReviewGoods.SUCCESS_MESSAGE

        if not has_permission(request, Permission.REVIEW_GOODS):
            return redirect(reverse_lazy("cases:case", kwargs={"queue_pk": kwargs["queue_pk"], "pk": self.object_pk}))
Example #6
0
 def init(self, request, **kwargs):
     self.action = put_rerun_case_routing_rules
     self.object_pk = kwargs["pk"]
     case = get_case(request, self.object_pk)
     self.context = {"case": case}
     self.form = rerun_routing_rules_confirmation_form()
     self.success_url = reverse_lazy("cases:case",
                                     kwargs={
                                         "queue_pk":
                                         self.kwargs["queue_pk"],
                                         "pk": self.object_pk
                                     })
Example #7
0
 def init(self, request, **kwargs):
     self.action = reissue_ogl
     self.object_pk = kwargs["pk"]
     case = get_case(request, self.object_pk)
     self.context = {"case": case}
     self.form = reissue_ogl_confirmation_form(self.object_pk,
                                               self.kwargs["queue_pk"])
     self.success_url = reverse_lazy("cases:case",
                                     kwargs={
                                         "queue_pk":
                                         self.kwargs["queue_pk"],
                                         "pk": self.object_pk
                                     })
Example #8
0
 def init(self, request, **kwargs):
     self.object_pk = kwargs["pk"]
     case = get_case(request, self.object_pk)
     self.data = {"queues": [str(kwargs["queue_pk"])]}
     self.context = {"case": case}
     has_review_date = (case.next_review_date
                        and datetime.datetime.strptime(
                            case.next_review_date,
                            "%Y-%m-%d").date() > timezone.now().date())
     self.form = done_with_case_form(request, kwargs["queue_pk"],
                                     self.object_pk, has_review_date)
     self.action = put_unassign_queues
     self.success_url = reverse_lazy(
         "queues:cases", kwargs={"queue_pk": kwargs["queue_pk"]})
     self.success_message = DoneWithCaseOnQueueForm.SUCCESS_MESSAGE.format(
         case.reference_code)
    def init(self, request, **kwargs):
        self.back_url = reverse_lazy("cases:case",
                                     kwargs={
                                         "queue_pk": kwargs["queue_pk"],
                                         "pk": kwargs["pk"],
                                         "tab": "documents"
                                     })
        self.contacts = get_case_additional_contacts(request, kwargs["pk"])
        self.applicant = get_case_applicant(request, kwargs["pk"])
        self.template = request.POST.get(TEMPLATE)

        params = {
            "case": self.kwargs["pk"],
            "page": self.request.GET.get("page", 1)
        }
        if self.kwargs.get("decision_key"):
            params["decision"] = self.kwargs["decision_key"]
        self.templates, _ = get_letter_templates(
            self.request, convert_dict_to_query_params(params))
        self.data = {"total_pages": self.templates["total_pages"]}

        if self.template and not request.POST.get(TEXT):
            template, _ = get_letter_template(
                request,
                self.template,
                params=convert_dict_to_query_params({TEXT: True}))
            self.data[TEXT] = template[TEXT]

        self.object_pk = kwargs["pk"]
        self.action = self._validate
        self.additional_context = {
            "case": get_case(request, self.object_pk),
            "applicant": self.applicant,
            "contacts": self.contacts,
        }
Example #10
0
    def init(self, request, **kwargs):
        self.object_pk = kwargs["pk"]
        self.level = self.get_level()
        flags = self.get_potential_flags()
        self.success_message = getattr(SetFlagsForm, self.level).SUCCESS_MESSAGE

        if self.level == FlagLevel.ORGANISATIONS:
            self.context = {"organisation": "123"}
            self.form = set_flags_form(flags, self.level)
            self.form.back_link = BackLink(url=reverse("organisations:organisation", kwargs={"pk": self.object_pk}))
        else:
            self.case = get_case(request, self.object_pk)
            self.context = {"case": self.case, "hide_flags_row": True}
            show_sidebar = False

            if self.level == FlagLevel.GOODS or self.level == FlagLevel.DESTINATIONS:
                show_sidebar = True
                self.context["goods"] = get_param_goods(self.request, self.case)
                self.context["destinations"] = get_param_destinations(self.request, self.case)

            self.form = set_flags_form(flags, self.level, show_case_header=True, show_sidebar=show_sidebar)
            self.form.back_link = BackLink(
                url=reverse("cases:case", kwargs={"queue_pk": kwargs["queue_pk"], "pk": self.object_pk})
            )

        self.data = {"flags": self.get_object_flags()}
Example #11
0
 def init(self, request, **kwargs):
     self.object_pk = kwargs["pk"]
     case = get_case(request, self.object_pk)
     self.data = case
     self.form = move_case_form(request,
                                get_queue(request, kwargs["queue_pk"]),
                                case)
     self.action = put_case_queues
     self.context = {"case": case}
     self.success_message = cases.Manage.MoveCase.SUCCESS_MESSAGE
     self.success_url = reverse_lazy("cases:case",
                                     kwargs={
                                         "queue_pk":
                                         self.kwargs["queue_pk"],
                                         "pk": self.object_pk
                                     })
Example #12
0
    def get(self, request, **kwargs):
        case_id = str(kwargs["pk"])
        case = get_case(request, case_id)

        form = attach_documents_form(
            reverse("cases:case",
                    kwargs={
                        "queue_pk": kwargs["queue_pk"],
                        "pk": case_id,
                        "tab": "documents"
                    }))

        return form_page(request,
                         form,
                         extra_data={
                             "case_id": case_id,
                             "case": case
                         })
Example #13
0
 def init(self, request, **kwargs):
     query_type = request.GET.get("query_type", ECJUQueryTypes.ECJU_QUERY)
     self.object_pk = kwargs["pk"]
     self.context = {"case": get_case(request, self.object_pk)}
     self.form = new_ecju_query_form(kwargs["queue_pk"], self.object_pk, query_type)
     self.action = post_ecju_query
     self.success_message = "ECJU query sent successfully"
     self.success_url = reverse(
         "cases:case", kwargs={"queue_pk": kwargs["queue_pk"], "pk": self.object_pk, "tab": "ecju-queries"}
     )
Example #14
0
    def get(self, request, **kwargs):
        self.case_id = str(kwargs["pk"])
        self.case = get_case(request, self.case_id)
        self.queue_id = kwargs["queue_pk"]
        self.queue = get_queue(request, self.queue_id)

        self.permissions = get_user_permissions(self.request)

        if hasattr(self, "get_" + self.case.sub_type + "_" + self.case.type):
            getattr(self, "get_" + self.case.sub_type + "_" + self.case.type)()
Example #15
0
 def init(self, request, **kwargs):
     self.object_pk = kwargs["pk"]
     case = get_case(request, self.object_pk)
     self.data = {"gov_user_pk": case.case_officer.get("id")}
     self.form = assign_case_officer_form(
         request,
         case.case_officer,
         self.kwargs["queue_pk"],
         self.object_pk,
         is_compliance=True if case.case_type["type"]["key"]
         == CaseType.COMPLIANCE.value else False,
     )
     self.context = {"case": case}
     self.success_url = reverse("cases:case",
                                kwargs={
                                    "queue_pk": self.kwargs["queue_pk"],
                                    "pk": self.object_pk
                                })
     self.get_action()
Example #16
0
 def get_object_flags(self):
     if self.level == FlagLevel.CASES:
         return get_case(self.request, self.object_pk)["flags"]
     elif self.level == FlagLevel.ORGANISATIONS:
         return get_organisation(self.request, self.object_pk)["flags"]
     elif self.level == FlagLevel.GOODS:
         goods = get_param_goods(self.request, self.case)
         return get_matching_flags(goods)
     elif self.level == FlagLevel.DESTINATIONS:
         destinations = get_param_destinations(self.request, self.case)
         return get_matching_flags(destinations)
 def init(self, request, **kwargs):
     self.object_pk = kwargs["pk"]
     self.context = {"case": get_case(request, self.object_pk)}
     self.data = {
         "people_present":
         get_compliance_people_present(request, self.object_pk)
     }
     self.form = people_present_form(kwargs["queue_pk"], kwargs["pk"])
     self.success_url = reverse("cases:case", kwargs=kwargs)
     self.success_message = ComplianceForms.PeoplePresent.SUCCESS
     self.action = post_compliance_person_present
Example #18
0
class Finalise(TemplateView):
    """
    Finalise a case and change the case status to finalised
    """
    @staticmethod
    def _get_goods(request, pk, case_type):
        goods = []
        if case_type == CaseType.STANDARD.value:
            goods, status_code = get_finalise_application_goods(request, pk)
            if status_code != HTTPStatus.OK:
                return error_page(request, FinaliseLicenceForm.GOODS_ERROR)
            goods = goods["goods"]
        return goods

    def get(self, request, *args, **kwargs):
        case = get_case(request, str(kwargs["pk"]))
        case_type = case.data["case_type"]["sub_type"]["key"]

        if case_type == CaseType.OPEN.value:
            approve = get_open_licence_decision(request,
                                                str(kwargs["pk"])) == "approve"
            nlr = False
        else:
            advice = filter_advice_by_level(case["advice"], "final")
            items = [item["type"]["key"] for item in advice]
            approve = any(
                [item == "approve" or item == "proviso" for item in items])
            nlr = not approve and "refuse" not in items

        case_id = case["id"]

        if approve:
            licence_data, _ = get_licence(request, str(kwargs["pk"]))
            licence = licence_data.get("licence")
            # If there are licenced goods, we want to use the reissue goods flow.
            if licence:
                form, form_data = reissue_finalise_form(
                    request, licence, case, kwargs["queue_pk"])
            else:
                goods = self._get_goods(request, str(kwargs["pk"]), case_type)
                form, form_data = finalise_form(request, case, goods,
                                                kwargs["queue_pk"])

            return form_page(request,
                             form,
                             data=form_data,
                             extra_data={"case": case})
        else:
            return form_page(
                request,
                deny_licence_form(
                    kwargs["queue_pk"], case_id, case.data["case_type"]
                    ["sub_type"]["key"] == CaseType.OPEN.value, nlr),
            )
Example #19
0
 def init(self, request, **kwargs):
     self.object_pk = kwargs["pk"]
     case = get_case(request, self.object_pk)
     self.form = generate_documents_form(kwargs["queue_pk"], self.object_pk)
     decisions, _ = get_final_decision_documents(request, self.object_pk)
     decisions = decisions["documents"]
     can_submit = all(
         [decision.get("document") for decision in decisions.values()])
     self.context = {
         "case": case,
         "can_submit": can_submit,
         "decisions": decisions,
     }
     self.action = grant_licence
     self.success_message = GenerateGoodsDecisionForm.SUCCESS_MESSAGE
     self.success_url = reverse_lazy("cases:case",
                                     kwargs={
                                         "queue_pk": kwargs["queue_pk"],
                                         "pk": self.object_pk
                                     })
Example #20
0
 def init(self, request, **kwargs):
     self.object_pk = kwargs["pk"]
     self.data = get_case(request, self.object_pk)
     self.form = set_next_review_date_form(
         self.kwargs["queue_pk"],
         self.object_pk,
     )
     self.success_url = reverse("cases:case",
                                kwargs={
                                    "queue_pk": self.kwargs["queue_pk"],
                                    "pk": self.object_pk
                                })
Example #21
0
    def init(self, request, **kwargs):
        self.object_pk = kwargs["pk"]
        case = get_case(request, self.object_pk)
        self.data = flatten_goods_data(get_param_goods(request, case))
        self.form = review_goods_form(request,
                                      is_goods_type="goods_types"
                                      in request.GET,
                                      **kwargs)
        self.context = {"case": case, "goods": get_param_goods(request, case)}
        self.action = post_review_goods
        self.success_url = reverse("cases:case",
                                   kwargs={
                                       "queue_pk": kwargs["queue_pk"],
                                       "pk": self.object_pk
                                   })

        if not has_permission(request, Permission.REVIEW_GOODS):
            return redirect(
                reverse_lazy("cases:case",
                             kwargs={
                                 "queue_pk": kwargs["queue_pk"],
                                 "pk": self.object_pk
                             }))
 def init(self, request, **kwargs):
     document, _ = get_generated_document(request, str(kwargs["pk"]),
                                          str(kwargs["dpk"]))
     template = document["template"]
     self.data = {TEXT: document.get(TEXT)}
     self.object_pk = kwargs["pk"]
     self.form = edit_document_text_form(
         {
             "queue_pk": self.kwargs["queue_pk"],
             "pk": self.kwargs["pk"],
             "tpk": template
         },
         post_url="cases:generate_document_preview",
     )
     self.context = {"case": get_case(request, self.object_pk)}
Example #23
0
 def init(self, request, **kwargs):
     self.object_pk = kwargs["pk"]
     self.form = add_additional_contact_form(request,
                                             self.kwargs["queue_pk"],
                                             self.object_pk)
     self.action = post_case_additional_contacts
     self.success_message = cases.CasePage.AdditionalContactsTab.SUCCESS_MESSAGE
     self.context = {"case": get_case(request, self.object_pk)}
     self.success_url = reverse(
         "cases:case",
         kwargs={
             "queue_pk": self.kwargs["queue_pk"],
             "pk": self.object_pk,
             "tab": "additional-contacts"
         },
     )
Example #24
0
class ClearFinalAdvice(TemplateView):
    """
    Clear final advice
    """
    def post(self, request, **kwargs):
        case = get_case(request, kwargs["pk"])

        if request.POST.get("action") == "delete":
            clear_final_advice(request, case.get("id"))

        messages.success(self.request, "Final advice cleared successfully")

        return redirect(
            reverse("cases:case",
                    kwargs={
                        "queue_pk": kwargs["queue_pk"],
                        "pk": kwargs["pk"],
                        "tab": "final-advice"
                    }) + "?grouped-advice-view=" +
            request.GET.get("grouped-advice-view", ""))
Example #25
0
 def init(self, request, **kwargs):
     self.object_pk = kwargs["pk"]
     self.context = {
         "case":
         get_case(request, self.object_pk),
         "goods_type_country_decisions":
         get_good_countries_decisions(request, self.object_pk),
         "decisions": {
             "approve": "Approve",
             "refuse": "Reject"
         },
     }
     self.form = finalise_goods_countries_form(kwargs["pk"],
                                               kwargs["queue_pk"])
     self.action = post_good_countries_decisions
     self.success_url = reverse_lazy("cases:finalise",
                                     kwargs={
                                         "queue_pk": kwargs["queue_pk"],
                                         "pk": self.object_pk
                                     })
Example #26
0
    def init(self, request, **kwargs):
        self.object_pk = kwargs["pk"]
        self.case = get_case(request, self.object_pk)
        self.tab = kwargs["tab"]
        self.data = flatten_advice_data(
            request,
            self.case,
            [
                *get_param_goods(request, self.case),
                *get_param_destinations(request, self.case)
            ],
            self.tab,
        )
        self.form = give_advice_form(
            request,
            self.case,
            self.tab,
            kwargs["queue_pk"],
            get_denial_reasons(request, True, True),
        )
        self.context = {
            "case": self.case,
            "goods": get_param_goods(request, self.case),
            "destinations": get_param_destinations(request, self.case),
        }
        self.success_message = "Advice posted successfully"
        self.success_url = (reverse("cases:case",
                                    kwargs={
                                        "queue_pk": kwargs["queue_pk"],
                                        "pk": self.object_pk,
                                        "tab": self.tab
                                    }) + "?grouped-advice-view=" +
                            request.GET.get("grouped-advice-view", ""))

        if self.tab not in ["user-advice", "team-advice", "final-advice"]:
            raise Http404
Example #27
0
                                                kwargs["queue_pk"])

            return form_page(request,
                             form,
                             data=form_data,
                             extra_data={"case": case})
        else:
            return form_page(
                request,
                deny_licence_form(
                    kwargs["queue_pk"], case_id, case.data["case_type"]
                    ["sub_type"]["key"] == CaseType.OPEN.value, nlr),
            )

    def post(self, request, *args, **kwargs):
        case = get_case(request, str(kwargs["pk"]))
        application_id = case.data.get("id")
        data = request.POST.copy()

        res = finalise_application(request, application_id, data)
        licence_data, _ = get_licence(request, str(kwargs["pk"]))
        licence = licence_data.get("licence")

        if res.status_code == HTTPStatus.FORBIDDEN:
            return error_page(request, "You do not have permission.")

        if res.status_code != HTTPStatus.OK:
            # If there are licenced goods, we want to use the reissue goods flow.
            if licence:
                form, form_data = reissue_finalise_form(
                    request, licence, case, kwargs["queue_pk"])