Enable missing-value Integer/Number fields
This commit is contained in:
parent
9f2deffb53
commit
f58858fea7
|
@ -257,12 +257,21 @@ function Response(s::Survey, oldids::Vector{ResponseID})
|
||||||
end
|
end
|
||||||
|
|
||||||
interpret(::FormField{<:AbstractString}, value::AbstractString) = value
|
interpret(::FormField{<:AbstractString}, value::AbstractString) = value
|
||||||
interpret(::FormField{Integer}, value::AbstractString) = parse(Int64, value)
|
interpret(::FormField{Integer}, value::AbstractString) =
|
||||||
|
if isempty(value)
|
||||||
|
missing
|
||||||
|
else
|
||||||
|
something(tryparse(Int64, value), value)
|
||||||
|
end
|
||||||
default_validators(::FormField{Integer}) = function(unparseable::String)
|
default_validators(::FormField{Integer}) = function(unparseable::String)
|
||||||
"Integer required. \"$unparseable\" could not be parsed as an integer."
|
"Integer required. \"$unparseable\" could not be parsed as an integer."
|
||||||
end
|
end
|
||||||
interpret(::FormField{Number}, value::AbstractString) =
|
interpret(::FormField{Number}, value::AbstractString) =
|
||||||
something(tryparse(Int64, value), parse(Float64, value))
|
if isempty(value)
|
||||||
|
missing
|
||||||
|
else
|
||||||
|
something(tryparse(Int64, value), tryparse(Float64, value), value)
|
||||||
|
end
|
||||||
default_validators(::FormField{Number}) = function(unparseable::String)
|
default_validators(::FormField{Number}) = function(unparseable::String)
|
||||||
"Number required. \"$unparseable\" could not be parsed as a number."
|
"Number required. \"$unparseable\" could not be parsed as a number."
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue