Exemplo n.º 1
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",),
                ],
            ),
        ],
    )
Exemplo n.º 2
0
def form_with_hidden_fields(request, data, post_data, form, return_data,
                            additional_context):

    for key, value in post_data.items():

        # If the key is already in the questions in the next form, don't copy them
        # because the user will input their answers again
        form_question_names = [
            q.name for q in form.questions if hasattr(q, "name")
        ]

        if key in form_question_names or f"{key}[]" in form_question_names:
            continue

        # If the keys value is a list, insert each individually
        if isinstance(value, list):
            for sub_value in value:
                form.questions.insert(0, HiddenField(key + "[]", sub_value))
        else:
            form.questions.insert(0, HiddenField(key, value))

    # Go to the next page
    return (
        form_page(request,
                  form,
                  data=data,
                  extra_data={
                      "form_pk": form.pk,
                      **additional_context
                  }),
        return_data,
    )
Exemplo n.º 3
0
def firearms_capture_serial_numbers(number_of_items):
    if isinstance(number_of_items, str):
        try:
            number_of_items = int(number_of_items)
        except ValueError:
            number_of_items = 0
    elif number_of_items is None:
        number_of_items = 0

    questions = [
        HiddenField("capture_serial_numbers_step", True),
        HiddenField("number_of_items", number_of_items),
        Label(text=f"Number of items: {number_of_items}"),
    ]

    input_fields = [
        Group(
            id="serial_number_input_field_group",
            components=[Label(text=f"{i+1}"), TextInput(name=f"serial_number_input_{i}")],
            classes=["lite-input-with-label"],
        )
        for i in range(number_of_items)
    ]

    questions.append(GroupWithLabel(id="serial_numbers", components=input_fields))

    return Form(
        title="Enter the serial numbers for this product",
        description="Enter one serial number in every row",
        questions=questions,
        default_button_name="Save and continue",
    )
Exemplo n.º 4
0
def upload_firearms_act_certificate_form(section, filename, back_link):
    return Form(
        title=f"Attach your Firearms Act 1968 {section} certificate",
        description="The file must be smaller than 50MB",
        questions=[
            HiddenField("firearms_certificate_uploaded", False),
            FileUpload(),
            HiddenField("uploaded_file_name", filename),
            TextInput(
                title=CreateGoodForm.FirearmGood.FirearmsActCertificate.SECTION_CERTIFICATE_NUMBER,
                description="",
                name="section_certificate_number",
                optional=False,
            ),
            DateInput(
                title=CreateGoodForm.FirearmGood.FirearmsActCertificate.EXPIRY_DATE,
                description=CreateGoodForm.FirearmGood.FirearmsActCertificate.EXPIRY_DATE_HINT,
                prefix="section_certificate_date_of_expiry",
                name="section_certificate_date_of_expiry",
            ),
            Label(text="Or"),
            Checkboxes(
                name="section_certificate_missing",
                options=[Option(key="True", value=f"I do not have a Firearms Act 1968 {section} certificate",)],
            ),
            TextArea(
                title="Provide a reason why you do not have a certificate",
                name="section_certificate_missing_reason",
                optional=False,
            ),
        ],
        back_link=back_link,
        buttons=[Button("Save and continue", "submit")],
        javascript_imports={"/javascripts/add-good.js"},
    )
Exemplo n.º 5
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",
    )
Exemplo n.º 6
0
def firearms_number_of_items(firearm_type):
    return Form(
        title="Number of items",
        questions=[
            HiddenField("type", firearm_type),
            HiddenField("number_of_items_step", True),
            TextInput(name="number_of_items"),
        ],
        default_button_name="Save and continue",
    )
