Esempio n. 1
0
def licences_filters(request):
    return [
        TextInput(
            name="reference",
            title=LicencesList.Filters.REFERENCE,
        ),
        AutocompleteInput(
            name="clc",
            title=LicencesList.Filters.CLC,
            options=get_control_list_entries(request, convert_to_options=True),
        ),
        AutocompleteInput(
            name="country",
            title=LicencesList.Filters.DESTINATION_COUNTRY,
            options=get_countries(request, convert_to_options=True),
        ),
        TextInput(
            name="end_user",
            title=LicencesList.Filters.DESTINATION_NAME,
        ),
        Checkboxes(
            name="active_only",
            options=[Option(key=True, value=LicencesList.Filters.ACTIVE)],
            classes=["govuk-checkboxes--small"],
        ),
    ]
Esempio n. 2
0
    def get(self, request, *args, **kwargs):
        open_general_licences = get_open_general_licences(
            request, **request.GET)
        control_list_entries = get_control_list_entries(request, True)
        countries = get_countries(request, True)

        filters = FiltersBar([
            HiddenField("status", request.GET.get("status", "active")),
            TextInput(name="name", title="name"),
            Select(name="case_type",
                   title="type",
                   options=OpenGeneralExportLicences.as_options()),
            AutocompleteInput(name="control_list_entry",
                              title="control list entry",
                              options=control_list_entries),
            AutocompleteInput(name="country",
                              title="country",
                              options=countries),
        ])

        context = {
            "filters": filters,
            "tab": request.GET.get("status", "active"),
            "open_general_licences": open_general_licences,
        }
        return render(request, "open-general-licences/index.html", context)
Esempio n. 3
0
 def get_open_general_licences(self):
     params = self.request.GET.copy()
     params.pop("licence_type")
     self.data = get_open_general_licences(self.request, registered=True, **params)
     control_list_entries = get_potential_ogl_control_list_entries(self.data)
     countries = get_potential_ogl_countries(self.data)
     sites = get_potential_ogl_sites(self.data)
     self.filters = [
         TextInput(name="name", title=OpenGeneralLicencesList.Filters.NAME),
         Select(
             name="case_type",
             title=OpenGeneralLicencesList.Filters.TYPE,
             options=OpenGeneralExportLicenceTypes.as_options(),
         ),
         AutocompleteInput(
             name="control_list_entry",
             title=OpenGeneralLicencesList.Filters.CONTROL_LIST_ENTRY,
             options=control_list_entries,
         ),
         AutocompleteInput(name="country", title=OpenGeneralLicencesList.Filters.COUNTRY, options=countries),
         Select(name="site", title=OpenGeneralLicencesList.Filters.SITE, options=sites,),
         Checkboxes(
             name="active_only",
             options=[Option(key=True, value=OpenGeneralLicencesList.Filters.ONLY_SHOW_ACTIVE)],
             classes=["govuk-checkboxes--small"],
         ),
     ]
     self.template = "open-general-licences"
Esempio n. 4
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)
Esempio n. 5
0
def initial_routing_rule_questions(request, team_id, is_editing: bool):
    if is_editing:
        title = Forms.EDIT_TITLE
    else:
        title = Forms.CREATE_TITLE

    return Form(
        title=title,
        questions=[
            Select(title=Forms.CASE_STATUS,
                   name="status",
                   options=get_statuses(request, True)),
            AutocompleteInput(
                title=Forms.QUEUE,
                name="queue",
                options=get_team_queues(request, team_id, True, True),
            ),
            TextInput(title=Forms.TIER, name="tier"),
            HiddenField(name="additional_rules[]", value=None),
            Checkboxes(
                title=Forms.ADDITIONAL_RULES,
                name="additional_rules[]",
                options=additional_rules,
            ),
        ],
        back_link=BackLink(Forms.BACK_BUTTON,
                           reverse_lazy("routing_rules:list")),
    )
Esempio n. 6
0
def select_country(request):
    return Form(
        title=Forms.COUNTRY,
        questions=[
            AutocompleteInput(
                name="country",
                options=get_countries(request, convert_to_options=True),
            )
        ],
    )
