Hello
Can anyone help me on a single date calculation
I have 2 date fields:
'x_studio_last_maintenance_date' and 'x_studio_next_maintenance_date'
I need that in the record when i set the last_maintenance_date, the next_maintenance_date is calculated 1 year after de last_maintenance_date
Here is what i set in the compute field in the via studio:
from datetime import timedelta
for record in self:
record['x_studio_next_maintenance_date'] = x_studio_last_maintenance_date + timedelta(years=1)
Then i try it and receive this error:
Any help about this error. I do not know python
Traceback (most recent call last):
File "/home/odoo/src/odoo/16.0/odoo/http.py", line 1578, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "/home/odoo/src/odoo/16.0/odoo/service/model.py", line 134, in retrying
result = func()
File "/home/odoo/src/odoo/16.0/odoo/http.py", line 1607, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/home/odoo/src/odoo/16.0/odoo/http.py", line 1804, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/home/odoo/src/odoo/16.0/addons/website/models/ir_http.py", line 227, in _dispatch
response = super()._dispatch(endpoint)
File "/home/odoo/src/odoo/16.0/odoo/addons/base/models/ir_http.py", line 140, in _dispatch
result = endpoint(**request.params)
File "/home/odoo/src/odoo/16.0/odoo/http.py", line 698, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/home/odoo/src/odoo/16.0/addons/web/controllers/dataset.py", line 42, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/home/odoo/src/odoo/16.0/addons/web/controllers/dataset.py", line 33, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/src/odoo/16.0/odoo/api.py", line 461, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/src/odoo/16.0/odoo/api.py", line 448, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/odoo/src/odoo/16.0/odoo/models.py", line 6514, in onchange
todo = [
File "/home/odoo/src/odoo/16.0/odoo/models.py", line 6517, in
if name not in done and snapshot0.has_changed(name)
File "/home/odoo/src/odoo/16.0/odoo/models.py", line 6300, in has_changed
return self[name] != record[name]
File "/home/odoo/src/odoo/16.0/odoo/models.py", line 5842, in __getitem__
return self._fields[key].__get__(self, type(self))
File "/home/odoo/src/odoo/16.0/odoo/fields.py", line 1135, in __get__
self.recompute(record)
File "/home/odoo/src/odoo/16.0/odoo/fields.py", line 1324, in recompute
self.compute_value(recs)
File "/home/odoo/src/odoo/16.0/odoo/fields.py", line 1346, in compute_value
records._compute_field_value(self)
File "/home/odoo/src/odoo/16.0/addons/mail/models/mail_thread.py", line 403, in _compute_field_value
return super()._compute_field_value(field)
File "/home/odoo/src/odoo/16.0/odoo/models.py", line 4189, in _compute_field_value
field.compute(self)
File "/home/odoo/src/odoo/16.0/odoo/addons/base/models/ir_model.py", line 37, in
func = lambda self: safe_eval(text, SAFE_EVAL_BASE, {'self': self}, mode="exec")
File "/home/odoo/src/odoo/16.0/odoo/tools/safe_eval.py", line 337, in safe_eval
c = test_expr(expr, _SAFE_OPCODES, mode=mode, filename=filename)
File "/home/odoo/src/odoo/16.0/odoo/tools/safe_eval.py", line 195, in test_expr
assert_valid_codeobj(allowed_codes, code_obj, expr)
File "/home/odoo/src/odoo/16.0/odoo/tools/safe_eval.py", line 168, in assert_valid_codeobj
raise ValueError("forbidden opcode(s) in %r: %s" % (expr, ', '.join(opname[x] for x in (code_codes - allowed_codes))))
ValueError: forbidden opcode(s) in "from datetime import timedelta\nfor record in self:\n record['x_studio_next_maintenance_date'] = x_studio_last_maintenance_date + timedelta(years=1) ": IMPORT_NAME, IMPORT_FROM
The above server error caused the following client error:
nullI thank you in advance