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"], ), ]
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)
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"
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)
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")), )
def select_country(request): return Form( title=Forms.COUNTRY, questions=[ AutocompleteInput( name="country", options=get_countries(request, convert_to_options=True), ) ], )
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)
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)), ], )
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"}, )
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")), )
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, ], )
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), ), ])
def country_question(countries, prefix="address."): return AutocompleteInput(title="Country", name=prefix + "country", options=countries)
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) ], ), ], )