Esempio n. 7
0
def pv_grading_question(
    pv_gradings,
    title="PV grading",
    description="For example, UK OFFICIAL-SENSITIVE",
    name="pv_grading",
):
    return AutocompleteInput(title=title,
                             name=name,
                             description=description,
                             options=pv_gradings)
Esempio n. 8
0
def edit_address_questions_form(is_commercial,
                                in_uk,
                                countries,
                                prefix="site.address."):
    phone_number_label = "Organisation phone number" if is_commercial else "Phone number"

    if in_uk:
        questions = [
            TextInput(title=RegisterAnOrganisation.NAME_OF_SITE,
                      name="site.name"),
            Heading(RegisterAnOrganisation.WhereIsTheExporterBased.TITLE,
                    HeadingStyle.M),
            TextInput(
                title="Building and street",
                accessible_description="line 1 of 2",
                name=prefix + "address_line_1",
            ),
            TextInput(
                title="",
                accessible_description="line 2 of 2",
                name=prefix + "address_line_2",
            ),
            TextInput(title="Town or city", name=prefix + "city"),
            TextInput(title="County or state", name=prefix + "region"),
            TextInput(title="Postcode", name=prefix + "postcode"),
        ]
    else:
        questions = [
            TextInput(title=RegisterAnOrganisation.NAME_OF_SITE,
                      name="site.name"),
            Heading(RegisterAnOrganisation.WhereIsTheExporterBased.TITLE,
                    HeadingStyle.M),
            TextArea(title="Address",
                     name=prefix + "address",
                     classes=["govuk-input--width-20"],
                     rows=6),
        ]

    return Form(
        title="Edit default site for this exporter",
        questions=questions + [
            TextInput(
                title=phone_number_label,
                name="phone_number",
                description=
                "For international numbers include the country code",
            ),
            TextInput(title="Website", name="website", optional=True),
            conditional(
                not in_uk,
                AutocompleteInput(title="Country",
                                  name=prefix + "country",
                                  options=countries)),
        ],
    )
Esempio n. 9
0
def initial_routing_rule_questions(request, select_team, team_id,
                                   is_editing: bool):

    team_queues_options = get_team_queues(request,
                                          team_id,
                                          convert_to_options=True,
                                          ignore_pagination=True)

    return Form(
        title=Forms.EDIT_TITLE if is_editing else Forms.CREATE_TITLE,
        questions=[
            AutocompleteInput(
                title=Forms.TEAM,
                name="team",
                options=get_teams(request, True),
                description="Type to get suggestions. For example, TAU.",
            ),
            Select(title=Forms.CASE_STATUS,
                   name="status",
                   options=get_statuses(request, True)),
            AutocompleteInput(
                title=Forms.QUEUE,
                name="queue",
                options=team_queues_options,
                description=
                "Type to get suggestions.\nFor example, HMRC enquiries.",
            ),
            TextInput(title=Forms.TIER, name="tier"),
            HiddenField(name="additional_rules[]", value=None),
            Checkboxes(
                title=Forms.ADDITIONAL_RULES,
                name="additional_rules[]",
                options=additional_rules,
            ),
        ],
        back_link=BackLink(Forms.BACK_BUTTON,
                           reverse_lazy("routing_rules:list")),
        javascript_imports={"/javascripts/routing-rules-teams.js"},
    )
Esempio n. 10
0
def initial_routing_rule_questions(request, select_team, team_id,
                                   is_editing: bool):
    select_team_question = []
    if select_team:
        select_team_question = [
            AutocompleteInput(
                title=Forms.TEAM,
                name="team",
                options=get_teams(request, True),
                description="Type to get suggestions. For example, TAU.",
            ),
        ]

    return Form(
        title=Forms.EDIT_TITLE if is_editing else Forms.CREATE_TITLE,
        questions=select_team_question + [
            Select(title=Forms.CASE_STATUS,
                   name="status",
                   options=get_statuses(request, True)),
            AutocompleteInput(
                title=Forms.QUEUE,
                name="queue",
                options=get_team_queues(request, team_id, True, True)
                if team_id else [],
                description=
                "Type to get suggestions.\nFor example, HMRC enquiries.",
            ),
            TextInput(title=Forms.TIER, name="tier"),
            HiddenField(name="additional_rules[]", value=None),
            Checkboxes(
                title=Forms.ADDITIONAL_RULES,
                name="additional_rules[]",
                options=additional_rules,
            ),
        ],
        back_link=BackLink(Forms.BACK_BUTTON,
                           reverse_lazy("routing_rules:list")),
    )
