Fix: make backend monetary validation accept unpadded decimals (#6626)

This commit is contained in:
shamoon
2024-05-07 14:38:52 -07:00
committed by GitHub
parent caec0ed4d1
commit 6ea25a96a3
3 changed files with 10 additions and 18 deletions

View File

@@ -547,7 +547,7 @@ class CustomFieldInstanceSerializer(serializers.ModelSerializer):
except Exception:
# If that fails, try to validate as a monetary string
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",
)(data["value"])
elif field.data_type == CustomField.FieldDataType.STRING:

View File

@@ -499,22 +499,6 @@ class TestCustomFieldsAPI(DirectoriesMixin, APITestCase):
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(
f"/api/documents/{doc.id}/",
data={