コード例 #1
0
 def init(self, request, **kwargs):
     self.object_pk = kwargs["pk"]
     application = get_application(self.request, self.object_pk)
     good, _ = get_good(request, kwargs["good_pk"])
     self.form = good_on_application_form(request, good, application["case_type"]["sub_type"], self.object_pk)
     self.action = post_good_on_application
     self.success_url = reverse_lazy("applications:goods", kwargs={"pk": self.object_pk})
コード例 #2
0
 def get_success_url(self):
     good = get_good(self.request, self.object_pk, full_detail=True)[0]
     is_software_technology = good.get("item_category")["key"] in [
         "group3_software", "group3_technology"
     ]
     # Next question information security if good is software/hardware
     if is_software_technology:
         if good.get("uses_information_security") is None:
             if "good_pk" in self.kwargs:
                 return reverse_lazy(
                     "applications:good_information_security",
                     kwargs={
                         "pk": self.application_id,
                         "good_pk": self.object_pk
                     },
                 )
             else:
                 return reverse_lazy("goods:good_information_security",
                                     kwargs={"pk": self.object_pk})
     # Next question good component if good is in category 1
     if not good.get("is_component") and not is_software_technology:
         if "good_pk" in self.kwargs:
             return reverse_lazy("applications:good_component",
                                 kwargs={
                                     "pk": self.application_id,
                                     "good_pk": self.object_pk
                                 })
         else:
             return reverse_lazy("goods:good_component",
                                 kwargs={"pk": self.object_pk})
     # Edit
     else:
         return return_to_good_summary(self.kwargs, self.application_id,
                                       self.object_pk)
コード例 #3
0
    def get(self, request, **kwargs):
        application_id = str(kwargs["pk"])
        good_id = str(kwargs["good_pk"])
        good = get_good(request, good_id, full_detail=True)[0]

        context = {"good": good, "application_id": application_id, "good_id": good_id}

        return render(request, "applications/goods/add-good-detail-summary.html", context)
コード例 #4
0
 def init(self, request, **kwargs):
     if "good_pk" in kwargs:
         # coming from the application
         self.object_pk = str(kwargs["good_pk"])
         self.application_id = str(kwargs["pk"])
     else:
         self.object_pk = str(kwargs["pk"])
     self.data = get_good(request, self.object_pk)[0]
     self.form = edit_grading_form(request, self.object_pk)
     self.action = edit_good_pv_grading
コード例 #5
0
    def dispatch(self, request, *args, **kwargs):
        self.good_id = str(kwargs["pk"])
        self.good = get_good(request, self.good_id, full_detail=True)[0]
        self.view_type = kwargs["type"]

        if self.view_type not in [
                "case-notes", "ecju-queries", "ecju-generated-documents"
        ]:
            return Http404

        return super(GoodsDetail, self).dispatch(request, *args, **kwargs)
コード例 #6
0
    def init(self, request, **kwargs):
        self.object_pk = str(kwargs["pk"])
        good, _ = get_good(request, self.object_pk)

        raise_a_clc_query = "unsure" == good["is_good_controlled"]["key"]
        raise_a_pv_query = "grading_required" == good["is_pv_graded"]["key"]

        self.form = raise_a_goods_query(self.object_pk, raise_a_clc_query,
                                        raise_a_pv_query)
        self.action = raise_goods_query
        self.success_url = reverse_lazy("goods:good",
                                        kwargs={"pk": self.object_pk})
コード例 #7
0
    def get(self, request, **kwargs):
        good, status_code = get_good(request, str(kwargs['pk']))
        good = good.get('good')

        context = {
            'title': 'Add a pre-existing good to your application',
            'page': forms.preexisting_good_form(good.get('id'),
                                                good.get('description'),
                                                good.get('control_code'),
                                                good.get('part_number')),
        }
        return render(request, 'form/form.html', context)
コード例 #8
0
    def dispatch(self, request, *args, **kwargs):
        self.case_id = str(kwargs["case_pk"])
        self.object_type = kwargs["object_type"]
        self.ecju_query_id = str(kwargs["query_pk"])
        self.ecju_query = get_ecju_query(request, self.case_id,
                                         self.ecju_query_id)

        if self.object_type == "good":
            self.extra_id = kwargs["extra_pk"]
            good, _ = get_good(request, self.extra_id, full_detail=True)
            self.case_id = good["case_id"]
            self.ecju_query = get_ecju_query(request, self.case_id,
                                             self.ecju_query_id)

        if self.object_type == "application":
            self.back_link = reverse_lazy("applications:application",
                                          kwargs={
                                              "pk": self.case_id,
                                              "type": "ecju-queries"
                                          })
        elif self.object_type == "good":
            self.back_link = reverse_lazy("goods:good_detail",
                                          kwargs={
                                              "pk": self.extra_id,
                                              "type": "ecju-queries"
                                          })
        elif self.object_type == "end-user-advisory":
            self.back_link = reverse_lazy("end_users:end_user_detail",
                                          kwargs={
                                              "pk": self.case_id,
                                              "type": "ecju-queries"
                                          })
        elif self.object_type == "compliance-site":
            self.back_link = reverse_lazy("compliance:compliance_site_details",
                                          kwargs={
                                              "pk": self.case_id,
                                              "tab": "ecju-queries"
                                          })
        elif self.object_type == "compliance-visit":
            self.extra_id = kwargs["extra_pk"]
            self.back_link = reverse_lazy(
                "compliance:compliance_visit_details",
                kwargs={
                    "site_case_id": self.extra_id,
                    "pk": self.case_id,
                    "tab": "ecju-queries"
                },
            )

        if self.ecju_query["response"]:
            return redirect(self.back_link)

        return super(RespondToQuery, self).dispatch(request, *args, **kwargs)
