def is_temp_direct_control_form(caption): return Form( caption=caption, title=TemporaryExportDetails.PRODUCTS_UNDER_DIRECT_CONTROL, questions=[ RadioButtons( name="is_temp_direct_control", short_title=TemporaryExportDetails.SummaryList.PRODUCTS_UNDER_DIRECT_CONTROL, options=[ Option(key=True, value="Yes"), Option( key=False, value="No", components=[ TextArea( name="temp_direct_control_details", title=TemporaryExportDetails.PRODUCTS_UNDER_DIRECT_CONTROL_DETAILS, description="", extras={"max_length": 2200}, optional=False, ) ], ), ], classes=["govuk-radios--inline"], ) ], default_button_name=generic.SAVE_AND_CONTINUE, )
def reissue_ogl_confirmation_form(case_id, queue_id): return Form( title=Manage.ReissueOGL.TITLE, description=Manage.ReissueOGL.DESCRIPTION, questions=[ RadioButtons( name="confirm", options=[ Option(key=True, value=Manage.ReissueOGL.YES), Option(key=False, value=Manage.ReissueOGL.NO) ], classes=["govuk-checkboxes--inline"], ), DetailComponent( title=Manage.ReissueOGL.NOTE, components=[ TextArea(name="note", classes=["govuk-!-margin-0"]) ], ), ], back_link=BackLink(url=reverse("cases:case", kwargs={ "queue_pk": queue_id, "pk": case_id })), default_button_name=Manage.ReissueOGL.SUBMIT, container="case", )
def is_informed_wmd_form(caption): return Form( caption=caption, title=EndUseDetails.INFORMED_WMD, questions=[ RadioButtons( name="is_informed_wmd", short_title=EndUseDetails.EndUseDetailsSummaryList. INFORMED_WMD, title="", options=[ Option( key=True, value="Yes", components=[ TextInput( title=EndUseDetails.REFERENCE, description=EndUseDetails. REFERENCE_ECJU_LETTER, name="informed_wmd_ref", optional=False, ), ], ), Option(key=False, value="No"), ], classes=["govuk-radios--inline"], ) ], default_button_name=generic.SAVE_AND_CONTINUE, )
def is_military_end_use_controls_form(caption): return Form( caption=caption, title=EndUseDetails.INFORMED_TO_APPLY, questions=[ RadioButtons( name="is_military_end_use_controls", short_title=EndUseDetails.EndUseDetailsSummaryList. INFORMED_TO_APPLY, options=[ Option( key=True, value="Yes", components=[ TextInput( title=EndUseDetails.REFERENCE, description=EndUseDetails. REFERENCE_ECJU_LETTER, name="military_end_use_controls_ref", optional=False, ), ], ), Option(key=False, value="No"), ], ) ], default_button_name=generic.SAVE_AND_CONTINUE, )
def is_compliant_limitations_eu_form(caption): return Form( caption=caption, title=EndUseDetails.IS_COMPLIANT_LIMITATIONS_EU, questions=[ RadioButtons( name="is_compliant_limitations_eu", short_title=EndUseDetails.EndUseDetailsSummaryList. COMPLIANT_LIMITATIONS_EU, options=[ Option(key=True, value="Yes"), Option( key=False, value="No", components=[ TextArea( name="compliant_limitations_eu_ref", title="", description=EndUseDetails.PROVIDE_DETAILS, extras={"max_length": 2200}, optional=False, ) ], ), ], classes=["govuk-radios--inline"], ) ], default_button_name=generic.SAVE_AND_CONTINUE, )
def which_location_form(application_id, application_type): return Form( title=goods.GoodsLocationForm.WHERE_ARE_YOUR_GOODS_LOCATED_TITLE, description=goods.GoodsLocationForm.WHERE_ARE_YOUR_GOODS_LOCATED_DESCRIPTION, questions=[ RadioButtons( "choice", [ Option( key=Locations.ORGANISATION, value=goods.GoodsLocationForm.ONE_OF_MY_REGISTERED_SITES, description=goods.GoodsLocationForm.NOT_AT_MY_REGISTERED_SITES_DESCRIPTION, ), Option( key=Locations.EXTERNAL, value=goods.GoodsLocationForm.NOT_AT_MY_REGISTERED_SITES, description=goods.GoodsLocationForm.NOT_AT_MY_REGISTERED_SITES_DESCRIPTION, ), conditional( application_type == HMRC, Option( key=Locations.DEPARTED, value=goods.GoodsLocationForm.DEPARTED_THE_COUNTRY, description=goods.GoodsLocationForm.DEPARTED_THE_COUNTRY_DESCRIPTION, show_or=True, ), ), ], ) ], default_button_name=strings.CONTINUE, back_link=back_to_task_list(application_id), )
def application_type_form(): return Form( title=TradeControlLicenceQuestions.TradeControlLicenceQuestion.TITLE, description=TradeControlLicenceQuestions.TradeControlLicenceQuestion.DESCRIPTION, questions=[ RadioButtons( name="application_type", options=[ Option( key=CaseTypes.OGTCL, value=TradeControlLicenceQuestions.TradeControlLicenceQuestion.OPEN_GENERAL_TRADE_CONTROL_LICENCE, description=TradeControlLicenceQuestions.TradeControlLicenceQuestion.OPEN_GENERAL_TRADE_CONTROL_LICENCE_DESCRIPTION, ), Option( key=CaseTypes.SICL, value=TradeControlLicenceQuestions.TradeControlLicenceQuestion.STANDARD_LICENCE, description=TradeControlLicenceQuestions.TradeControlLicenceQuestion.STANDARD_LICENCE_DESCRIPTION, ), Option( key=CaseTypes.OICL, value=TradeControlLicenceQuestions.TradeControlLicenceQuestion.OPEN_LICENCE, description=TradeControlLicenceQuestions.TradeControlLicenceQuestion.OPEN_LICENCE_DESCRIPTION, ), ], ) ], default_button_name=generic.CONTINUE, back_link=BackLink( TradeControlLicenceQuestions.TradeControlLicenceQuestion.BACK, reverse_lazy("apply_for_a_licence:start") ), )
def get_queues( request, disable_pagination=True, page=1, convert_to_options=False, users_team_first=False, include_system=False, name=None, ): data = get(request, QUEUES_URL + convert_parameters_to_query_params(locals())).json() if convert_to_options: options = [] for queue in data: option = Option(queue.get("id"), queue.get("name")) queue_team = queue.get("team") if queue_team: option.description = queue_team.get("name") option.data_attribute = queue_team.get("id") options.append(option) return options else: return data
def get(self, request, **kwargs): if Permission.MANAGE_FLAGGING_RULES.value not in get_user_permissions(request): return redirect(reverse_lazy("cases:cases")) params = {"page": int(request.GET.get("page", 1))} params = get_params_if_exist(request, ["only_my_team", "level", "include_deactivated"], params) data, _ = get_flagging_rules(request, convert_dict_to_query_params(params)) filters = FiltersBar( [ Select(name="level", title=strings.FlaggingRules.List.Filter.Type, options=_levels), Checkboxes( name="only_my_team", options=[Option("true", strings.FlaggingRules.List.Filter.MY_TEAM_ONLY)], classes=["govuk-checkboxes--small", "govuk-!-margin-top-6"], ), Checkboxes( name="include_deactivated", options=[Option("true", strings.FlaggingRules.List.Filter.INCLUDE_DEACTIVATED)], classes=["govuk-checkboxes--small", "govuk-!-margin-top-6"], ), ] ) context = { "data": data, "team": get_gov_user(request)[0]["user"]["team"]["id"], "filters": filters, } return render(request, "flags/flagging-rules-list.html", context)
def product_uses_information_security(request): return Form( title=CreateGoodForm.ProductInformationSecurity.TITLE, questions=[ HiddenField("is_information_security_step", True), RadioButtons( title="", name="uses_information_security", options=[ Option( key=True, value="Yes", components=[ TextArea( title=CreateGoodForm.ProductInformationSecurity.INFORMATION_SECURITY_DETAILS, description="", name="information_security_details", optional=True, ), ], ), Option(key=False, value=CreateGoodForm.ProductInformationSecurity.NO), ], ), ], )
def firearm_replica_form(firearm_type): return Form( title=CreateGoodForm.FirearmGood.FirearmsReplica.TITLE, default_button_name="Save and continue", questions=[ HiddenField("type", firearm_type), HiddenField("is_replica_step", True), RadioButtons( title="", name="is_replica", options=[ Option( key=True, value="Yes", components=[ TextArea( title=CreateGoodForm.FirearmGood.FirearmsReplica.DESCRIPTION, description="", name="replica_description", optional=False, ), ], ), Option(key=False, value="No",), ], ), ], )
def locally_manufactured_form(): return Form( caption=F680Questions.CAPTION, title=F680Questions.LocallyManufactured.TITLE, questions=[ RadioButtons( name="locally_manufactured", options=[ Option( key=True, value="Yes", components=[ TextArea( title=F680Questions.LocallyManufactured. PROVIDE_DETAILS, name="locally_manufactured_description", extras={"max_length": 2200}, optional=False, ), ], ), Option(key=False, value="No"), ], ) ], default_button_name=generic.SAVE_AND_CONTINUE, )
def third_party_forms(request, application, strings, back_url, clearance_options=None): form_options = role_option_list.copy() if application["case_type"]["sub_type"]["key"] != F680: form_options.pop("customer") export_type = application.get("export_type") if not export_type or export_type.get("key") == PERMANENT: del form_options["additional_end_user"] options = [Option(key, value) for key, value in form_options.items()] options.append( Option("other", PartyForm.Options.OTHER, show_or=True, components=[TextInput(name="role_other")])) forms = [ _third_party_role_form(application, strings.ROLE_TITLE, strings.BUTTON, options, back_url), party_type_form(application, strings.TYPE_TITLE, strings.BUTTON, BackLink()), party_name_form(strings.NAME_FORM_TITLE, strings.BUTTON), party_website_form(strings.WEBSITE_FORM_TITLE, strings.BUTTON), ] if clearance_options: forms.extend(clearance_level_forms(clearance_options, strings.BUTTON)) forms.append( party_address_form(request, strings.ADDRESS_FORM_TITLE, strings.SUBMIT_BUTTON)) return FormGroup(forms)
def uk_service_equipment_form(): return Form( caption=F680Questions.CAPTION, title=F680Questions.UKServiceEquipment.TITLE, questions=[ RadioButtons( name="uk_service_equipment", options=[ Option( key=True, value="Yes", components=[ TextArea( title=F680Questions.UKServiceEquipment. PROVIDE_DETAILS_OPTIONAL, name="uk_service_equipment_description", extras={"max_length": 2200}, ) ], ), Option(key=False, value="No"), ], ) ], default_button_name=generic.SAVE_AND_CONTINUE, )
def is_suspected_wmd_form(caption): return Form( caption=caption, title=EndUseDetails.SUSPECTED_WMD, questions=[ RadioButtons( name="is_suspected_wmd", short_title=EndUseDetails.EndUseDetailsSummaryList. SUSPECTED_WMD, title="", options=[ Option( key=True, value="Yes", components=[ TextArea( name="suspected_wmd_ref", title="", description=EndUseDetails.PROVIDE_DETAILS, extras={"max_length": 2200}, optional=False, ) ], ), Option(key=False, value="No"), ], classes=["govuk-radios--inline"], ) ], default_button_name=generic.SAVE_AND_CONTINUE, )
def product_military_use_form(request): return Form( title=CreateGoodForm.MilitaryUse.TITLE, questions=[ HiddenField("is_military_use_step", True), RadioButtons( title="", name="is_military_use", options=[ Option(key="yes_designed", value=CreateGoodForm.MilitaryUse.YES_DESIGNED), Option( key="yes_modified", value=CreateGoodForm.MilitaryUse.YES_MODIFIED, components=[ TextArea( title=CreateGoodForm.MilitaryUse.MODIFIED_MILITARY_USE_DETAILS, description="", name="modified_military_use_details", optional=False, ), ], ), Option(key="no", value=CreateGoodForm.MilitaryUse.NO), ], ), ], )
def get_years(): current_year = datetime.now().year previous_year = current_year - 1 return [ Option(key=current_year, value=current_year), Option(key=previous_year, value=previous_year) ]
def activity_form(request): activities = get_trade_control_activities(request) options = [] for activity in activities: option = Option(activity["key"], activity["value"]) if activity["key"] == "other": option.components = [ TextArea( title=TradeControlLicenceQuestions.ControlActivity.OTHER_DESCRIPTION, name="trade_control_activity_other", optional=False, rows=1, extras={"max_length": 100}, ) ] options.append(option) return Form( title=TradeControlLicenceQuestions.ControlActivity.TITLE, description=TradeControlLicenceQuestions.ControlActivity.DESCRIPTION, questions=[RadioButtons(name="trade_control_activity", options=options)], default_button_name=generic.CONTINUE, )
def get_years(): current_year = timezone.localtime().year previous_year = current_year - 1 return [ Option(key=current_year, value=current_year), Option(key=previous_year, value=previous_year) ]
def get(self, request, **kwargs): letter_template = get_letter_template(request, str(kwargs["pk"]))[0]["template"] letter_template_case_types = letter_template.pop("case_types") or [] letter_template_decisions = letter_template.pop("decisions") or [] letter_template_case_types = [ case_type["reference"]["key"] for case_type in letter_template_case_types ] letter_template.update(case_types=letter_template_case_types) letter_template_decisions = [ decision["name"]["key"] for decision in letter_template_decisions ] letter_template.update(decisions=letter_template_decisions) case_type_options = [ Option(option["key"], option["value"]) for option in get_case_types(request) ] decision_options = [ Option(decision["key"], decision["value"]) for decision in get_decisions(request)[0] ] return form_page( request, edit_letter_template(request, letter_template, case_type_options, decision_options), data=letter_template, )
def identification_markings_form(draft_pk=None, good_id=None): questions = [ HiddenField("identification_markings_step", True), RadioButtons( title="", name="has_identification_markings", options=[ Option(key=True, value=CreateGoodForm.FirearmGood.IdentificationMarkings.YES,), Option( key=False, value=CreateGoodForm.FirearmGood.IdentificationMarkings.NO, components=[ TextArea( title=CreateGoodForm.FirearmGood.IdentificationMarkings.NO_MARKINGS_DETAILS, description="", name="no_identification_markings_details", optional=False, ) ], ), ], ), HiddenField("pk", draft_pk) if draft_pk else None, HiddenField("good_id", good_id) if good_id else None, ] return Form( title=CreateGoodForm.FirearmGood.IdentificationMarkings.TITLE, questions=questions, default_button_name="Save and continue", )
def edit_good_detail_form(request, good_id): return Form( title=EditGoodForm.TITLE, description=EditGoodForm.DESCRIPTION, questions=[ TextArea( title=EditGoodForm.Description.TITLE, description=EditGoodForm.Description.DESCRIPTION, name="description", extras={"max_length": 280}, ), TextInput(title=EditGoodForm.PartNumber.TITLE, name="part_number", optional=True), RadioButtons( title=EditGoodForm.IsControlled.TITLE, description=EditGoodForm.IsControlled.DESCRIPTION, name="is_good_controlled", options=[ Option( key="yes", value=EditGoodForm.IsControlled.YES, components=[ control_list_entries_question( control_list_entries=get_control_list_entries(request, convert_to_options=True), title=EditGoodForm.ControlListEntry.TITLE, description=EditGoodForm.ControlListEntry.DESCRIPTION, ), ], ), Option(key="no", value=EditGoodForm.IsControlled.NO), ], ), ], back_link=BackLink(CreateGoodForm.BACK_BUTTON, reverse_lazy("goods:good", kwargs={"pk": good_id})), )
def told_by_an_official_form(application_id=None): return Form( title=ExportLicenceQuestions.HaveYouBeenInformedQuestion.TITLE, description=ExportLicenceQuestions.HaveYouBeenInformedQuestion. DESCRIPTION, questions=[ RadioButtons( name="have_you_been_informed", options=[ Option( key="yes", value=strings.YES, components=[ TextInput( title=ExportLicenceQuestions. HaveYouBeenInformedQuestion. WHAT_WAS_THE_REFERENCE_CODE_TITLE, description=ExportLicenceQuestions. HaveYouBeenInformedQuestion. WHAT_WAS_THE_REFERENCE_CODE_DESCRIPTION, name="reference_number_on_information_form", optional=True, ), ], ), Option(key="no", value=strings.NO), ], ), ], back_link=back_to_task_list(application_id), default_button_name=conditional(application_id, generic.SAVE_AND_RETURN, generic.CONTINUE), )
def document_grading_form(request, good_id): select_options = get_document_missing_reasons(request)[0]["reasons"] return Form( title=DocumentSensitivityForm.TITLE, description=DocumentSensitivityForm.DESCRIPTION, questions=[ RadioButtons( name="has_document_to_upload", options=[ Option(key="yes", value=DocumentSensitivityForm.Options.YES), Option( key="no", value=DocumentSensitivityForm.Options.NO, components=[ Label(text=DocumentSensitivityForm.ECJU_HELPLINE), Select( name="missing_document_reason", title=DocumentSensitivityForm.LABEL, options=select_options, ), ], ), ], ), ], back_link=BackLink(DocumentSensitivityForm.BACK_BUTTON, reverse_lazy("goods:good", kwargs={"pk": good_id})), default_button_name=DocumentSensitivityForm.SUBMIT_BUTTON, )
def edit_type_form(application_id): return Form( title=strings.Applications.Edit.TITLE, description=strings.Applications.Edit.DESCRIPTION, questions=[ RadioButtons( name="edit-type", options=[ Option( key="minor", value=strings.Applications.Edit.Minor.TITLE, description=strings.Applications.Edit.Minor. DESCRIPTION, ), Option( key="major", value=strings.Applications.Edit.Major.TITLE, description=strings.Applications.Edit.Major. DESCRIPTION, ), ], ) ], back_link=BackLink( strings.BACK_TO_APPLICATION, reverse_lazy("applications:application", kwargs={"pk": application_id}), ), default_button_name=strings.CONTINUE, )
def route_of_goods_form(back_link): return Form( title=RouteOfGoods.TITLE, back_link=BackLink(strings.BACK_TO_APPLICATION, back_link), questions=[ RadioButtons( name="is_shipped_waybill_or_lading", short_title="", options=[ Option(key=True, value="Yes"), Option( key=False, value="No", components=[ TextArea( name="non_waybill_or_lading_route_details", title="", description=RouteOfGoods.NO_ANSWER_DESCRIPTION, extras={"max_length": 2000}, optional=False, ) ], ), ], classes=["govuk-radios--inline"], ) ], default_button_name=RouteOfGoods.SAVE_BUTTON, )
def foreign_technology_form(): return Form( caption=F680Questions.CAPTION, title=F680Questions.ForeignTechnology.TITLE, questions=[ RadioButtons( name="foreign_technology", options=[ Option( key=True, value="Yes", components=[ TextArea( title=F680Questions.ForeignTechnology. PROVIDE_DETAILS, name="foreign_technology_description", description=F680Questions.ForeignTechnology. DESCRIPTION, extras={"max_length": 2200}, optional=False, ), ], ), Option(key=False, value="No"), ], ) ], default_button_name=generic.SAVE_AND_CONTINUE, )
def edit_letter_template(request, letter_template, case_type_options, decision_options): return Form( title=strings.LetterTemplates.EditLetterTemplate.TITLE % letter_template["name"], questions=[ TextInput( title=strings.LetterTemplates.EditLetterTemplate.Name.TITLE, description=strings.LetterTemplates.EditLetterTemplate.Name. HINT, name="name", ), Checkboxes( title=strings.LetterTemplates.EditLetterTemplate.CaseTypes. TITLE, name="case_types[]", options=case_type_options, classes=["govuk-checkboxes--small"], ), Checkboxes( title=strings.LetterTemplates.EditLetterTemplate.Decisions. TITLE, description=strings.LetterTemplates.EditLetterTemplate. Decisions.DESCRIPTION, name="decisions[]", options=decision_options, classes=["govuk-checkboxes--small"], ), RadioButtonsImage( title=strings.LetterTemplates.EditLetterTemplate.Layout.TITLE, name="layout", options=_letter_layout_options(request), ), RadioButtons( title=strings.LetterTemplates.EditLetterTemplate. IncludeSignature.TITLE, description=strings.LetterTemplates.EditLetterTemplate. IncludeSignature.DESCRIPTION, name="include_digital_signature", options=[ Option(key=True, value=strings.LetterTemplates.EditLetterTemplate. IncludeSignature.YES_OPTION), Option(key=False, value=strings.LetterTemplates.EditLetterTemplate. IncludeSignature.NO_OPTION), ], ), ], back_link=BackLink( "Back to " + letter_template["name"], reverse_lazy("letter_templates:letter_template", kwargs={"pk": letter_template["id"]}), ), default_button_name=strings.LetterTemplates.EditLetterTemplate. BUTTON_NAME, )
def unit_quantity_value(request, good, sub_case_type, application_id): if sub_case_type["key"] == EXHIBITION: return exhibition_item_type(request, good.get("id"), application_id) else: questions = [ good_summary(good), HiddenField(name="good_id", value=good.get("id")), Select( title=AddGoodToApplicationForm.Units.TITLE, description="<noscript>" + AddGoodToApplicationForm.Units.DESCRIPTION + "</noscript>", name="unit", options=get_units(request), ), QuantityInput( title=AddGoodToApplicationForm.Quantity.TITLE, description=AddGoodToApplicationForm.Quantity.DESCRIPTION, name="quantity", ), CurrencyInput( title=AddGoodToApplicationForm.VALUE.TITLE, description=AddGoodToApplicationForm.VALUE.DESCRIPTION, name="value", ), RadioButtons( name="is_good_incorporated", title=AddGoodToApplicationForm.Incorporated.TITLE, description=AddGoodToApplicationForm.Incorporated.DESCRIPTION, options=[ Option(True, AddGoodToApplicationForm.Incorporated.YES), Option(False, AddGoodToApplicationForm.Incorporated.NO), ], classes=["govuk-radios--inline"], ), ] if good["item_category"]["key"] == PRODUCT_CATEGORY_FIREARM: firearm_type = good["firearm_details"]["type"]["key"] if firearm_type in ["ammunition", "firearms"]: questions.append(firearm_proof_mark_field()) elif firearm_type == "components_for_firearms": questions.append( does_firearm_component_require_proof_marks_field()) questions.append(firearm_is_deactivated_field()) return Form( title=AddGoodToApplicationForm.TITLE, description=AddGoodToApplicationForm.DESCRIPTION, questions=questions, back_link=BackLink( strings.BACK_TO_APPLICATION, reverse_lazy("applications:preexisting_good", kwargs={"pk": application_id}), ), javascript_imports={"/javascripts/add-good.js"}, )
def review_goods_form(request, is_goods_type, **kwargs): return Form( title=cases.ReviewGoodsForm.HEADING, questions=[ RadioButtons( title=goods.ReviewGoods.IS_GOOD_CONTROLLED, name="is_good_controlled", options=[ Option( key=conditional(is_goods_type, True, "yes"), value="Yes", components=[ control_list_entries_question( control_list_entries=get_control_list_entries( request, convert_to_options=True), title=goods.ReviewGoods.ControlListEntries. TITLE, ), PicklistPicker( target="report_summary", title=goods.ReviewGoods.ReportSummary.TITLE, description=goods.ReviewGoods.ReportSummary. DESCRIPTION, type=PicklistCategories.report_summary.key, set_text=False, ), ], ), Option(key=conditional(is_goods_type, False, "no"), value="No"), ], ), DetailComponent( title=goods.ReviewGoods.Comment.TITLE, components=[ TextArea(name="comment", extras={ "max_length": 500, }), ], ), ], default_button_name=cases.ReviewGoodsForm.CONFIRM_BUTTON, container="case", back_link=BackLink(url=reverse("cases:case", kwargs={ "queue_pk": kwargs["queue_pk"], "pk": kwargs["pk"] })), helpers=[ HelpSection(goods.ReviewGoods.GIVING_ADVICE_ON, "", includes="case/includes/selection-sidebar.html") ], )