Exemplo n.º 7
0
def select_flags(request, team_id, flags_to_include, flags_to_exclude,
                 is_editing):

    flags_checkboxes = [
        Option(flag["id"],
               flag["name"],
               data_attribute=get_flag_details_html(flag))
        for flag in get_flags_for_team_of_level(
            request, level="", team_id=team_id, include_system_flags=True)
    ]

    return Form(
        title=Forms.FLAGS if not is_editing else "Edit flags",
        questions=[
            HiddenField(name="flags_to_include",
                        value=",".join(flags_to_include)),
            HiddenField(name="flags_to_exclude",
                        value=",".join(flags_to_exclude)),
            HTMLBlock("<div id='routing-rules-flags-details'></div>"),
            Label(id="condition-label", text="Apply the routing rule to:"),
            RadioButtons(
                title="",
                name="routing_rules_flags_condition",
                options=[
                    Option(key="contain_selected_flags",
                           value="Cases that contain selected flags"),
                    Option(key="doesnot_contain_selected_flags",
                           value="Cases that do not contain selected flags"),
                ],
            ),
            Filter(),
            Checkboxes(
                name="flags[]",
                options=flags_checkboxes,
                import_custom_js=[
                    "/javascripts/filter-checkbox-list-flags.js"
                ],
            ),
        ],
        buttons=[
            Button("Save and continue", "submit", id="save_and_continue"),
            Button("Add another condition",
                   "",
                   ButtonStyle.SECONDARY,
                   id="add-another-condition",
                   link="#"),
        ],
        javascript_imports={"/javascripts/routing-rules-flags.js"},
    )
Exemplo n.º 8
0
def firearm_year_of_manufacture_details_form(good_id=None):
    return Form(
        title="What is the year of manufacture of the firearm?",
        default_button_name="Save and continue",
        questions=list(
            filter(
                bool,
                [
                    HiddenField("good_id", good_id) if good_id else None,
                    HiddenField("firearm_year_of_manufacture_step", True),
                    TextInput(description="", name="year_of_manufacture", optional=False,),
                ],
            )
        ),
    )
Exemplo n.º 9
0
def firearms_sporting_shotgun_form(firearm_type):
    title = get_sporting_shotgun_form_title(firearm_type)

    return Form(
        title=title,
        questions=[
            HiddenField("type", firearm_type),
            HiddenField("sporting_shotgun_step", True),
            RadioButtons(
                title="",
                name="is_sporting_shotgun",
                options=[Option(key=True, value="Yes"), Option(key=False, value="No"),],
            ),
        ],
        default_button_name="Save and continue",
    )
Exemplo n.º 10
0
def approve_licence_form(queue_pk, case_id, is_open_licence, editable_duration, goods, goods_html):
    return Form(
        title=lite_content.lite_internal_frontend.advice.FinaliseLicenceForm.APPROVE_TITLE,
        questions=[
            DateInput(
                description=lite_content.lite_internal_frontend.advice.FinaliseLicenceForm.DATE_DESCRIPTION,
                title=lite_content.lite_internal_frontend.advice.FinaliseLicenceForm.DATE_TITLE,
                prefix="",
            ),
            conditional(
                editable_duration,
                TextInput(
                    title=lite_content.lite_internal_frontend.advice.FinaliseLicenceForm.DURATION_TITLE,
                    name="duration",
                    description=lite_content.lite_internal_frontend.advice.FinaliseLicenceForm.DURATION_DESCRIPTION,
                ),
            ),
            HiddenField(name="action", value="approve"),
            conditional(goods, Custom(goods_html, data=goods,)),
        ],
        container="case",
        back_link=conditional(
            is_open_licence,
            BackLink(
                url=reverse_lazy("cases:finalise_goods_countries", kwargs={"queue_pk": queue_pk, "pk": case_id}),
                text=lite_content.lite_internal_frontend.advice.FinaliseLicenceForm.Actions.BACK_TO_DECISION_MATRIX_BUTTON,
            ),
            BackLink(
                url=reverse_lazy("cases:case", kwargs={"queue_pk": queue_pk, "pk": case_id, "tab": "final-advice"}),
                text=lite_content.lite_internal_frontend.advice.FinaliseLicenceForm.Actions.BACK_TO_ADVICE_BUTTON,
            ),
        ),
    )
Exemplo n.º 11
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")),
    )
Exemplo n.º 12
0
def new_location_form(request, application_type, location_type):
    exclude = []
    if application_type in [CaseTypes.SITL, CaseTypes.SICL, CaseTypes.OICL]:
        exclude.append("GB")

    countries = get_countries(request, True, exclude)

    return Form(
        title=NewLocationForm.TITLE,
        description=NewLocationForm.DESCRIPTION,
        questions=[
            HiddenField(name="external_locations", value=""),
            TextInput(name="name", title=NewLocationForm.Name.TITLE),
            TextArea(
                name="address",
                title=conditional(
                    location_type == LocationType.SEA_BASED,
                    NewLocationForm.Address.SEA_BASED_TITLE,
                    NewLocationForm.Address.TITLE,
                ),
                description=conditional(
                    application_type == CaseTypes.SITL,
                    NewLocationForm.Address.SITL_DESCRIPTION,
                    conditional(
                        location_type == LocationType.SEA_BASED,
                        NewLocationForm.Address.SEA_BASED_DESCRIPTION,
                        NewLocationForm.Address.DESCRIPTION,
                    ),
                ),
            ),
            conditional(location_type != LocationType.SEA_BASED,
                        country_question(prefix="", countries=countries)),
        ],
        default_button_name=strings.SAVE_AND_CONTINUE,
    )
Exemplo n.º 13
0
def done_with_case_form(request, queue_pk, case_pk, has_review_date):
    queue = None
    queues, _ = get_user_case_queues(request, case_pk)

    if not queues:
        queue = get_queue(request, queue_pk)

    return Form(
        title=DoneWithCaseOnQueueForm.TITLE if not queue else
        DoneWithCaseOnQueueForm.TITLE_SINGULAR.format(queue["name"]),
        questions=[
            conditional(
                queues,
                Checkboxes(
                    name="queues[]",
                    options=[
                        Option(queue["id"], queue["name"]) for queue in queues
                    ],
                    title=DoneWithCaseOnQueueForm.CHECKBOX_TITLE,
                    description=DoneWithCaseOnQueueForm.CHECKBOX_DESCRIPTION,
                ),
                HiddenField(name="queues[]", value=queue_pk),
            ),
            DetailComponent(
                title=DoneWithCaseOnQueueForm.NOTE,
                components=[
                    TextArea(name="note", classes=["govuk-!-margin-0"]),
                ],
            ),
        ],
        default_button_name=DoneWithCaseOnQueueForm.SUBMIT,
        container="case",
        javascript_imports=conditional(has_review_date,
                                       {"/javascripts/assign_queue.js"}, None),
    )
Exemplo n.º 14
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),
                ],
            ),
        ],
    )
Exemplo n.º 15
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),
                ],
            ),
        ],
    )
Exemplo n.º 16
0
    def dispatch(self, request, *args, **kwargs):
        query, _ = get_end_user_advisory(request, str(kwargs["pk"]))

        self.data = {
            "end_user.name": query["end_user"]["name"],
            "end_user.website": query["end_user"]["website"],
            "end_user.address": query["end_user"]["address"],
            "end_user.country": query["end_user"]["country"]["id"],
            "end_user.type": query["end_user"]["type"],
            "reasoning": query.get("reasoning", ""),
            "note": query.get("note", ""),
            "copy_of": query["id"],
            "contact_email": query["contact_email"],
            "contact_telephone": query["contact_telephone"],
        }

        individual, commercial = False, False

        sub_type = query["end_user"]["sub_type"]["key"]
        if sub_type != "individual":
            self.data["contact_name"] = query["contact_name"]
            self.data["contact_job_title"] = query["contact_job_title"]
        else:
            individual = True

        if sub_type == "commercial":
            commercial = True
            self.data["nature_of_business"] = query["nature_of_business"]

        self.forms = copy_end_user_advisory_form(request, individual, commercial)

        # Add the existing end user type as a hidden field to preserve its data
        self.forms.forms[0].questions.append(HiddenField("end_user.sub_type", query["end_user"]["sub_type"]["key"]))

        return super(CopyAdvisory, self).dispatch(request, *args, **kwargs)
