OCA / hr

Odoo Human Resources Addons
GNU Affero General Public License v3.0
218 stars 669 forks source link

[14.0] hr_employee_firstname: Traceback when loading timesheet #990

Closed luisg123v closed 3 years ago

luisg123v commented 3 years ago

Impacted versions:

Steps to reproduce:

Current behavior:

The following traceback is raised

Error:
Odoo Server Error

Traceback (most recent call last):
  File "/.repo_requirements/odoo/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/.repo_requirements/odoo/odoo/http.py", line 683, in dispatch
    result = self._call_function(**self.params)
  File "/.repo_requirements/odoo/odoo/http.py", line 359, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/.repo_requirements/odoo/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/.repo_requirements/odoo/odoo/http.py", line 347, in checked_call
    result = self.endpoint(*a, **kw)
  File "/.repo_requirements/odoo/odoo/http.py", line 912, in __call__
    return self.method(*args, **kw)
  File "/.repo_requirements/odoo/odoo/http.py", line 531, in response_wrap
    response = f(*args, **kw)
  File "/.repo_requirements/odoo/addons/web/controllers/main.py", line 1389, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/.repo_requirements/odoo/addons/web/controllers/main.py", line 1381, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/.repo_requirements/odoo/odoo/api.py", line 394, in call_kw
    result = _call_kw_model_create(method, model, args, kwargs)
  File "/.repo_requirements/odoo/odoo/api.py", line 374, in _call_kw_model_create
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-359>", line 2, in create
  File "/.repo_requirements/odoo/odoo/api.py", line 323, in _model_create_single
    return create(self, arg)
  File "/home/odoo/build/vauxoo/instance/vauxoo/models/account_analytic_line.py", line 62, in create
    res = super().create(vals)
  File "<decorator-gen-317>", line 2, in create
  File "/.repo_requirements/odoo/odoo/api.py", line 344, in _model_create_multi
    return create(self, [arg])
  File "/home/odoo/enterprise/timesheet_grid/models/analytic.py", line 305, in create
    analytic_lines = super(AnalyticLine, self).create(vals_list)
  File "<decorator-gen-289>", line 2, in create
  File "/.repo_requirements/odoo/odoo/api.py", line 345, in _model_create_multi
    return create(self, arg)
  File "/.repo_requirements/odoo/addons/hr_timesheet/models/hr_timesheet.py", line 89, in create
    user_map = {employee.user_id.id: employee.id for employee in employees}
  File "/.repo_requirements/odoo/addons/hr_timesheet/models/hr_timesheet.py", line 89, in <dictcomp>
    user_map = {employee.user_id.id: employee.id for employee in employees}
  File "/.repo_requirements/odoo/odoo/fields.py", line 2483, in __get__
    return super().__get__(records, owner)
  File "/.repo_requirements/odoo/odoo/fields.py", line 996, in __get__
    recs._fetch_field(self)
  File "/.repo_requirements/odoo/odoo/models.py", line 3069, in _fetch_field
    self._read(fnames)
  File "/.repo_requirements/odoo/addons/hr/models/hr_employee.py", line 135, in _read
    res = self.env['hr.employee.public'].browse(self.ids).read(fields)
  File "/.repo_requirements/odoo/odoo/models.py", line 3009, in read
    raise ValueError("Invalid field %r on model %r" % (name, self._name))
Exception

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

Traceback (most recent call last):
  File "/.repo_requirements/odoo/odoo/http.py", line 639, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/.repo_requirements/odoo/odoo/http.py", line 315, in _handle_exception
    raise exception.with_traceback(None) from new_cause
ValueError: Invalid field 'firstname' on model 'hr.employee.public'

Expected behavior:

No traceback.

AFAIK, this is because when this module was migrated to 14.0, new models were not considered. In 14.0, the employee model was split into three different models:

I think fields should:

However I have not digged too much into it.

luisg123v commented 3 years ago

CC @luistorresm @lescobarvx

luisg123v commented 3 years ago

Fixed on #1001