Use dedicated method to skip user warning

This commit is contained in:
Cédric Krier
2023-09-24 13:23:53 +02:00
parent 01b47f30c8
commit d2908701c6
3 changed files with 21 additions and 11 deletions
+2 -6
View File
@@ -48,12 +48,8 @@
return;
}
Sao.rpc({
'method': 'model.res.user.warning.create',
'params': [[{
'user': session.user_id,
'name': name,
'always': result == 'always'
}], {}]
'method': 'model.res.user.warning.skip',
'params': [name, result == 'always', {}],
}, session).done(function() {
if (async) {
Sao.rpc(args, session).then(
+3 -5
View File
@@ -973,11 +973,9 @@ def process_exception(exception, *args, **kwargs):
name, msg, description = exception.args
res = userwarning(description, msg)
if res in ('always', 'ok'):
RPCExecute('model', 'res.user.warning', 'create', [{
'user': rpc._USER,
'name': name,
'always': (res == 'always'),
}],
RPCExecute(
'model', 'res.user.warning', 'skip',
name, (res == 'always'),
process_exception=False)
return rpc_execute(*args)
elif exception.faultCode == 'UserError':
+16
View File
@@ -1073,6 +1073,22 @@ class Warning_(ModelSQL, ModelView):
name = fields.Char('Name', required=True)
always = fields.Boolean('Always')
@classmethod
def __setup__(cls):
super().__setup__()
cls.__access__.add('user')
cls.__rpc__.update(
skip=RPC(check_access=False, readonly=False),
)
@classmethod
def skip(cls, name, always=False):
cls.create([{
'name': name,
'user': Transaction().user,
'always': always,
}])
@classmethod
def format(cls, name, records):
key = '|'.join(map(str, records)).encode('utf-8')