Exemplo n.º 17
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)
Exemplo n.º 18
0
def register_a_commercial_organisation_group(request, location):
    from exporter.core.views import RegisterAnOrganisationTriage

    is_in_uk = location == RegisterAnOrganisationTriage.Locations.UNITED_KINGDOM

    return FormGroup([
        Form(
            title=RegisterAnOrganisation.Commercial.TITLE,
            description=RegisterAnOrganisation.Commercial.DESCRIPTION,
            caption="Step 3 of 4",
            questions=[
                HiddenField("location", location),
                TextInput(
                    title=RegisterAnOrganisation.Commercial.NAME,
                    description=RegisterAnOrganisation.Commercial.
                    NAME_DESCRIPTION,
                    name="name",
                ),
                TextInput(
                    title=RegisterAnOrganisation.Commercial.EORI_NUMBER,
                    description=RegisterAnOrganisation.Commercial.
                    EORI_NUMBER_DESCRIPTION,
                    short_title=RegisterAnOrganisation.Commercial.
                    EORI_NUMBER_SHORT_TITLE,
                    name="eori_number",
                    optional=not is_in_uk,
                ),
                TextInput(
                    title=RegisterAnOrganisation.Commercial.SIC_NUMBER,
                    description=RegisterAnOrganisation.Commercial.
                    SIC_NUMBER_DESCRIPTION,
                    short_title=RegisterAnOrganisation.Commercial.
                    SIC_NUMBER_SHORT_TITLE,
                    name="sic_number",
                    optional=not is_in_uk,
                ),
                TextInput(
                    title=RegisterAnOrganisation.Commercial.VAT_NUMBER,
                    description=RegisterAnOrganisation.Commercial.
                    VAT_NUMBER_DESCRIPTION,
                    short_title=RegisterAnOrganisation.Commercial.
                    VAT_NUMBER_SHORT_TITLE,
                    name="vat_number",
                    optional=not is_in_uk,
                ),
                TextInput(
                    title=RegisterAnOrganisation.Commercial.CRN_NUMBER,
                    description=RegisterAnOrganisation.Commercial.
                    CRN_NUMBER_DESCRIPTION,
                    short_title=RegisterAnOrganisation.Commercial.
                    CRN_NUMBER_SHORT_TITLE,
                    name="registration_number",
                    optional=not is_in_uk,
                ),
            ],
            default_button_name=generic.CONTINUE,
        ),
        site_form(request, False, location),
    ])
Exemplo n.º 19
0
def firearm_calibre_details_form():
    return Form(
        title="What is the calibre of the product?",
        default_button_name="Save and continue",
        questions=[
            HiddenField("firearm_calibre_step", True),
            TextInput(title="", description="", name="calibre", optional=False,),
        ],
    )
Exemplo n.º 20
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"},
        )
Exemplo n.º 21
0
def software_technology_details_form(request, category_type):
    category_text = get_category_display_string(category_type)

    return Form(
        title=CreateGoodForm.TechnologySoftware.TITLE + category_text,
        questions=[
            HiddenField("is_software_or_technology_step", True),
            TextArea(title="", description="", name="software_or_technology_details", optional=False,),
        ],
    )
Exemplo n.º 22
0
def software_technology_details_form(request, item_category=None):
    category = get_category_display_string(
        request.POST.get("item_category", "") if not item_category else item_category
    )
    return Form(
        title=CreateGoodForm.TechnologySoftware.TITLE + category,
        questions=[
            HiddenField("is_software_or_technology_step", True),
            TextArea(title="", description="", name="software_or_technology_details", optional=False,),
        ],
    )
