示例#1
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.helper = FormHelper()
     self.helper.label_size = Size.for_label(Size.SMALL)
     self.helper.layout = Layout(
         Fieldset(
             Field.text("name"),
             Field.text("email", field_width=Fluid.TWO_THIRDS),
             Field.text("phone", field_width=Fixed.TEN),
         ),
         Button("submit", "Submit"),
     )
示例#2
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()

        self.helper.layout = Layout(
            Field.text("order_number", label_size=Size.SMALL),
            Field.text("origin", label_size=Size.SMALL),
            Field.radios("mechanism", legend_size=Size.SMALL),
            Field.radios("category", legend_size=Size.SMALL),
            Button("submit", "Search and Filter", css_class="govuk-!-margin-top-6"),
            HTML(
                f'<a class="govuk-button govuk-button--secondary govuk-!-margin-top-6" href="{self.clear_url}"> Clear </a>',
            ),
        )
示例#3
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.helper = FormHelper()
     self.helper.layout = Layout(
         Fieldset(
             Field.text("street1", field_width=Fluid.THREE_QUARTERS),
             Field.text("street2", field_width=Fluid.THREE_QUARTERS),
             Field.text("city", field_width=Fluid.ONE_HALF),
             Field.text("county", field_width=Fluid.ONE_HALF),
             Field.text("postcode", field_width=Fluid.ONE_QUARTER),
             legend="What is your address?",
             legend_size=Size.LARGE,
             legend_tag="h1",
         )
     )
示例#4
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.fields[
            "certificate_type"].label_from_instance = lambda obj: f"{obj.sid} - {obj.description}"
        self.fields["certificate_type"].required = False

        if self.instance:
            self.fields["code"].disabled = True
            self.fields["code"].help_text = "You can't edit this"
            self.fields["code"].initial = self.instance.code

            self.fields["certificate_type"].disabled = True
            self.fields["certificate_type"].help_text = "You can't edit this"

        self.helper = FormHelper(self)
        self.helper.label_size = Size.SMALL
        self.helper.legend_size = Size.SMALL

        self.helper.layout = Layout(
            Field.text(
                "code",
                field_width=Fixed.TEN,
            ),
            "certificate_type",
            "start_date",
            "end_date",
            Submit("submit", "Save"),
        )
示例#5
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.fields["footnote_type"].label_from_instance = (
            lambda obj: f"{obj.footnote_type_id} - {obj.description}")
        self.fields["footnote_type"].label = "Footnote type"
        self.fields["footnote_type"].required = False

        if self.instance:
            self.fields["code"].disabled = True
            self.fields["code"].help_text = "You can't edit this"
            self.fields["code"].initial = str(self.instance)

            self.fields["footnote_type"].disabled = True
            self.fields["footnote_type"].help_text = "You can't edit this"

        self.helper = FormHelper(self)
        self.helper.label_size = Size.SMALL
        self.helper.legend_size = Size.SMALL

        self.helper.layout = Layout(
            Field.text(
                "code",
                field_width=Fixed.TEN,
            ),
            Field("footnote_type"),
            Field("start_date"),
            Field("end_date"),
            Submit(
                "submit",
                "Save",
                data_module="govuk-button",
                data_prevent_double_click="true",
            ),
        )
示例#6
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.fields["footnote_type"].label_from_instance = (
            lambda obj: f"{obj.footnote_type_id} - {obj.description}")
        self.fields["footnote_type"].label = "Footnote type"
        self.fields["footnote_type"].required = False

        if self.instance:
            self.fields["code"].disabled = True
            self.fields["code"].help_text = "You can't edit this"
            self.fields["code"].initial = str(self.instance)

            self.fields["footnote_type"].disabled = True
            self.fields["footnote_type"].help_text = "You can't edit this"

            if self.instance.valid_between.lower:
                self.fields[
                    "start_date"].initial = self.instance.valid_between.lower
            if self.instance.valid_between.upper:
                self.fields[
                    "end_date"].initial = self.instance.valid_between.upper

        self.helper = FormHelper(self)
        self.helper.layout = Layout(
            Field.text(
                "code",
                field_width=Fixed.TEN,
                label_size=Size.SMALL,
            ),
            Field("footnote_type", context={"label_size": "govuk-label--s"}),
            Field("start_date", context={"legend_size": "govuk-label--s"}),
            Field("end_date", context={"legend_size": "govuk-label--s"}),
            Submit("submit", "Save"),
        )