コード例 #9
0
 def get_success_url(self):
     good = get_good(self.request, self.object_pk, full_detail=True)[0]
     # Next question military use
     if not good.get("is_military_use"):
         if "good_pk" in self.kwargs:
             return reverse_lazy("applications:good_military_use",
                                 kwargs={
                                     "pk": self.application_id,
                                     "good_pk": self.object_pk
                                 })
         else:
             return reverse_lazy("goods:good_military_use",
                                 kwargs={"pk": self.object_pk})
     # Edit
     else:
         return return_to_good_summary(self.kwargs, self.application_id,
                                       self.object_pk)
コード例 #10
0
 def get_success_url(self):
     good = get_good(self.request, self.object_pk, full_detail=True)[0]
     # Next question information security - boolean
     if good.get("uses_information_security") is None:
         if "good_pk" in self.kwargs:
             return reverse_lazy(
                 "applications:good_information_security",
                 kwargs={
                     "pk": self.application_id,
                     "good_pk": self.object_pk
                 },
             )
         else:
             return reverse_lazy("goods:good_information_security",
                                 kwargs={"pk": self.object_pk})
     # Edit
     else:
         return return_to_good_summary(self.kwargs, self.application_id,
                                       self.object_pk)
コード例 #11
0
    def post(self, request, **kwargs):
        draft_id = request.GET.get('id')
        data, status_code = post_draft_preexisting_goods(request, draft_id, request.POST)

        if status_code != 201:
            good, status_code = get_good(request, str(kwargs['pk']))
            good = good.get('good')

            context = {
                'title': 'Add a pre-existing good to your application',
                'page': forms.preexisting_good_form(good.get('id'),
                                                    good.get('description'),
                                                    good.get('control_code'),
                                                    good.get('part_number')),
                'body': request.POST,
                'errors': data.get('errors'),
            }
            return render(request, 'form/form.html', context)

        return redirect(reverse_lazy('new_application:goods') + '?id=' + draft_id)
コード例 #12
0
    def get_success_url(self):
        if "good_pk" in self.kwargs:
            return reverse_lazy("applications:add_good_summary",
                                kwargs={
                                    "pk": self.application_id,
                                    "good_pk": self.object_pk
                                })
        good = get_good(self.request, self.object_pk, full_detail=True)[0]

        raise_a_clc_query = "unsure" == good["is_good_controlled"]["key"]
        raise_a_pv_query = "grading_required" == good["is_pv_graded"]["key"]

        if not good.get("documents") and not good.get(
                "missing_document_reason"):
            return reverse_lazy("goods:add_document",
                                kwargs={"pk": self.object_pk})
        elif raise_a_clc_query or raise_a_pv_query:
            return reverse_lazy("goods:raise_goods_query",
                                kwargs={"pk": self.object_pk})
        else:
            return reverse_lazy("goods:good", kwargs={"pk": self.object_pk})
コード例 #13
0
    def post(self, request, **kwargs):
        if self.view_type != "case-notes":
            return Http404

        good_id = kwargs["pk"]
        data, _ = get_good(request, str(good_id), full_detail=True)

        response, _ = post_case_notes(request, data["case_id"], request.POST)

        if "errors" in response:
            return self.get(request,
                            error=response["errors"]["text"][0],
                            text=request.POST.get("text"),
                            **kwargs)

        return redirect(
            reverse_lazy("goods:good_detail",
                         kwargs={
                             "pk": good_id,
                             "type": "case-notes"
                         }))
コード例 #14
0
    def post(self, request, **kwargs):
        self.request.upload_handlers.insert(0, S3FileUploadHandler(request))

        good_id = str(kwargs["pk"])
        good, _ = get_good(request, good_id)

        data, error = add_document_data(request)

        if error:
            return error_page(request, error)

        data, status_code = post_good_documents(request, good_id, data)
        if status_code != HTTPStatus.CREATED:
            return error_page(request, data["errors"]["file"])

        raise_a_clc_query = "unsure" == good["is_good_controlled"]["key"]
        raise_a_pv_query = "grading_required" == good["is_pv_graded"]["key"]

        if not (raise_a_clc_query or raise_a_pv_query):
            return redirect(reverse("goods:good", kwargs={"pk": good_id}))
        else:
            return redirect(
                reverse("goods:raise_goods_query", kwargs={"pk": good_id}))
コード例 #15
0
 def get(self, request, **kwargs):
     data, _ = get_good(request, str(kwargs["pk"]))
     return form_page(request, delete_good_form(data))