Skip to Content
Menu
This question has been flagged

When I migrate from odoo15 to odoo 17 I got this error "AttributeError: 'list' object has no attribute 'with_context'". Here is the error list

RPC_ERROR

Odoo Server Error

Traceback (most recent call last):

  File "/home/cd009/odoo17/odoo17/odoo/http.py", line 1764, in _serve_db

    return service_model.retrying(self._serve_ir_http, self.env)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/odoo/service/model.py", line 133, in retrying

    result = func()

             ^^^^^^

  File "/home/cd009/odoo17/odoo17/odoo/http.py", line 1791, in _serve_ir_http

    response = self.dispatcher.dispatch(rule.endpoint, args)

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/odoo/http.py", line 1995, in dispatch

    result = self.request.registry['ir.http']._dispatch(endpoint)

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/odoo/addons/base/models/ir_http.py", line 222, in _dispatch

    result = endpoint(**request.params)

             ^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/odoo/http.py", line 741, in route_wrapper

    result = endpoint(self, *args, **params_ok)

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/addons/web/controllers/dataset.py", line 28, in call_button

    action = self._call_kw(model, method, args, kwargs)

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/addons/web/controllers/dataset.py", line 20, in _call_kw

    return call_kw(request.env[model], method, args, kwargs)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/odoo/api.py", line 468, in call_kw

    result = _call_kw_multi(method, model, args, kwargs)

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/odoo/api.py", line 453, in _call_kw_multi

    result = method(recs, *args, **kwargs)

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/addons/hr_holidays/models/hr_leave.py", line 1333, in action_validate

    self.write({'state': 'validate'})

  File "/home/cd009/odoo17/odoo17/addons/project_timesheet_holidays/models/hr_holidays.py", line 156, in write

    res = super().write(vals)

          ^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/addons/hr_holidays_attendance/models/hr_leave.py", line 31, in write

    res = super().write(vals)

          ^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/addons/hr_holidays/models/hr_leave.py", line 998, in write

    result = super(HolidaysRequest, self).write(values)

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/addons/mail/models/mail_thread.py", line 317, in write

    result = super(MailThread, self).write(values)

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/addons/mail/models/mail_activity_mixin.py", line 250, in write

    return super(MailActivityMixin, self).write(vals)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/odoo/models.py", line 4435, in write

    real_recs._validate_fields(vals, inverse_fields)

  File "/home/cd009/odoo17/odoo17/odoo/models.py", line 1459, in _validate_fields

    check(self)

  File "/home/cd009/odoo17/penygoncielo/om_hr_payroll/models/hr_leave_type.py", line 895, in _check_holidays

    mapped_days = self.holiday_status_id.get_allocation_data((self.employee_id | self.employee_ids).ids)

                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/addons/hr_holidays_attendance/models/hr_leave_type.py", line 37, in get_allocation_data

    res = super().get_allocation_data(employees, date)

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/cd009/odoo17/odoo17/addons/hr_holidays/models/hr_leave_type.py", line 403, in get_allocation_data

    allocations_leaves_consumed, extra_data = employees.with_context(

                                              ^^^^^^^^^^^^^^^^^^^^^^

AttributeError: 'list' object has no attribute 'with_context'


The above server error caused the following client error:

RPC_ERROR: Odoo Server Error

    RPCError@http://localhost:8079/web/assets/7f5bbba/web.assets_web.min.js:2883:319

    makeErrorFromResponse@http://localhost:8079/web/assets/7f5bbba/web.assets_web.min.js:2886:163

    jsonrpc/promise</<@http://localhost:8079/web/assets/7f5bbba/web.assets_web.min.js:2890:34

   

Anyone please give suggestions to fix this error


Avatar
Discard
Best Answer

 File "/home/cd009/odoo17/penygoncielo/om_hr_payroll/models/hr_leave_type.py", line 895, in _check_holidays

    mapped_days = self.holiday_status_id.get_allocation_data((self.employee_id | self.employee_ids).ids)


It looks like here you have passed the employee id instead of the object hence the error.

Just remove the .ids and try again.

Avatar
Discard
Related Posts Replies Views Activity
1
Nov 24
1322
1
Nov 24
1443
0
Aug 24
914
1
Jan 25
668
2
Aug 24
1069