示例#7
0
def test_override_default_label_size():
    """Verify a default label size can be overridden on the field."""
    form = TextInputForm()
    form.helper = FormHelper()
    form.helper.label_size = Size.MEDIUM
    form.helper.layout = Layout(Field.text("name", label_size=Size.LARGE))
    assert parse_form(form) == parse_contents(RESULT_DIR,
                                              "override_label_size.html")
示例#8
0
def field_to_layout(field_name, field):
    """
    Converts fields into their GDS styled counterparts.

    If the counterpart is unknown, return the field_name as default
    """
    if isinstance(field, forms.CharField):
        return Field.text(field_name, label_size=Size.SMALL)
    if isinstance(field, forms.ChoiceField):
        return Field.checkboxes(field_name, legend_size=Size.SMALL)

    return field_name
示例#9
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.helper = FormHelper()
     self.helper.label_size = Size.SMALL
     self.helper.legend_size = Size.SMALL
     self.helper.layout = Layout(
         Div(
             Field.text("sid", field_width=Fluid.TWO_THIRDS),
             "goods_nomenclature",
             "additional_code",
             "order_number",
             "measure_type",
             "regulation",
             "geographical_area",
             "footnote",
             css_class="govuk-grid-row quarters",
         ),
         HTML(
             '<hr class="govuk-section-break govuk-section-break--s govuk-section-break--visible">',
         ),
         Div(
             Div(
                 Field.radios(
                     "start_date_modifier",
                     inline=True,
                 ),
                 "start_date",
                 css_class=
                 "govuk-grid-column-one-half form-group-margin-bottom-2",
             ),
             Div(
                 Field.radios(
                     "end_date_modifier",
                     inline=True,
                 ),
                 "end_date",
                 css_class=
                 "govuk-grid-column-one-half form-group-margin-bottom-2",
             ),
             css_class="govuk-grid-row govuk-!-margin-top-6",
         ),
         HTML(
             '<hr class="govuk-section-break govuk-section-break--s govuk-section-break--visible">',
         ),
         Button("submit",
                "Search and Filter",
                css_class="govuk-!-margin-top-6"),
         HTML(
             f'<a class="govuk-button govuk-button--secondary govuk-!-margin-top-6" href="{self.clear_url}"> Clear </a>',
         ),
     )
示例#10
0
    def __init__(self, *args, **kwargs):
        self.request = kwargs.pop("request", None)
        super().__init__(*args, **kwargs)

        self.fields[
            "type"
        ].label_from_instance = lambda obj: f"{obj.sid} - {obj.description}"

        self.helper = FormHelper(self)
        self.helper.label_size = Size.SMALL
        self.helper.legend_size = Size.SMALL
        self.helper.layout = Layout(
            "type",
            Field.text("code", field_width=Fluid.ONE_QUARTER, maxlength="3"),
            "start_date",
            Field.textarea("description", rows=5),
            DescriptionHelpBox(),
            Submit("submit", "Save"),
        )
示例#11
0
def test_text_field_defaults():
    field = Field.text("name")
    assert field.context == {}
    assert field.attrs == {}
示例#12
0
def test_text_invalid_fluid_width():
    with pytest.raises(ValueError):
        Field.text("name", field_width="ninety-percent")
示例#13
0
def test_text_field_fluid_width():
    field = Field.text("name", field_width=Fluid.THREE_QUARTERS)
    assert field.attrs["class"] == "govuk-!-width-three-quarters"
    assert field.context == {}
示例#14
0
def test_text_invalid_fixed_width():
    with pytest.raises(ValueError):
        Field.text("name", field_width=1)
示例#15
0
def test_text_field_fixed_width():
    field = Field.text("name", field_width=Fixed.TEN)
    assert field.attrs["class"] == "govuk-input--width-10"
    assert field.context == {}
示例#16
0
def test_text_invalid_label_size():
    with pytest.raises(ValueError):
        Field.text("name", label_size="other")
示例#17
0
def test_text_field_label_size():
    field = Field.text("name", label_size=Size.MEDIUM)
    assert field.context["label_size"] == "govuk-label--m"
    assert field.attrs == {}