Exemplo n.º 23
0
def firearms_act_confirmation_form():
    return Form(
        title=CreateGoodForm.FirearmGood.FirearmsActCertificate.TITLE,
        questions=[
            HiddenField("section_certificate_step", True),
            Label(CreateGoodForm.FirearmGood.FirearmsActCertificate.FIREARMS_ACT),
            Label(
                id="section-1-link",
                text=linkify(
                    CreateGoodForm.FirearmGood.FirearmsActCertificate.SECTION_ONE_LINK,
                    name=CreateGoodForm.FirearmGood.FirearmsActCertificate.SECTION_ONE,
                ),
            ),
            Label(
                id="section-2-link",
                text=linkify(
                    CreateGoodForm.FirearmGood.FirearmsActCertificate.SECTION_TWO_LINK,
                    name=CreateGoodForm.FirearmGood.FirearmsActCertificate.SECTION_TWO,
                ),
            ),
            Label(
                id="section-5-link",
                text=linkify(
                    CreateGoodForm.FirearmGood.FirearmsActCertificate.SECTION_FIVE_LINK,
                    name=CreateGoodForm.FirearmGood.FirearmsActCertificate.SECTION_FIVE,
                ),
            ),
            RadioButtons(
                title="",
                name="is_covered_by_firearm_act_section_one_two_or_five",
                options=[
                    Option(
                        key=True,
                        value=CreateGoodForm.FirearmGood.FirearmsActCertificate.YES,
                        components=[
                            TextInput(
                                title=CreateGoodForm.FirearmGood.FirearmsActCertificate.SECTION_CERTIFICATE_NUMBER,
                                description="",
                                name="section_certificate_number",
                                optional=False,
                            ),
                            DateInput(
                                title=CreateGoodForm.FirearmGood.FirearmsActCertificate.EXPIRY_DATE,
                                description=CreateGoodForm.FirearmGood.FirearmsActCertificate.EXPIRY_DATE_HINT,
                                prefix="section_certificate_date_of_expiry",
                                name="section_certificate_date_of_expiry",
                            ),
                        ],
                    ),
                    Option(key=False, value=CreateGoodForm.FirearmGood.FirearmsActCertificate.NO),
                ],
            ),
        ],
    )
Exemplo n.º 24
0
def product_component_form(request):
    return Form(
        title=CreateGoodForm.ProductComponent.TITLE,
        questions=[
            HiddenField("is_component_step", True),
            RadioButtons(
                title="",
                name="is_component",
                options=[
                    Option(
                        key="yes_designed",
                        value=CreateGoodForm.ProductComponent.YES_DESIGNED,
                        components=[
                            TextArea(
                                title=CreateGoodForm.ProductComponent.
                                DESIGNED_DETAILS,
                                description="",
                                name="designed_details",
                                optional=False,
                            ),
                        ],
                    ),
                    Option(
                        key="yes_modified",
                        value=CreateGoodForm.ProductComponent.YES_MODIFIED,
                        components=[
                            TextArea(
                                title=CreateGoodForm.ProductComponent.
                                MODIFIED_DETAILS,
                                description="",
                                name="modified_details",
                                optional=False,
                            ),
                        ],
                    ),
                    Option(
                        key="yes_general",
                        value=CreateGoodForm.ProductComponent.
                        YES_GENERAL_PURPOSE,
                        components=[
                            TextArea(
                                title=CreateGoodForm.ProductComponent.
                                GENERAL_DETAILS,
                                description="",
                                name="general_details",
                                optional=False,
                            ),
                        ],
                    ),
                    Option(key="no", value=CreateGoodForm.ProductComponent.NO),
                ],
            ),
        ],
    )
Exemplo n.º 25
0
def insert_hidden_fields(data: dict, form: Form):
    for key, value in data.items():
        add = True

        # Only add hidden fields if the data isn't already being passed through a component
        for question in form.questions:
            if hasattr(question, "name"):
                if question.name == key or question.name[:-2] == key:
                    add = False

        if add:
            form.questions.insert(0, HiddenField(key, value))
Exemplo n.º 26
0
    def get(self, request, **kwargs):
        search_term = request.GET.get("search_term", "").strip()
        org_type = request.GET.get("org_type", "").strip()

        params = {
            "page": int(request.GET.get("page", 1)),
            "status": request.GET.get("status", "active")
        }
        if search_term:
            params["search_term"] = search_term
        if org_type:
            params["org_type"] = org_type

        organisations, _ = get_organisations(
            request, convert_dict_to_query_params(params))

        filters = FiltersBar([
            TextInput(name="search_term",
                      title=OrganisationsPage.Filters.NAME),
            Select(
                name="org_type",
                title=OrganisationsPage.Filters.TYPE,
                options=[
                    Option("individual",
                           OrganisationsPage.Filters.Types.INDIVIDUAL),
                    Option("commercial",
                           OrganisationsPage.Filters.Types.COMMERCIAL),
                    Option("hmrc", OrganisationsPage.Filters.Types.HMRC),
                ],
            ),
            HiddenField(name="status", value=params["status"]),
        ])

        context = {
            "data":
            organisations,
            "filters":
            filters,
            "search_term":
            params.get("search_term", ""),
            "tab":
            params.get("status"),
            "in_review_total":
            get_menu_notifications(request)["notifications"].get(
                "organisations"),
            "can_manage_organisations":
            Permission.MANAGE_ORGANISATIONS.value
            in get_user_permissions(request),
        }
        return render(request, "organisations/index.html", context)
