示例#1
0
        def _wrapped_view(request, *args, **kwargs):
            if helpers.has_permission(request, permission):
                return view_func(request, *args, **kwargs)

            raise PermissionDeniedError(
                f"You don't have the permission '{permission.value}' to view this, "
                "check urlpatterns or the function decorator if you want to change "
                "this functionality.")
示例#2
0
    def get(self, request, **kwargs):
        params = {
            "page":
            int(request.GET.get("page", 1)),
            **get_params_if_exist(request, [
                "case_status", "team", "queue", "tier", "only_active"
            ]),
        }
        data, _ = get_routing_rules(request,
                                    convert_dict_to_query_params(params))

        user_data, _ = get_gov_user(request,
                                    str(request.session["lite_api_user_id"]))

        status = request.GET.get("status", "active")

        filters = FiltersBar([
            Select(title=Filter.CASE_STATUS,
                   name="case_status",
                   options=get_statuses(request, True)),
            *conditional(
                has_permission(request, Permission.MANAGE_ALL_ROUTING_RULES),
                [
                    Select(title=Filter.TEAM,
                           name="team",
                           options=get_teams(request, True)),
                    AutocompleteInput(
                        title=Filter.QUEUE,
                        name="queue",
                        options=get_queues(request, convert_to_options=True),
                    ),
                ],
                [
                    AutocompleteInput(
                        title=Filter.QUEUE,
                        name="queue",
                        options=get_users_team_queues(
                            request, request.session["lite_api_user_id"],
                            True),
                    ),
                ],
            ),
            TextInput(title=Filter.TIER, name="tier"),
            Checkboxes(
                name="only_active",
                options=[Option(True, Filter.ACTIVE_ONLY)],
                classes=["govuk-checkboxes--small"],
            ),
        ])

        context = {
            "data": data,
            "status": status,
            "user_data": user_data,
            "filters": filters,
        }
        return render(request, "routing-rules/index.html", context)
示例#3
0
 def init(self, request, **kwargs):
     select_team = has_permission(request, Permission.MANAGE_ALL_ROUTING_RULES)
     team_id = request.POST.get("team", get_gov_user(request)[0]["user"]["team"]["id"])
     if not team_id:
         team_id = get_gov_user(request)[0]["user"]["team"]["id"]
     additional_rules = request.POST.getlist("additional_rules[]", ())
     flags_to_include = request.POST.getlist("flags_to_include")
     flags_to_exclude = request.POST.getlist("flags_to_exclude")
     self.forms = routing_rule_form_group(
         request, additional_rules, team_id, flags_to_include, flags_to_exclude, select_team=select_team,
     )
     self.success_url = reverse("routing_rules:list")
     self.action = post_routing_rule
示例#4
0
    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
                             }))
示例#5
0
    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
                             }))
示例#6
0
    def init(self, request, **kwargs):
        case_url = reverse("cases:case",
                           kwargs={
                               "queue_pk": kwargs["queue_pk"],
                               "pk": kwargs["pk"]
                           })
        if not has_permission(request, Permission.REVIEW_GOODS):
            return redirect(case_url)
        self.object_pk = kwargs["pk"]

        case = get_case(request, self.object_pk)
        param_goods = get_param_goods(request, case)
        control_list_entries = get_control_list_entries(
            request, convert_to_options=True)

        self.data = flatten_goods_data(param_goods)
        self.form = review_goods_form(
            control_list_entries=control_list_entries, back_url=case_url)
        self.context = {"case": case, "goods": param_goods}
        self.action = post_review_goods
        self.success_url = case_url
示例#7
0
     ],
 ),
 TextArea(title=advice.GiveOrChangeAdvicePage.REASON,
          extras={"max_length": 5000},
          name="text"),
 PicklistPicker(target="text",
                type=PicklistCategories.standard_advice.key),
 TextArea(
     title=advice.GiveOrChangeAdvicePage.NOTE,
     description=advice.GiveOrChangeAdvicePage.NOTE_DESCRIPTION,
     optional=True,
     extras={"max_length": 200},
     name="note",
 ),
 conditional(
     has_permission(request, Permission.MAINTAIN_FOOTNOTES)
     and tab != "final-advice",
     RadioButtons(
         title=advice.GiveOrChangeAdvicePage.FootNote.
         FOOTNOTE_REQUIRED,
         name="footnote_required",
         options=[
             Option(
                 True,
                 advice.GiveOrChangeAdvicePage.FootNote.YES_OPTION,
                 components=[
                     TextArea(name="footnote"),
                     PicklistPicker(
                         target="footnote",
                         type=PicklistCategories.footnotes.key),
                 ],