示例#1
0
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,
    )
示例#2
0
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",
    )
示例#3
0
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,
    )
示例#4
0
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,
    )
示例#5
0
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,
    )
示例#6
0
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),
    )
示例#7
0
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")
        ),
    )
示例#8
0
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
示例#9
0
    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)
示例#10
0
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),
                ],
            ),
        ],
    )
示例#11
0
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",),
                ],
            ),
        ],
    )
示例#12
0
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)
示例#14
0
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,
    )
示例#15
0
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,
    )
示例#16
0
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),
                ],
            ),
        ],
    )
示例#17
0
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)
    ]
示例#18
0
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,
    )
示例#19
0
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)
    ]
示例#20
0
    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,
        )
示例#21
0
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",
    )
示例#22
0
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})),
    )
示例#23
0
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),
    )
示例#24
0
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,
    )
示例#25
0
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,
    )
示例#26
0
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,
    )
示例#27
0
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,
    )
示例#28
0
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,
    )
示例#29
0
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"},
        )
示例#30
0
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")
        ],
    )