예제 #1
0
def add_role(request: HttpRequest):
    return Form(
        title=AddRoleForm.TITLE,
        description=AddRoleForm.DESCRIPTION,
        questions=[
            TextInput(title=AddRoleForm.ROLE_NAME, name="name"),
            Checkboxes(
                name="permissions[]",
                options=get_permissions(request, True),
                title=AddRoleForm.PERMISSION_CHECKBOXES_TITLE,
                description=AddRoleForm.PERMISSION_CHECKBOXES_DESCRIPTION,
                optional=True,
                classes=["govuk-checkboxes--small"],
            ),
            Checkboxes(
                name="statuses[]",
                options=get_statuses(request, True),
                title=AddRoleForm.STATUSES_CHECKBOXES_TITLE,
                description=AddRoleForm.STATUSES_CHECKBOXES_DESCRIPTION,
                optional=True,
                classes=["govuk-checkboxes--small"],
            ),
        ],
        back_link=BackLink(AddRoleForm.BACK_LINK, reverse_lazy("users:roles")),
        default_button_name=AddRoleForm.FORM_CREATE,
    )
예제 #2
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)
예제 #3
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,
    )
def product_category_form(request):
    product_categories = get_trade_control_product_categories(request)
    hint_text_map = {
        "category_a":
        TradeControlLicenceQuestions.ProductCategory.CATEGORY_A_HINT,
        "category_b":
        TradeControlLicenceQuestions.ProductCategory.CATEGORY_B_HINT,
        "category_c":
        TradeControlLicenceQuestions.ProductCategory.CATEGORY_C_HINT,
    }

    options = [
        Option(product_category["key"], product_category["value"],
               hint_text_map.get(product_category["key"]))
        for product_category in product_categories
    ]

    return Form(
        title=TradeControlLicenceQuestions.ProductCategory.TITLE,
        description=TradeControlLicenceQuestions.ProductCategory.DESCRIPTION,
        questions=[
            Checkboxes(name="trade_control_product_categories[]",
                       options=options)
        ],
        default_button_name=generic.SAVE_AND_CONTINUE,
    )
예제 #5
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"},
    )
예제 #6
0
 def get_open_general_licences(self):
     params = self.request.GET.copy()
     params.pop("licence_type")
     self.data = get_open_general_licences(self.request, registered=True, **params)
     control_list_entries = get_potential_ogl_control_list_entries(self.data)
     countries = get_potential_ogl_countries(self.data)
     sites = get_potential_ogl_sites(self.data)
     self.filters = [
         TextInput(name="name", title=OpenGeneralLicencesList.Filters.NAME),
         Select(
             name="case_type",
             title=OpenGeneralLicencesList.Filters.TYPE,
             options=OpenGeneralExportLicenceTypes.as_options(),
         ),
         AutocompleteInput(
             name="control_list_entry",
             title=OpenGeneralLicencesList.Filters.CONTROL_LIST_ENTRY,
             options=control_list_entries,
         ),
         AutocompleteInput(name="country", title=OpenGeneralLicencesList.Filters.COUNTRY, options=countries),
         Select(name="site", title=OpenGeneralLicencesList.Filters.SITE, options=sites,),
         Checkboxes(
             name="active_only",
             options=[Option(key=True, value=OpenGeneralLicencesList.Filters.ONLY_SHOW_ACTIVE)],
             classes=["govuk-checkboxes--small"],
         ),
     ]
     self.template = "open-general-licences"
예제 #7
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),
    )
예제 #8
0
def set_flags_form(flags, level, show_case_header=False, show_sidebar=False):
    form = Form(
        title=getattr(SetFlagsForm, level).TITLE,
        description=getattr(SetFlagsForm, level).DESCRIPTION,
        questions=[
            Filter(placeholder=getattr(SetFlagsForm, level).FILTER),
            Checkboxes(
                name="flags[]",
                options=flags,
                filterable=True,
                disabled_hint="You do not have permission to remove this flag.",
            ),
            DetailComponent(
                title=getattr(SetFlagsForm, level).Note.TITLE,
                components=[
                    TextArea(name="note", classes=["govuk-!-margin-0"]),
                ],
            ),
        ],
        default_button_name=getattr(SetFlagsForm, level).SUBMIT_BUTTON,
        container="case" if show_case_header else "two-pane",
        javascript_imports={"/javascripts/flags-permission-hints.js"},
    )

    if show_sidebar:
        form.helpers = [
            HelpSection("Setting flags on:",
                        "",
                        includes="case/includes/selection-sidebar.html")
        ]

    return form
