Fix: make backend monetary validation accept unpadded decimals

This commit is contained in:
shamoon 2024-05-07 13:56:32 -07:00
parent caec0ed4d1
commit e929d5cd84
2 changed files with 1 additions and 17 deletions

View File

@ -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:

View File

@ -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={