When an `IntegrityError` is raised, the user receives a cryptic error message which doesn't provide much valuable information in order to solve the problem. However, such an error is raised in 3 cases: 1. A mandatory field is not provided at creation/update. 2. The deletion of a record makes a mandatory Many2one field NULL on a referenced table (`ON DELETE SET NULL` on a not nullable field). 3. The deletion of a record raises a `ON DELETE RESTRICT` foreign-key constaints. In the first and second cases, we provide the table and field on which the `NOT NULL` constaint is raised. We also suggest to archive the record in case of a deletion. In the third case, we provide the table and the constraint raised. We also suggest to archive the record. Notes: - The IDs of the records causing the issue is not provided since the information is not provided by PostgreSQL. - Although cases 2 and 3 have a different root cause, the error message raised is very similar. Indeed, from an end-user perspective the solution is identical: archive the record. Another solution would also be to manually edit the records raising the error, but most of the time this is not an option: these records are locked and cannot be edited anymore. task-1970853 Closes #32949 closes odoo/odoo#33922 Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com> Co-authored-by: Sapan Zaveri <sza@odoo.com> Co-authored-by: Pragya Ladda <pla@odoo.com>
253 B
253 B
| 1 | id | name | model_id:id | group_id:id | perm_read | perm_write | perm_create | perm_unlink |
|---|---|---|---|---|---|---|---|---|
| 2 | access_test_rpc_model_a | access_test_rpc_model_a | model_test_rpc_model_a | 1 | 1 | 1 | 1 | |
| 3 | access_test_rpc_model_b | access_test_rpc_model_b | model_test_rpc_model_b | 1 | 1 | 1 | 1 |