Esempio n. 11
0
def select_condition_and_flag(request, type: str):
    title = ""
    condition = []
    flags = []
    is_for_verified_goods_only = None

    if type == "Good":
        title = strings.FlaggingRules.Create.Condition_and_flag.GOOD_TITLE
        condition = TextInput(title=strings.FlaggingRules.Create.Condition_and_flag.GOOD, name="matching_value",)
        flags = get_goods_flags(request=request)
        is_for_verified_goods_only = RadioButtons(
            name="is_for_verified_goods_only",
            options=[
                Option(key=True, value=FlaggingRules.Create.Condition_and_flag.YES_OPTION),
                Option(key=False, value=FlaggingRules.Create.Condition_and_flag.NO_OPTION),
            ],
            title=FlaggingRules.Create.Condition_and_flag.GOODS_QUESTION,
        )
    elif type == "Destination":
        title = strings.FlaggingRules.Create.Condition_and_flag.DESTINATION_TITLE
        condition = AutocompleteInput(
            title=strings.FlaggingRules.Create.Condition_and_flag.DESTINATION,
            name="matching_value",
            options=get_countries(request, convert_to_options=True),
        )
        flags = get_destination_flags(request=request)
    elif type == "Case":
        title = strings.FlaggingRules.Create.Condition_and_flag.APPLICATION_TITLE
        case_type_options = [Option(option["key"], option["value"]) for option in get_case_types(request)]
        condition = Select(
            title=strings.FlaggingRules.Create.Condition_and_flag.APPLICATION,
            name="matching_value",
            options=case_type_options,
        )
        flags = get_cases_flags(request=request)

    return Form(
        title=title,
        questions=[
            condition,
            Select(title=strings.FlaggingRules.Create.Condition_and_flag.FLAG, name="flag", options=flags),
            is_for_verified_goods_only,
        ],
    )
