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: null
I thank you in advance