Replay falsey values in input fields

Currently an integer of 0 doesn't get shown because it fails the
truthiness check in the govuk-frontend template [^1]. Note that
we can't just do str(value) as for None this would be "None".

[^1]: fd4952f1c0/src/govuk/components/input/template.njk (L51)
This commit is contained in:
Ben Thorner
2022-03-01 13:51:04 +00:00
parent 05b8fd7c01
commit 09899eb99d

View File

@@ -2,6 +2,7 @@ import math
import weakref import weakref
from datetime import datetime, timedelta from datetime import datetime, timedelta
from itertools import chain from itertools import chain
from numbers import Number
import pytz import pytz
from flask import Markup, render_template, request from flask import Markup, render_template, request
@@ -221,6 +222,7 @@ def password(label='Password'):
def govuk_text_input_field_widget(self, field, type=None, param_extensions=None, **kwargs): def govuk_text_input_field_widget(self, field, type=None, param_extensions=None, **kwargs):
value = kwargs["value"] if kwargs.get("value") else field.data value = kwargs["value"] if kwargs.get("value") else field.data
value = str(value) if isinstance(value, Number) else value
# error messages # error messages
error_message = None error_message = None