2023-11-02 00:35:45,762 27512 ERROR o3 odoo.http: Exception during request handling.
Traceback (most recent call last):
File "/home/odoo/odoo/odoo/http.py", line 1989, in call
response = request._serve_db()
File "/home/odoo/odoo/odoo/http.py", line 1584, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "/home/odoo/odoo/odoo/service/model.py", line 133, in retrying
result = func()
File "/home/odoo/odoo/odoo/http.py", line 1611, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/home/odoo/odoo/odoo/http.py", line 1809, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/home/odoo/odoo/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
result = endpoint(**request.params)
File "/home/odoo/odoo/odoo/http.py", line 697, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/home/odoo/odoo/odoo/addons/web/controllers/dataset.py", line 46, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/home/odoo/odoo/odoo/addons/web/controllers/dataset.py", line 33, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/odoo/odoo/api.py", line 462, in call_kw
model.env.flush_all()
File "/home/odoo/odoo/odoo/api.py", line 732, in flush_all
self._recompute_all()
File "/home/odoo/odoo/odoo/api.py", line 728, in _recompute_all
self[field.model_name]._recompute_field(field)
File "/home/odoo/odoo/odoo/models.py", line 6170, in _recompute_field
field.recompute(records)
File "/home/odoo/odoo/odoo/fields.py", line 1365, in recompute
apply_except_missing(self.compute_value, recs)
File "/home/odoo/odoo/odoo/fields.py", line 1338, in apply_except_missing
func(records)
File "/home/odoo/odoo/odoo/fields.py", line 1387, in compute_value
records._compute_field_value(self)
File "/home/odoo/odoo/odoo/models.py", line 4203, in _compute_field_value
fields.determine(field.compute, self)
File "/home/odoo/odoo/odoo/fields.py", line 97, in determine
return needle(*args)
File "/home/odoo/odoo/odoo/wecom/wecom_contacts_sync/models/wecom_user.py", line 249, in _compute_department_leader
if leader_list[index] == "1":
IndexError: string index out of range
对wecom_user 作如下修改
# if user.isleader: # type: ignore
# department_leader = ""
# for index, department in enumerate(department_list):
# department_id = self.env["wecom.department"].search(
# [
# ("department_id", "=", int(department)),
# ("company_id", "=", user.company_id.id),
# ],
# limit=1,
# ) # type: ignore
# is_leader = _("No")
# if leader_list[index] == "1":
# is_leader = _("Yes")
# department_leader_str = _("Department head [%s]: %s ;") % (
# department_id.name,
# is_leader,
# )
# # if len(department_list) > 1 and (index < len(department_list) -1) :
# # department_leader_str += "\n"
# department_leader += department_leader_str
# user.department_leader = department_leader # type: ignore
# else:
# user.department_leader = "" # type: ignore
if user.isleader: # type: ignore
department_leader = ""
for index, department in enumerate(department_list):
if index < len(leader_list):
department_id = self.env["wecom.department"].search(
[
("department_id", "=", int(department)),
("company_id", "=", user.company_id.id),
],
limit=1,
) # type: ignore
is_leader = _("No")
if leader_list[index] == "1":
is_leader = _("Yes")
department_leader_str = _("Department head [%s]: %s ;") % (
department_id.name,
is_leader,
)
department_leader += department_leader_str
user.department_leader = department_leader # type: ignore
else:
user.department_leader = "" # type: ignore