예제 #9
0
def licences_filters(request):
    return [
        TextInput(
            name="reference",
            title=LicencesList.Filters.REFERENCE,
        ),
        AutocompleteInput(
            name="clc",
            title=LicencesList.Filters.CLC,
            options=get_control_list_entries(request, convert_to_options=True),
        ),
        AutocompleteInput(
            name="country",
            title=LicencesList.Filters.DESTINATION_COUNTRY,
            options=get_countries(request, convert_to_options=True),
        ),
        TextInput(
            name="end_user",
            title=LicencesList.Filters.DESTINATION_NAME,
        ),
        Checkboxes(
            name="active_only",
            options=[Option(key=True, value=LicencesList.Filters.ACTIVE)],
            classes=["govuk-checkboxes--small"],
        ),
    ]
예제 #10
0
def assign_users_form(request: HttpRequest, team_id, queue, multiple: bool):
    params = {
        "teams": team_id,
        "disable_pagination": True,
        "status": UserStatuses.ACTIVE
    }
    return Form(
        title=cases.Manage.AssignUsers.MULTIPLE_TITLE
        if multiple else cases.Manage.AssignUsers.TITLE,
        description=cases.Manage.AssignUsers.DESCRIPTION,
        questions=[
            Filter(),
            Checkboxes("users",
                       options=get_gov_users(
                           request,
                           params,
                           convert_to_options=True,
                       ),
                       filterable=True),
            DetailComponent(
                title=cases.Manage.AssignUsers.NOTE,
                components=[
                    TextArea(name="note", classes=["govuk-!-margin-0"]),
                ],
            ),
        ],
        caption=queue["name"],
        default_button_name=cases.Manage.AssignUsers.BUTTON,
    )
예제 #11
0
    def get(self, request, **kwargs):
        params = request.GET.copy()
        params["status"] = params.get("status", FlagStatus.ACTIVE.value)
        data = get_flags(request, **params)
        user_data, _ = get_gov_user(request, str(request.user.lite_api_user_id))

        filters = FiltersBar(
            [
                TextInput(name="name", title="name"),
                Select(name="level", title="level", options=level_options),
                TextInput(name="priority", title="priority"),
                Select(name="team", title="team", options=get_teams(request, True)),
                Checkboxes(
                    name="status",
                    options=[Option(FlagStatus.DEACTIVATED.value, flags.FlagsList.SHOW_DEACTIVATED_FLAGS)],
                    classes=["govuk-checkboxes--small"],
                ),
            ]
        )

        context = {
            "data": data,
            "user_data": user_data,
            "filters": filters,
            "can_change_flag_status": Permission.ACTIVATE_FLAGS.value in get_user_permissions(request),
        }
        return render(request, "flags/index.html", context)
예제 #12
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")),
    )
