Always check on delete restrict for issue1588
This commit is contained in:
1 parent
e75ba6b112
commit
1ec9aad435
1 file changed
+12
-13
+12
-13
@@ -1115,6 +1115,18 @@ class ModelSQL(ModelStorage):
|
||||
if model_ids:
|
||||
model.delete(cursor, user, model_ids, context=delete_ctx)
|
||||
|
||||
for model, field_name in foreign_keys_tocheck:
|
||||
if model.search(cursor, 0, [
|
||||
(field_name, 'in', sub_ids),
|
||||
], order=[], context=context):
|
||||
error_args = []
|
||||
error_args.append(self._get_error_args(cursor, user, 'id',
|
||||
context=context)[1])
|
||||
error_args.extend(list(model._get_error_args(cursor,
|
||||
user, field_name, context=context)))
|
||||
self.raise_user_error(cursor, 'foreign_model_exist',
|
||||
error_args=tuple(error_args), context=context)
|
||||
|
||||
super(ModelSQL, self).delete(cursor, user, sub_ids, context=context)
|
||||
|
||||
try:
|
||||
@@ -1124,19 +1136,6 @@ class ModelSQL(ModelStorage):
|
||||
database = Database(cursor.database_name).connect()
|
||||
cursor2 = database.cursor()
|
||||
try:
|
||||
for model, field_name in foreign_keys_tocheck:
|
||||
if model.search(cursor2, 0, [
|
||||
(field_name, 'in', sub_ids),
|
||||
], order=[], context=context):
|
||||
error_args = []
|
||||
error_args.append(self._get_error_args(cursor2,
|
||||
user, 'id', context=context)[1])
|
||||
error_args.extend(list(model._get_error_args(
|
||||
cursor2, user, field_name, context=context)))
|
||||
self.raise_user_error(cursor2,
|
||||
'foreign_model_exist',
|
||||
error_args=tuple(error_args),
|
||||
context=context)
|
||||
for name, _, error in self._sql_constraints:
|
||||
if name in exception[0]:
|
||||
self.raise_user_error(cursor2, error,
|
||||
|
||||
Reference in new issue
Block a user