Fix: make backend monetary validation accept unpadded decimals
This commit is contained in:
parent
caec0ed4d1
commit
e929d5cd84
@ -547,7 +547,7 @@ class CustomFieldInstanceSerializer(serializers.ModelSerializer):
|
|||||||
except Exception:
|
except Exception:
|
||||||
# If that fails, try to validate as a monetary string
|
# If that fails, try to validate as a monetary string
|
||||||
RegexValidator(
|
RegexValidator(
|
||||||
regex=r"^[A-Z]{3}-?\d+(\.\d{2,2})$",
|
regex=r"^[A-Z]{3}-?\d+(\.\d{1,2})$",
|
||||||
message="Must be a two-decimal number with optional currency code e.g. GBP123.45",
|
message="Must be a two-decimal number with optional currency code e.g. GBP123.45",
|
||||||
)(data["value"])
|
)(data["value"])
|
||||||
elif field.data_type == CustomField.FieldDataType.STRING:
|
elif field.data_type == CustomField.FieldDataType.STRING:
|
||||||
|
@ -499,22 +499,6 @@ class TestCustomFieldsAPI(DirectoriesMixin, APITestCase):
|
|||||||
|
|
||||||
self.assertEqual(resp.status_code, status.HTTP_400_BAD_REQUEST)
|
self.assertEqual(resp.status_code, status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
resp = self.client.patch(
|
|
||||||
f"/api/documents/{doc.id}/",
|
|
||||||
data={
|
|
||||||
"custom_fields": [
|
|
||||||
{
|
|
||||||
"field": custom_field_money.id,
|
|
||||||
# Too few places past decimal
|
|
||||||
"value": "GBP12.1",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
format="json",
|
|
||||||
)
|
|
||||||
|
|
||||||
self.assertEqual(resp.status_code, status.HTTP_400_BAD_REQUEST)
|
|
||||||
|
|
||||||
resp = self.client.patch(
|
resp = self.client.patch(
|
||||||
f"/api/documents/{doc.id}/",
|
f"/api/documents/{doc.id}/",
|
||||||
data={
|
data={
|
||||||
|
Loading…
x
Reference in New Issue
Block a user