예제 #13
0
    def get(self, request, **kwargs):
        params = {
            "page":
            int(request.GET.get("page", 1)),
            **get_params_if_exist(request, [
                "case_status", "team", "queue", "tier", "only_active"
            ]),
        }
        data, _ = get_routing_rules(request,
                                    convert_dict_to_query_params(params))

        user_data, _ = get_gov_user(request,
                                    str(request.session["lite_api_user_id"]))

        status = request.GET.get("status", "active")

        filters = FiltersBar([
            Select(title=Filter.CASE_STATUS,
                   name="case_status",
                   options=get_statuses(request, True)),
            *conditional(
                has_permission(request, Permission.MANAGE_ALL_ROUTING_RULES),
                [
                    Select(title=Filter.TEAM,
                           name="team",
                           options=get_teams(request, True)),
                    AutocompleteInput(
                        title=Filter.QUEUE,
                        name="queue",
                        options=get_queues(request, convert_to_options=True),
                    ),
                ],
                [
                    AutocompleteInput(
                        title=Filter.QUEUE,
                        name="queue",
                        options=get_users_team_queues(
                            request, request.session["lite_api_user_id"],
                            True),
                    ),
                ],
            ),
            TextInput(title=Filter.TIER, name="tier"),
            Checkboxes(
                name="only_active",
                options=[Option(True, Filter.ACTIVE_ONLY)],
                classes=["govuk-checkboxes--small"],
            ),
        ])

        context = {
            "data": data,
            "status": status,
            "user_data": user_data,
            "filters": filters,
        }
        return render(request, "routing-rules/index.html", context)
예제 #14
0
def assign_sites(request):
    return Form(
        title=strings.users.AssignToSitesForm.ASSIGN_USER_TO_SITES_TITLE,
        description=strings.users.AssignToSitesForm.
        ASSIGN_USER_TO_SITES_DESCRIPTION,
        questions=[
            Checkboxes(name="sites[]",
                       options=get_sites(request, request.user.organisation,
                                         True))
        ],
        default_button_name=strings.SAVE,
    )
예제 #15
0
def select_case_type(request):
    return Form(
        title=Forms.CASE_TYPES,
        questions=[
            Checkboxes(
                name="case_types[]",
                options=[
                    Option(option["id"], option["reference"]["value"])
                    for option in get_case_types(request, False)
                ],
            )
        ],
    )
예제 #16
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"},
    )
예제 #17
0
def f680_details_form(request, application_id):
    return Form(
        title=F680Details.TITLE,
        description=F680Details.DESCRIPTION,
        questions=[
            Checkboxes(
                name="types[]",
                options=[
                    Option(key, value) for key, value in
                    get_f680_clearance_types(request).items()
                ],
            ),
        ],
        default_button_name=F680Details.BUTTON,
        back_link=back_to_task_list(application_id),
    )
예제 #18
0
 def get_licences(self):
     params = self.request.GET.copy()
     if "licence_type" in params:
         params.pop("licence_type")
     self.data = get_licences(
         self.request, licence_type="licence" if self.type == "licences" else "clearance", **params
     )
     self.filters = [
         *licences_filters(self.request),
         Checkboxes(
             name="active_only",
             options=[Option(key=True, value=LicencesList.Filters.ACTIVE)],
             classes=["govuk-checkboxes--small"],
         ),
     ]
     self.template = "licences"
예제 #19
0
def select_flags(request, team_id):
    return Form(
        title=Forms.FLAGS,
        questions=[
            Checkboxes(
                name="flags[]",
                options=[
                    Option(flag["id"], flag["name"]) for flag in
                    get_flags_for_team_of_level(request,
                                                level="",
                                                team_id=team_id,
                                                include_system_flags=True)[0]
                ],
            )
        ],
    )
예제 #20
0
def sites_form(request, application_type):
    exclude = ""
    if application_type in [CaseTypes.SITL, CaseTypes.SICL, CaseTypes.OICL]:
        exclude = "GB"

    return Form(
        title="Select locations",
        questions=[
            Filter(),
            Checkboxes(
                name="sites[]",
                options=get_sites(request, request.session["organisation"], True, False, exclude),
                filterable=True,
            ),
        ],
        default_button_name=generic.SAVE_AND_CONTINUE,
    )
예제 #21
0
def countries_form(request, application_id):
    return Form(
        title=strings.applications.DestinationForm.TITLE,
        description=strings.applications.DestinationForm.DESCRIPTION,
        questions=[
            Filter(),
            Checkboxes(
                name="countries[]",
                options=get_countries(request, True, ["GB"]),
                classes=["govuk-checkboxes--small"],
                show_select_links=True,
                filterable=True,
            ),
        ],
        default_button_name=strings.SAVE_AND_CONTINUE,
        back_link=back_to_task_list(application_id),
    )
