Skip to content

Commit ea5fdf1

Browse files
committed
improve error messages on unique value validation
1 parent 578baad commit ea5fdf1

2 files changed

Lines changed: 15 additions & 8 deletions

File tree

src/design/plone/policy/restapi/submit_form/post.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,20 @@ def get_form_data(self):
4747
submit_value = submitted_data.get(field_id, {}).get("value", None)
4848
if submit_value and submit_value == saved_value:
4949
raise BadRequest(
50-
api.portal.translate(
51-
_(
52-
"save_data_exception",
53-
default='Unable to save data. The value of field "${field}" is already stored in previous submissions.',
54-
mapping={"field": label},
55-
)
56-
)
50+
[
51+
{
52+
"message": api.portal.translate(
53+
_(
54+
"save_data_exception",
55+
default='Unable to save data. The value of field "${field}" is already stored in previous submissions.',
56+
mapping={"field": label},
57+
)
58+
),
59+
"field_id": field_id,
60+
"label": label,
61+
"error": "UniqueValueError",
62+
}
63+
]
5764
)
5865

5966
return form_data

src/design/plone/policy/tests/test_limit_submit_form.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,5 +187,5 @@ def test_unique_field(self):
187187
message = response.json()["message"]
188188
self.assertEqual(
189189
message,
190-
'Unable to save data. The value of field "Name" is already stored in previous submissions.',
190+
"[{'message': 'Unable to save data. The value of field \"Name\" is already stored in previous submissions.', 'field_id': 'name', 'label': 'Name', 'error': 'UniqueValueError'}]",
191191
)

0 commit comments

Comments
 (0)