Esempio n. 12
0
def open_general_licence_forms(request, **kwargs):
    open_general_licence_type = OpenGeneralExportLicenceTypes.get_by_acronym(
        kwargs["ogl"])
    control_list_entries = get_control_list_entries(request, True)
    countries = get_countries(request, True)
    selected_entry = request.POST.get("control_list_entry")
    selected_country = next((country.value for country in countries
                             if country.key == request.POST.get("country")),
                            "")
    open_general_licences = get_open_general_licences(
        request,
        convert_to_options=True,
        case_type=open_general_licence_type.id,
        control_list_entry=request.POST.get("control_list_entry"),
        country=request.POST.get("country"),
        status="active",
    )
    sites = get_sites(request, request.user.organisation, True)
    selected_open_general_licence = {}
    if request.POST.get("open_general_licence"):
        selected_open_general_licence = get_open_general_licence(
            request, request.POST.get("open_general_licence"))

    if open_general_licence_type.acronym == OpenGeneralExportLicenceTypes.open_general_export_licence.acronym:
        back_link_url = reverse("apply_for_a_licence:export_licence_questions")
    elif open_general_licence_type.acronym == OpenGeneralExportLicenceTypes.open_general_transhipment_licence.acronym:
        back_link_url = reverse("apply_for_a_licence:transhipment_questions")
    else:
        back_link_url = reverse(
            "apply_for_a_licence:trade_control_licence_questions")

    return FormGroup([
        Form(
            title=OpenGeneralLicenceQuestions.ControlListEntry.TITLE,
            description=OpenGeneralLicenceQuestions.ControlListEntry.
            DESCRIPTION,
            questions=[
                AutocompleteInput(name="control_list_entry",
                                  options=control_list_entries)
            ],
            default_button_name=generic.CONTINUE,
            back_link=BackLink(url=back_link_url),
        ),
        Form(
            title=OpenGeneralLicenceQuestions.Country.TITLE,
            description=OpenGeneralLicenceQuestions.Country.DESCRIPTION,
            questions=[AutocompleteInput(name="country", options=countries)],
            default_button_name=generic.CONTINUE,
        ),
        *conditional(
            open_general_licences,
            [
                Form(
                    title=OpenGeneralLicenceQuestions.OpenGeneralLicences.
                    TITLE.format(open_general_licence_type.name.lower()),
                    questions=[
                        Label(
                            OpenGeneralLicenceQuestions.OpenGeneralLicences.
                            DESCRIPTION.format(
                                open_general_licence_type.name.lower(),
                                selected_entry, selected_country)),
                        Label(OpenGeneralLicenceQuestions.OpenGeneralLicences.
                              HELP_TEXT),
                        RadioButtons(
                            name="open_general_licence",
                            options=[
                                *open_general_licences,
                                Option(
                                    "",
                                    OpenGeneralLicenceQuestions.
                                    OpenGeneralLicences.NONE_OF_THE_ABOVE,
                                    show_or=True,
                                ),
                            ],
                        ),
                    ],
                    default_button_name=generic.CONTINUE,
                )
            ],
            [
                no_open_general_licence_form(open_general_licence_type,
                                             selected_entry, selected_country)
            ],
        ),
        conditional(
            selected_open_general_licence,
            Form(
                caption=conditional(
                    selected_open_general_licence.get("registration_required"),
                    OpenGeneralLicenceQuestions.OpenGeneralLicenceDetail.
                    CAPTION,
                ),
                title=open_general_licence_type.name + " (" +
                selected_open_general_licence.get("name", "") + ")",
                questions=[
                    conditional(
                        not selected_open_general_licence.get(
                            "registration_required"),
                        WarningBanner(
                            "warning",
                            OpenGeneralLicenceQuestions.
                            OpenGeneralLicenceDetail.NO_REGISTRATION_REQUIRED.
                            format(open_general_licence_type.name.lower()),
                        ),
                    ),
                    HiddenField("application_type",
                                open_general_licence_type.acronym.lower()),
                    *conditional(
                        selected_open_general_licence.get(
                            "registration_required"),
                        [
                            Heading(
                                OpenGeneralLicenceQuestions.
                                OpenGeneralLicenceDetail.Summary.HEADING,
                                HeadingStyle.S),
                            Custom(
                                "components/ogl-step-list.html",
                                data={
                                    **selected_open_general_licence, "sites":
                                    sites
                                },
                            ),
                            Custom("components/ogl-warning.html"),
                            Checkboxes(
                                name="confirmation[]",
                                options=[
                                    Option(
                                        "read", OpenGeneralLicenceQuestions.
                                        Conditions.READ),
                                    Option(
                                        "comply", OpenGeneralLicenceQuestions.
                                        Conditions.COMPLY),
                                ],
                            ),
                        ],
                        [],
                    ),
                ],
                buttons=[
                    conditional(
                        selected_open_general_licence.get(
                            "registration_required"),
                        Button("Register", "submit"),
                    )
                ],
            ),
            no_open_general_licence_form(open_general_licence_type,
                                         selected_entry, selected_country),
        ),
    ])
Esempio n. 13
0
def country_question(countries, prefix="address."):
    return AutocompleteInput(title="Country",
                             name=prefix + "country",
                             options=countries)
