Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
1931 Lượt xem

Hi, 

i'm trying to deny the access to all tasks so that only the assigned person sees his task. 


the domain i'm trying to apply is: 

['|',('user_id','=',False),('user_id','=',user\.id\)\]


Group\ Name\ :\ Project\ /\ User


error: 

Traceback\ \(most\ recent\ call\ last\):
\ \ File\ "/home/arishi/src/odoo/odoo/api\.py",\ line\ 983,\ in\ get
\ \ \ \ cache_value\ =\ field_cache\[record\._ids\[0\]\]
KeyError:\ 1

During\ handling\ of\ the\ above\ exception,\ another\ exception\ occurred:

Traceback\ \(most\ recent\ call\ last\):
\ \ File\ "/home/arishi/src/odoo/odoo/fields\.py",\ line\ 1160,\ in\ __get__
\ \ \ \ value\ =\ env\.cache\.get\(record,\ self\)
\ \ File\ "/home/arishi/src/odoo/odoo/api\.py",\ line\ 990,\ in\ get
\ \ \ \ raise\ CacheMiss\(record,\ field\)
odoo\.exceptions\.CacheMiss:\ 'project\.project\(1,\)\.task_count'

During\ handling\ of\ the\ above\ exception,\ another\ exception\ occurred:

Traceback\ \(most\ recent\ call\ last\):
\ \ File\ "/home/arishi/src/odoo/odoo/http\.py",\ line\ 1583,\ in\ _serve_db
\ \ \ \ return\ service_model\.retrying\(self\._serve_ir_http,\ self\.env\)
\ \ File\ "/home/arishi/src/odoo/odoo/service/model\.py",\ line\ 134,\ in\ retrying
\ \ \ \ result\ =\ func\(\)
\ \ File\ "/home/arishi/src/odoo/odoo/http\.py",\ line\ 1610,\ in\ _serve_ir_http
\ \ \ \ response\ =\ self\.dispatcher\.dispatch\(rule\.endpoint,\ args\)
\ \ File\ "/home/arishi/src/odoo/odoo/http\.py",\ line\ 1807,\ in\ dispatch
\ \ \ \ result\ =\ self\.request\.registry\['ir\.http'\]\._dispatch\(endpoint\)
\ \ File\ "/home/arishi/src/odoo/odoo/addons/base/models/ir_http\.py",\ line\ 154,\ in\ _dispatch
\ \ \ \ result\ =\ endpoint\(\*\*request\.params\)
\ \ File\ "/home/arishi/src/odoo/odoo/http\.py",\ line\ 696,\ in\ route_wrapper
\ \ \ \ result\ =\ endpoint\(self,\ \*args,\ \*\*params_ok\)
\ \ File\ "/home/arishi/src/odoo/addons/web/controllers/dataset\.py",\ line\ 42,\ in\ call_kw
\ \ \ \ return\ self\._call_kw\(model,\ method,\ args,\ kwargs\)
\ \ File\ "/home/arishi/src/odoo/addons/web/controllers/dataset\.py",\ line\ 33,\ in\ _call_kw
\ \ \ \ return\ call_kw\(request\.env\[model\],\ method,\ args,\ kwargs\)
\ \ File\ "/home/arishi/src/odoo/odoo/api\.py",\ line\ 457,\ in\ call_kw
\ \ \ \ result\ =\ _call_kw_model\(method,\ model,\ args,\ kwargs\)
\ \ File\ "/home/arishi/src/odoo/odoo/api\.py",\ line\ 430,\ in\ _call_kw_model
\ \ \ \ result\ =\ method\(recs,\ \*args,\ \*\*kwargs\)
\ \ File\ "/home/arishi/src/odoo/addons/web/models/models\.py",\ line\ 62,\ in\ web_search_read
\ \ \ \ records\ =\ self\.search_read\(domain,\ fields,\ offset=offset,\ limit=limit,\ order=order\)
\ \ File\ "/home/arishi/src/odoo/odoo/models\.py",\ line\ 4975,\ in\ search_read
\ \ \ \ result\ =\ records\.read\(fields,\ \*\*read_kwargs\)
\ \ File\ "/home/arishi/src/odoo/odoo/models\.py",\ line\ 2979,\ in\ read
\ \ \ \ return\ self\._read_format\(fnames=fields,\ load=load\)
\ \ File\ "/home/arishi/src/odoo/odoo/models\.py",\ line\ 3136,\ in\ _read_format
\ \ \ \ vals\[name\]\ =\ convert\(record\[name\],\ record,\ use_name_get\)
\ \ File\ "/home/arishi/src/odoo/odoo/models\.py",\ line\ 5858,\ in\ __getitem__
\ \ \ \ return\ self\._fields\[key\]\.__get__\(self,\ type\(self\)\)
\ \ File\ "/home/arishi/src/odoo/odoo/fields\.py",\ line\ 1209,\ in\ __get__
\ \ \ \ self\.compute_value\(recs\)
\ \ File\ "/home/arishi/src/odoo/odoo/fields\.py",\ line\ 1368,\ in\ compute_value
\ \ \ \ records\._compute_field_value\(self\)
\ \ File\ "/home/arishi/src/odoo/addons/mail/models/mail_thread\.py",\ line\ 403,\ in\ _compute_field_value
\ \ \ \ return\ super\(\)\._compute_field_value\(field\)
\ \ File\ "/home/arishi/src/odoo/odoo/models\.py",\ line\ 4193,\ in\ _compute_field_value
\ \ \ \ fields\.determine\(field\.compute,\ self\)
\ \ File\ "/home/arishi/src/odoo/odoo/fields\.py",\ line\ 97,\ in\ determine
\ \ \ \ return\ needle\(\*args\)
\ \ File\ "/home/arishi/src/odoo/addons/project/models/project\.py",\ line\ 248,\ in\ _compute_task_count
\ \ \ \ task_data\ =\ self\.env\['project\.task'\]\._read_group\(domain,\ fields,\ groupby\)
\ \ File\ "/home/arishi/src/odoo/odoo/models\.py",\ line\ 2148,\ in\ _read_group
\ \ \ \ return\ self\.read_group\(domain,\ fields,\ groupby,\ offset,\ limit,\ orderby,\ lazy\)
\ \ File\ "/home/arishi/src/odoo/addons/project/models/project\.py",\ line\ 1920,\ in\ read_group
\ \ \ \ return\ super\(Task,\ self\)\.read_group\(domain,\ fields,\ groupby,\ offset=offset,\ limit=limit,\ orderby=orderby,\ lazy=lazy\)
\ \ File\ "/home/arishi/src/odoo/odoo/models\.py",\ line\ 2188,\ in\ read_group
\ \ \ \ result\ =\ self\._read_group_raw\(domain,\ fields,\ groupby,\ offset=offset,\ limit=limit,\ orderby=orderby,\ lazy=lazy\)
\ \ File\ "/home/arishi/src/odoo/odoo/models\.py",\ line\ 2223,\ in\ _read_group_raw
\ \ \ \ self\._apply_ir_rules\(query,\ 'read'\)
\ \ File\ "/home/arishi/src/odoo/odoo/models\.py",\ line\ 4425,\ in\ _apply_ir_rules
\ \ \ \ expression\.expression\(domain,\ self\.sudo\(\),\ self\._table,\ query\)
\ \ File\ "/home/arishi/src/odoo/odoo/osv/expression\.py",\ line\ 447,\ in\ __init__
\ \ \ \ self\.parse\(\)
\ \ File\ "/home/arishi/src/odoo/odoo/osv/expression.py", line 672, in parse
raise ValueError("Invalid field %s.%s in leaf %s" % (model._name, path[0], str(leaf)))
ValueError: Invalid field project.task.user_id in leaf ('user_id', '=', 6)



Ảnh đại diện
Huỷ bỏ

What Odoo version you are using?

Câu trả lời hay nhất

in Odoo 16, user_id field in project task has been changed to user_ids so you can use the below domian:

['|',('user_ids','=',False),('user_ids','in',user.id)]


Ảnh đại diện
Huỷ bỏ
Tác giả

this domain still shows all the task, I want to show only the tasks person assigned to

Use this:

[('user_ids','in',user.id)]

Tác giả

still shows all tasks

You need to check if you have another rule for Project/user group

Tác giả Câu trả lời hay nhất

Odoo 16

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 1 24
3934
0
thg 1 24
1957
0
thg 7 23
2182
2
thg 8 22
2995
0
thg 7 22
2636