예제 #22
0
def external_locations_form(request, application_type):
    exclude = []
    if application_type in [CaseTypes.SITL, CaseTypes.SICL, CaseTypes.OICL]:
        exclude.append("GB")

    return Form(
        title="Select locations",
        questions=[
            Filter(),
            Checkboxes(
                name="external_locations[]",
                options=get_external_locations(
                    request, str(request.session["organisation"]), True,
                    exclude, application_type),
                filterable=True,
            ),
        ],
        default_button_name=strings.SAVE_AND_CONTINUE,
    )
예제 #23
0
def initial_routing_rule_questions(request, select_team, team_id,
                                   is_editing: bool):

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

    return Form(
        title=Forms.EDIT_TITLE if is_editing else Forms.CREATE_TITLE,
        questions=[
            AutocompleteInput(
                title=Forms.TEAM,
                name="team",
                options=get_teams(request, True),
                description="Type to get suggestions. For example, TAU.",
            ),
            Select(title=Forms.CASE_STATUS,
                   name="status",
                   options=get_statuses(request, True)),
            AutocompleteInput(
                title=Forms.QUEUE,
                name="queue",
                options=team_queues_options,
                description=
                "Type to get suggestions.\nFor example, HMRC enquiries.",
            ),
            TextInput(title=Forms.TIER, name="tier"),
            HiddenField(name="additional_rules[]", value=None),
            Checkboxes(
                title=Forms.ADDITIONAL_RULES,
                name="additional_rules[]",
                options=additional_rules,
            ),
        ],
        back_link=BackLink(Forms.BACK_BUTTON,
                           reverse_lazy("routing_rules:list")),
        javascript_imports={"/javascripts/routing-rules-teams.js"},
    )
예제 #24
0
def add_role(request: HttpRequest, add: bool):
    if add:
        form_strings = strings.roles.AddRoleForm
    else:
        form_strings = strings.roles.EditRoleForm

    return Form(
        title=form_strings.TITLE,
        description=form_strings.DESCRIPTION,
        questions=[
            TextInput(title=form_strings.NAME, name="name"),
            Checkboxes(
                name="permissions[]",
                options=get_permissions(request, True),
                title=form_strings.PERMISSIONS,
                description=form_strings.PERMISSIONS_DESCRIPTION,
            ),
        ],
        back_link=BackLink(form_strings.FORM_BACK_TO_ROLES,
                           reverse_lazy("organisation:roles:roles")),
        default_button_name=form_strings.FORM_CREATE,
    )
예제 #25
0
def add_user_form(request):
    return Form(
        title=strings.users.AddUserForm.USER_ADD_TITLE,
        questions=[
            TextInput(title=strings.users.AddUserForm.USER_EMAIL_QUESTION,
                      name="email"),
            Select(
                name="role",
                options=get_roles(request, request.user.organisation, True),
                title=strings.users.AddUserForm.USER_ROLE_QUESTION,
                include_default_select=False,
            ),
            Checkboxes(
                title=strings.users.AddUserForm.ASSIGN_USER_QUESTION,
                name="sites[]",
                options=get_sites(request, request.user.organisation, True),
            ),
        ],
        back_link=BackLink(
            strings.users.AddUserForm.USER_ADD_FORM_BACK_TO_USERS,
            reverse_lazy("organisation:members:members")),
    )
예제 #26
0
def contract_type_per_country_form(current_country, country_name):
    return Form(
        title=contractTypeStrings.AddContractTypesForm.TITLE + country_name,
        description=contractTypeStrings.AddContractTypesForm.DESCRIPTION,
        questions=[
            HiddenField("countries", current_country),
            Checkboxes(
                name="contract_types[]",
                options=[
                    Option(key=key.value,
                           value=ContractTypes.get_str_representation(key))
                    for key in ContractTypes
                ],
                classes=["govuk-checkboxes--small"],
                filterable=True,
            ),
            TextInput(name="other_contract_type_text",
                      title=contractTypeStrings.AddContractTypesForm.
                      PROVIDE_DETAILS),
        ],
        default_button_name=strings.SAVE_AND_CONTINUE,
    )