Exemplo n.º 27
0
def good_on_application_form(request, good, sub_case_type, application_id):
    if sub_case_type["key"] == EXHIBITION:
        return exhibition_good_on_application_form(request, good.get("id"),
                                                   application_id)
    else:
        return Form(
            title=AddGoodToApplicationForm.TITLE,
            description=AddGoodToApplicationForm.DESCRIPTION,
            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"],
                ),
            ],
            back_link=BackLink(
                strings.BACK_TO_APPLICATION,
                reverse_lazy("applications:preexisting_good",
                             kwargs={"pk": application_id}),
            ),
            javascript_imports={"/javascripts/add-good.js"},
        )
Exemplo n.º 28
0
def users_team_queues(request, queue_pk, case_pk, user_pk):
    queues = get_users_team_queues(request, user_pk, True)
    return Form(
        title=cases.Manage.AssignUserAndQueue.QUEUE_TITLE,
        description=cases.Manage.AssignUserAndQueue.QUEUE_DESCRIPTION,
        questions=[
            Filter(),
            RadioButtons("queue", queues, filterable=True),
            HiddenField("user_pk", user_pk),
            HiddenField("case_pk", case_pk),
            DetailComponent(
                title=cases.Manage.AssignUserAndQueue.NOTE,
                components=[
                    TextArea(name="note", classes=["govuk-!-margin-0"]),
                ],
            ),
        ],
        back_link=BackLink(url=reverse_lazy("cases:assign_user",
                                            kwargs={
                                                "queue_pk": queue_pk,
                                                "pk": case_pk
                                            })),
        container="case",
    )
Exemplo n.º 29
0
def group_two_product_type_form(back_link=None):
    form = Form(
        title=CreateGoodForm.FirearmGood.ProductType.TITLE,
        questions=[
            HiddenField("product_type_step", True),
            RadioButtons(
                title="",
                name="type",
                options=[
                    Option(
                        key="firearms",
                        value=CreateGoodForm.FirearmGood.ProductType.FIREARM),
                    Option(key="ammunition",
                           value=CreateGoodForm.FirearmGood.ProductType.
                           AMMUNITION),
                    Option(
                        key="components_for_firearms",
                        value=CreateGoodForm.FirearmGood.ProductType.
                        COMPONENTS_FOR_FIREARM,
                    ),
                    Option(
                        key="components_for_ammunition",
                        value=CreateGoodForm.FirearmGood.ProductType.
                        COMPONENTS_FOR_AMMUNITION,
                    ),
                    Option(key="firearms_accessory",
                           value=CreateGoodForm.FirearmGood.ProductType.
                           FIREARMS_ACCESSORY),
                    Option(
                        key="software_related_to_firearms",
                        value=CreateGoodForm.FirearmGood.ProductType.
                        SOFTWARE_RELATED_TO_FIREARM,
                    ),
                    Option(
                        key="technology_related_to_firearms",
                        value=CreateGoodForm.FirearmGood.ProductType.
                        TECHNOLOGY_RELATED_TO_FIREARM,
                    ),
                ],
            ),
        ],
        default_button_name="Save and continue",
    )

    if back_link:
        form.back_link = BackLink("Back", back_link)

    return form
Exemplo n.º 30
0
def confirm_organisation_form(organisation):
    return Form(
        title=strings.Hmrc.ConfirmOrg.TITLE,
        questions=[
            Summary(
                values={
                    "Name": organisation["name"],
                    "Registration number": organisation["registration_number"],
                    "EORI number": organisation["eori_number"],
                    "VAT number": organisation["vat_number"],
                    "Joined on": str_date_only(organisation["created_at"]),
                }),
            HiddenField("organisation", organisation["id"]),
        ],
        default_button_name=strings.Hmrc.ConfirmOrg.BUTTON_TEXT,
    )