您必須使用域規則。
你可以找到一個很好的答案和解釋在這裏:Understanding OpenERP Domain Filter?
要配置域規則,去Settings >> Technical >> Security >> Record Rules
在另一方面,如果你想創建你的域規則,你安裝你的模塊,它可能將它們存儲在XML文件中會很有用。 我會給你一個我正在使用的例子。
<?xml version="1.0"?>
<openerp>
<data>
<!-- ########################### OPINIONS ############################# -->
<!-- everyone can see issued opinions, but can't edit them -->
<record id="proc_uc_see_issued_opinions_rule" model="ir.rule">
<field name="name">See issued opinions rule</field>
<field name="model_id" ref="model_opinion"/>
<field name="domain_force">[('state','=','issued')]</field>
<field name="perm_read" eval="True"/> <!-- can see -->
<field name="perm_write" eval="False"/> <!-- can't change it -->
<field name="perm_unlink" eval="False"/>
<field name="perm_create" eval="False"/>
<!--<field name="global" eval="True"/>-->
<field name="global" eval="0" />
<field name="groups" eval="[(6,0,[ref('processos_uc.group_processos_user')])]"/>
</record>
<!-- consultant can see and edit his opinion requests -->
<record id="proc_uc_see_own_opinions_rule" model="ir.rule">
<field name="name">See own opinions rule</field>
<field name="model_id" ref="model_opinion"/>
<field name="domain_force">['|',('consultant_uid','=',user.id),('consultant_uid','=',False)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="global" eval="0" />
<field name="groups" eval="[(6,0,[ref('processos_uc.group_processos_user')])]"/>
</record>
(...)
<!-- managers can do anything on opipions! -->
<record id="proc_uc_managers_can_do_anything_opinions_rule" model="ir.rule">
<field name="name">Managers can do anything on opinions rule</field>
<field name="model_id" ref="model_opinion"/>
<field name="domain_force">[(1,'=',1)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="global" eval="0" />
<field name="groups" eval="[(6,0,[ref('processos_uc.group_processos_manager')])]"/>
</record>
</data>
</openerp>
希望這會有所幫助!
謝謝,這有助於我編寫規則的語法。不幸的是,我仍然無法理解我必須創建或更改哪些規則才能獲得所需的可視化。我不太瞭解openERP對象,很難猜測這些字段。 – Radioleao
轉到'設置>>技術>>數據庫結構>>模型'並搜索您要應用規則的模型(您可以使用搜索框或列出所有對象 - 如果尚未顯示)單擊_「xxx的1-80」_在搜索框的右上角,選擇「無限」) 確定您想要限制的字段的名稱(它可能會是'user_id',它肯定會是('your_field_name','=',user.id),('your_field_name','=',False)]'' –
我已經嘗試過,但我完全錯了。我必須找到'用戶關聯到項目'或'用戶關注項目'的字段。請,你能幫我找到那個,並寫出規則嗎? – Radioleao