예제 #27
0
def initial_routing_rule_questions(request, select_team, team_id,
                                   is_editing: bool):
    select_team_question = []
    if select_team:
        select_team_question = [
            AutocompleteInput(
                title=Forms.TEAM,
                name="team",
                options=get_teams(request, True),
                description="Type to get suggestions. For example, TAU.",
            ),
        ]

    return Form(
        title=Forms.EDIT_TITLE if is_editing else Forms.CREATE_TITLE,
        questions=select_team_question + [
            Select(title=Forms.CASE_STATUS,
                   name="status",
                   options=get_statuses(request, True)),
            AutocompleteInput(
                title=Forms.QUEUE,
                name="queue",
                options=get_team_queues(request, team_id, True, True)
                if team_id else [],
                description=
                "Type to get suggestions.\nFor example, HMRC enquiries.",
            ),
            TextInput(title=Forms.TIER, name="tier"),
            HiddenField(name="additional_rules[]", value=None),
            Checkboxes(
                title=Forms.ADDITIONAL_RULES,
                name="additional_rules[]",
                options=additional_rules,
            ),
        ],
        back_link=BackLink(Forms.BACK_BUTTON,
                           reverse_lazy("routing_rules:list")),
    )
예제 #28
0
def declaration_form(application_id):
    return Form(
        title=strings.declaration.Declaration.TITLE,
        questions=[
            HiddenField(name="submit_declaration", value=True),
            # Terms and conditions
            Label("<b>" + strings.declaration.TermsAndConditions.TITLE +
                  "</b>"),
            Label(strings.declaration.TermsAndConditions.PARAGRAPH_ONE),
            Label(strings.declaration.TermsAndConditions.PARAGRAPH_TWO),
            # Licence conditions
            Label("<b>" + strings.declaration.LicenceConditions.TITLE + "<b>"),
            # Authorisation
            Label("<u>" +
                  strings.declaration.LicenceConditions.Authorisation.TITLE +
                  "</u>"),
            Label(strings.declaration.LicenceConditions.Authorisation.
                  PARAGRAPH_ONE),
            HTMLBlock(
                "<ol class='govuk-list govuk-list--number'>"
                "<ol type='a'>"
                "<li>" +
                strings.declaration.LicenceConditions.Authorisation.OPTION_A +
                "</li>"
                "<li>" +
                strings.declaration.LicenceConditions.Authorisation.OPTION_B +
                "</li>"
                "</ol>"
                "</ol>"),
            Label(strings.declaration.LicenceConditions.Authorisation.
                  PARAGRAPH_TWO),
            # Conditions
            Label("<u>" +
                  strings.declaration.LicenceConditions.Conditions.TITLE +
                  "</u>"),
            HTMLBlock("<ol class='govuk-list govuk-list--number'>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_ONE + "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_TWO + "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_THREE + "<ol type='a'>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_THREE_A + "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_THREE_B + "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_THREE_C + "</li>"
                      "</ol>"
                      "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_FOUR + "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_FIVE + "<ol type='a'>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_FIVE_A + "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_FIVE_B + "<ol type='i'>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_FIVE_B_I + "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_FIVE_B_II + "</li>"
                      "</ol>"
                      "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_FIVE_C + "<ol type='i'>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_FIVE_C_I + "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_FIVE_C_II + "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_FIVE_C_III + "</li>"
                      "</ol>"
                      "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_FIVE_D + "</li>"
                      "</ol>"
                      "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_SIX + "</li>"
                      "<li>" + strings.declaration.LicenceConditions.
                      Conditions.LIST_ITEM_SEVEN + "</li>"
                      "</ol>"),
            # Standard conditions
            Label("<u>" + strings.declaration.LicenceConditions.
                  StandardConditions.TITLE + "</u>"),
            List(
                strings.declaration.LicenceConditions.StandardConditions.
                BULLET_POINTS,
                type=List.ListType.NUMBERED,
            ),
            # General notes
            Label("<u>" +
                  strings.declaration.LicenceConditions.GeneralNotes.TITLE +
                  "</u>"),
            Label(
                strings.declaration.LicenceConditions.GeneralNotes.LINK_TEXT),
            Link(
                name="general-notes-link",
                text=strings.declaration.LicenceConditions.GeneralNotes.LINK,
                address=strings.declaration.LicenceConditions.GeneralNotes.
                LINK,
            ),
            Label(strings.declaration.LicenceConditions.GeneralNotes.
                  PARAGRAPH_ONE),
            Label(strings.declaration.LicenceConditions.GeneralNotes.
                  PARAGRAPH_TWO),
            Label(strings.declaration.LicenceConditions.GeneralNotes.
                  PARAGRAPH_THREE),
            # Declaration
            Label("<b>" + strings.declaration.Declaration.TITLE + "</b>"),
            Label(strings.declaration.Declaration.PARAGRAPH_ONE + "<br><br>" +
                  strings.declaration.Declaration.PARAGRAPH_TWO + "<br><br>" +
                  strings.declaration.Declaration.PARAGRAPH_THREE +
                  "<br><br>" + strings.declaration.Declaration.PARAGRAPH_FOUR),
            # User input
            RadioButtons(
                name="agreed_to_foi",
                title=strings.declaration.FOI.TITLE,
                options=[
                    Option(True, strings.declaration.FOI.AGREE_TO_FOI),
                    Option(False, strings.declaration.FOI.DISAGREE_TO_FOI),
                ],
                classes=["govuk-radios--inline"],
            ),
            Checkboxes(
                name="agreed_to_declaration",
                title=strings.declaration.Declaration.RADIO_TITLE,
                options=[
                    Option(
                        "True",
                        strings.declaration.Declaration.AGREE_TO_DECLARATION,
                        data_attribute="agreed_to_declaration",
                    )
                ],
                classes=["govuk-checkboxes--small"],
            ),
        ],
        default_button_name=strings.declaration.Declaration.BUTTON_TITLE,
        back_link=BackLink(
            strings.declaration.Declaration.BACK,
            reverse_lazy("applications:summary", kwargs={"pk":
                                                         application_id}),
        ),
    )
