This question has been flagged
4 Replies
7273 Views

I'm getting an error whenever I try to save set up a computed field in odoo 14 Enterprise Edition.

This happens for every field I try to compute, no matter how simple the script is.

Any ideas, why this happens?


Example

model: stock.move.line

dependencies: qty_done

code:

for record in self:
  record['x_qty_done_new'] = record.qty_done * 2


Traceback

Error:
Odoo Server Error

Traceback (most recent call last):
  File "/home/odoo/src/odoo/14.0/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 682, in dispatch
    result = self._call_function(**self.params)
  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 358, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/odoo/src/odoo/14.0/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 346, in checked_call
    result = self.endpoint(*a, **kw)
  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 911, in __call__
    return self.method(*args, **kw)
  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 530, in response_wrap
    response = f(*args, **kw)
  File "/home/odoo/src/odoo/14.0/addons/web/controllers/main.py", line 1359, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/home/odoo/src/odoo/14.0/addons/web/controllers/main.py", line 1351, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/home/odoo/src/odoo/14.0/odoo/api.py", line 396, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/home/odoo/src/odoo/14.0/odoo/api.py", line 383, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "/home/odoo/src/enterprise/14.0/web_studio/models/studio_mixin.py", line 28, in write
    res = super(StudioMixin, self).write(vals)
  File "/home/odoo/src/odoo/14.0/addons/mail/models/ir_model.py", line 85, in write
    res = super(IrModel, self).write(vals)
  File "/home/odoo/src/odoo/14.0/odoo/addons/base/models/ir_model.py", line 319, in write
    res = super(IrModel, self).write(vals)
  File "/home/odoo/src/odoo/14.0/odoo/models.py", line 3627, in write
    field.write(self, vals[fname])
  File "/home/odoo/src/odoo/14.0/odoo/fields.py", line 2964, in write
    return self.write_batch([(records, value)])
  File "/home/odoo/src/odoo/14.0/odoo/fields.py", line 2985, in write_batch
    return self.write_real(records_commands_list, create)
  File "/home/odoo/src/odoo/14.0/odoo/fields.py", line 3157, in write_real
    flush()
  File "/home/odoo/src/odoo/14.0/odoo/fields.py", line 3121, in flush
    comodel.create(to_create)
  File "<decorator-gen-177>", line 2, in create
  File "/home/odoo/src/odoo/14.0/odoo/api.py", line 326, in _model_create_single
    return self.browse().concat(*(create(self, vals) for vals in arg))
  File "/home/odoo/src/odoo/14.0/odoo/api.py", line 326, in <genexpr>
    return self.browse().concat(*(create(self, vals) for vals in arg))
  File "/home/odoo/src/enterprise/14.0/web_studio/models/studio_mixin.py", line 19, in create
    res = super(StudioMixin, self).create(vals)
  File "<decorator-gen-29>", line 2, in create
  File "/home/odoo/src/odoo/14.0/odoo/api.py", line 323, in _model_create_single
    return create(self, arg)
  File "/home/odoo/src/odoo/14.0/odoo/addons/base/models/ir_model.py", line 880, in create
    self.pool.init_models(self._cr, models, dict(self._context, update_custom_fields=True))
  File "/home/odoo/src/odoo/14.0/odoo/modules/registry.py", line 406, in init_models
    env['base'].flush()
  File "/home/odoo/src/odoo/14.0/odoo/models.py", line 5390, in flush
    self.recompute()
  File "/home/odoo/src/odoo/14.0/odoo/models.py", line 5825, in recompute
    process(field)
  File "/home/odoo/src/odoo/14.0/odoo/models.py", line 5809, in process
    recs.mapped(field.name)
  File "/home/odoo/src/odoo/14.0/odoo/models.py", line 5197, in mapped
    recs = recs._fields[name].mapped(recs)
  File "/home/odoo/src/odoo/14.0/odoo/fields.py", line 1036, in mapped
    self.__get__(record, type(records))
  File "/home/odoo/src/odoo/14.0/odoo/fields.py", line 938, in __get__
    self.compute_value(recs)
  File "/home/odoo/src/odoo/14.0/odoo/fields.py", line 1112, in compute_value
    records._compute_field_value(self)
  File "/home/odoo/src/odoo/14.0/odoo/models.py", line 4022, in _compute_field_value
    field.compute(self)
  File "/home/odoo/src/odoo/14.0/odoo/addons/base/models/ir_model.py", line 35, in <lambda>
    func = lambda self: safe_eval(text, SAFE_EVAL_BASE, {'self': self}, mode="exec")
  File "/home/odoo/src/odoo/14.0/odoo/tools/safe_eval.py", line 310, in safe_eval
    check_values(globals_dict)
  File "/home/odoo/src/odoo/14.0/odoo/tools/safe_eval.py", line 364, in check_values
    raise TypeError(f"""Module {v} can not be used in evaluation contexts
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 638, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/odoo/src/odoo/14.0/odoo/http.py", line 314, in _handle_exception
    raise exception.with_traceback(None) from new_cause
TypeError: Module <module 'time' (built-in)> can not be used in evaluation contexts

Prefer providing only the items necessary for your intended use.

If a "module" is necessary for backwards compatibility, use
`odoo.tools.safe_eval.wrap_module` to generate a wrapper recursively
whitelisting allowed attributes.

Pre-wrapped modules are provided as attributes of `odoo.tools.safe_eval`.
Avatar
Discard
Author

It has already been resolved in https://github.com/odoo/odoo/commit/02e816877ec12471a1446ba894b5cfca309979da

Best Answer

This has been reported as a bug (today). Please standby for a fix.

Avatar
Discard

Do we have any timeframe on this?

I checked the latest build on Runbot and it is fixed for me. Can you update your source code and check?

Hello Michael, were you able to update the source code?

Hi Manuela,

I think you need to send it to michael. ;-)


Met vriendelijke groeten,

Roeland 




Roeland Vandecan

Votvinkenstraat 11

1910 Kampenhout

 

m +32 498 870 366

e   roeland@varoconsult.be

www.varoconsult.be


PS:  Are we already connected on LinkedIn?  


Proud member of:

LOGO - BNI BA-KASTZE




Op wo 14 okt. 2020 om 12:39 schreef Manuela Barillaro (bam) <bam@odoo.com>:

Hello Michael, were you able to update the source code?

Manuela Barillaro
Business Advisor - Customer Success Manager EMEA 

Phone: +32 (0) 2 616 86 22 

Poslané by Odoo S.A. using Odoo.