From fffc27d2fa76d6d59b8089f2f14e49caa4e7f4d8 Mon Sep 17 00:00:00 2001 From: Xavier ALT Date: Wed, 24 Aug 2022 14:36:33 +0200 Subject: [PATCH] [FIX] runbot: fix creation of new runbot.version from the backend Traceback (most recent call last): File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_http.py", line 237, in _dispatch result = request.dispatch() File "/home/odoo/src/odoo/15.0/odoo/http.py", line 687, in dispatch result = self._call_function(**self.params) File "/home/odoo/src/odoo/15.0/odoo/http.py", line 359, in _call_function return checked_call(self.db, *args, **kwargs) File "/home/odoo/src/odoo/15.0/odoo/service/model.py", line 94, in wrapper return f(dbname, *args, **kwargs) File "/home/odoo/src/odoo/15.0/odoo/http.py", line 348, in checked_call result = self.endpoint(*a, **kw) File "/home/odoo/src/odoo/15.0/odoo/http.py", line 916, in __call__ return self.method(*args, **kw) File "/home/odoo/src/odoo/15.0/odoo/http.py", line 535, in response_wrap response = f(*args, **kw) File "/home/odoo/src/odoo/15.0/addons/web/controllers/main.py", line 1347, in call_kw return self._call_kw(model, method, args, kwargs) File "/home/odoo/src/odoo/15.0/addons/web/controllers/main.py", line 1339, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "/home/odoo/src/odoo/15.0/odoo/api.py", line 464, in call_kw result = _call_kw_multi(method, model, args, kwargs) File "/home/odoo/src/odoo/15.0/odoo/api.py", line 451, in _call_kw_multi result = method(recs, *args, **kwargs) File "/home/odoo/src/odoo/15.0/odoo/models.py", line 6489, in onchange snapshot1 = Snapshot(record, nametree) File "/home/odoo/src/odoo/15.0/odoo/models.py", line 6271, in __init__ self.fetch(name) File "/home/odoo/src/odoo/15.0/odoo/models.py", line 6281, in fetch self[name] = record[name] File "/home/odoo/src/odoo/15.0/odoo/models.py", line 5888, in __getitem__ return self._fields[key].__get__(self, type(self)) File "/home/odoo/src/odoo/15.0/odoo/fields.py", line 1054, in __get__ self.recompute(record) File "/home/odoo/src/odoo/15.0/odoo/fields.py", line 1243, in recompute self.compute_value(recs) File "/home/odoo/src/odoo/15.0/odoo/fields.py", line 1265, in compute_value records._compute_field_value(self) File "/home/odoo/src/odoo/15.0/odoo/models.py", line 4255, in _compute_field_value getattr(self, field.compute)() File "/home/odoo/runbot/extra/runbot/models/version.py", line 36, in _compute_version_number version.number = '.'.join([elem.zfill(2) for elem in re.sub(r'[^0-9\.]', '', version.name).split('.')]) File "/usr/lib/python3.8/re.py", line 210, in sub return _compile(pattern, flags).sub(repl, string, count) Exception The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/odoo/src/odoo/15.0/odoo/http.py", line 643, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/home/odoo/src/odoo/15.0/odoo/http.py", line 301, in _handle_exception raise exception.with_traceback(None) from new_cause TypeError: expected string or bytes-like object --- runbot/models/version.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/runbot/models/version.py b/runbot/models/version.py index 31eb5d85..e381e5c0 100644 --- a/runbot/models/version.py +++ b/runbot/models/version.py @@ -33,13 +33,14 @@ class Version(models.Model): version.is_major = False else: # max version number with this format: 99.99 - version.number = '.'.join([elem.zfill(2) for elem in re.sub(r'[^0-9\.]', '', version.name).split('.')]) + version.number = '.'.join([elem.zfill(2) for elem in re.sub(r'[^0-9\.]', '', version.name or '').split('.')]) version.is_major = all(elem == '00' for elem in version.number.split('.')[1:]) - def create(self, values): + @api.model_create_multi + def create(self, vals_list): model = self.browse() model._get_id.clear_cache(model) - return super().create(values) + return super().create(vals_list) def _get(self, name): return self.browse(self._get_id(name))