예제 #29
0
from django.http import HttpRequest
from django.urls import reverse

from lite_content.lite_internal_frontend.cases import Manage
from lite_forms.components import Form, Checkboxes, Filter, BackLink, DetailComponent, TextArea
from queues.services import get_queues


def move_case_form(request: HttpRequest, queue, case: dict):
    return Form(
        title=Manage.MoveCase.TITLE,
        description=Manage.MoveCase.DESCRIPTION,
        questions=[
            Filter(),
            Checkboxes("queues[]",
                       get_queues(request, convert_to_options=True),
                       filterable=True),
            DetailComponent(
                title=Manage.MoveCase.NOTE,
                components=[
                    TextArea(name="note", classes=["govuk-!-margin-0"]),
                ],
            ),
        ],
        back_link=BackLink(url=reverse("cases:case",
                                       kwargs={
                                           "queue_pk": queue["id"],
                                           "pk": case["id"]
                                       })),
        container="case",
    )
예제 #30
0
 Option(
     key="refuse",
     value=conditional(
         case.sub_type == CaseType.OPEN.value,
         advice.GiveOrChangeAdvicePage.RadioButtons.REJECT,
         advice.GiveOrChangeAdvicePage.RadioButtons.REFUSE,
     ),
     components=[
         Group(
             [
                 Checkboxes(
                     title=conditional(
                         key == "1",
                         advice.GiveOrChangeAdvicePage.
                         DENIAL_REASONS_TITLE),
                     name="denial_reasons[]",
                     options=denial_reasons[key],
                     classes=[
                         "govuk-checkboxes--small",
                         "govuk-checkboxes--inline"
                     ],
                 ) for key in denial_reasons.keys()
             ],
             ["app-advice__checkboxes"],
         )
     ],
 ),
 Option(
     key="no_licence_required",
     value=advice.GiveOrChangeAdvicePage.RadioButtons.NLR),
 Option(
     key="not_applicable",