Esempio n. 14
0
def case_filters_bar(request, queue) -> FiltersBar:
    """
    Returns a FiltersBar for the case search page.
    """
    sla_sort = [
        Option("ascending",
               CasesListPage.Filters.SORT_BY_SLA_ELAPSED_ASCENDING),
        Option("descending",
               CasesListPage.Filters.SORT_BY_SLA_ELAPSED_DESCDENDING),
    ]
    sla_days = [Option(i, i) for i in range(SLA_DAYS_RANGE)]

    return FiltersBar(
        [
            TextInput(name="case_reference", title="case reference"),
            Select(name="case_type",
                   title=CasesListPage.Filters.CASE_TYPE,
                   options=[]),
            Select(name="status",
                   title=CasesListPage.Filters.CASE_STATUS,
                   options=[]),
            AutocompleteInput(
                name="case_officer",
                title=CasesListPage.Filters.CASE_OFFICER,
                options=[
                    Option("not_assigned", CasesListPage.Filters.NOT_ASSIGNED)
                ],
                deferred=True,
            ),
            AutocompleteInput(
                name="assigned_user",
                title=CasesListPage.Filters.ASSIGNED_USER,
                options=[
                    Option("not_assigned", CasesListPage.Filters.NOT_ASSIGNED)
                ],
                deferred=True,
            ),
            conditional(
                not queue["is_system_queue"],
                Checkboxes(
                    name="hidden",
                    options=[
                        Option(True,
                               CasesListPage.Filters.HIDDEN,
                               id="show-hidden-cases")
                    ],
                    classes=["govuk-checkboxes--small"],
                ),
            ),
        ],
        advanced_filters=[
            TextInput(
                name="exporter_application_reference",
                title=CasesListPage.Filters.EXPORTER_APPLICATION_REFERENCE),
            TextInput(name="organisation_name",
                      title=CasesListPage.Filters.ORGANISATION_NAME),
            TextInput(name="exporter_site_name",
                      title=CasesListPage.Filters.EXPORTER_SITE_NAME),
            TextInput(name="exporter_site_address",
                      title=CasesListPage.Filters.EXPORTER_SITE_ADDRESS),
            Select(name="team_advice_type",
                   title=CasesListPage.Filters.TEAM_ADVICE_TYPE,
                   options=[]),
            Select(name="final_advice_type",
                   title=CasesListPage.Filters.FINAL_ADVICE_TYPE,
                   options=[]),
            Select(name="max_sla_days_remaining",
                   title=CasesListPage.Filters.MAX_SLA_DAYS_REMAINING,
                   options=sla_days),
            Select(name="min_sla_days_remaining",
                   title=CasesListPage.Filters.MIN_SLA_DAYS_REMAINING,
                   options=sla_days),
            Select(name="sla_days_elapsed",
                   title=CasesListPage.Filters.SLA_DAYS_ELAPSED,
                   options=sla_days),
            Select(name="sla_days_elapsed_sort_order",
                   title=CasesListPage.Filters.SORT_BY_SLA_ELAPSED,
                   options=sla_sort),
            DateInput(
                name="submitted_from",
                title=CasesListPage.Filters.SUBMITTED_FROM,
                prefix="submitted_from_",
                inline_title=True,
            ),
            DateInput(name="submitted_to",
                      title=CasesListPage.Filters.SUBMITTED_TO,
                      prefix="submitted_to_",
                      inline_title=True),
            DateInput(
                name="finalised_from",
                title=CasesListPage.Filters.FINALISED_FROM,
                prefix="finalised_from_",
                inline_title=True,
            ),
            DateInput(name="finalised_to",
                      title=CasesListPage.Filters.FINALISED_TO,
                      prefix="finalised_to_",
                      inline_title=True),
            TextInput(name="party_name",
                      title=CasesListPage.Filters.PARY_NAME),
            TextInput(name="party_address",
                      title=CasesListPage.Filters.PARTY_ADDRESS),
            TextInput(name="goods_related_description",
                      title=CasesListPage.Filters.GOODS_RELATED_DESCRIPTION),
            AutocompleteInput(
                name="country",
                title=CasesListPage.Filters.COUNTRY,
                options=get_countries(request, convert_to_options=True),
            ),
            AutocompleteInput(
                name="control_list_entry",
                title=CasesListPage.Filters.CONTROL_LIST_ENTRY,
                options=get_control_list_entries(request,
                                                 convert_to_options=True),
            ),
            TokenBar(
                name="flags",
                title=CasesListPage.Filters.FLAGS,
                options=[
                    Option(flag["id"], flag["name"])
                    for flag in get_flags(request, disable_pagination=True)
                ],
            ),
        ],
    )