您可以创建自定义模块并在内部创建继承视图
<odoo>
<data>
<!-- Inherit the original view of crm.lead -->
<record id="view_crm_lead_custom" model="ir.ui.view">
<field name="name">crm.lead.custom</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.crm_lead_view_form"/>
<field name="arch" type="xml">
<xpath expr="//header/button[@name='archive']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//header/button[@name='unarchive']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//header/button[@name='export']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
</field>
</record>
</data>
</odoo>
或者:在 Odoo > 设置 > 技术 > 视图中,您可以搜索要修改的视图,它应该类似于:“crm_lead_view_form”,打开它,单击编辑按钮并创建继承视图以删除不需要的上下文操作(存档、取消存档、导出):
<xpath expr="//header" position="inside">
<button name="archive" position="replace"></button>
<button name="unarchive" position="replace"></button>
<button name="export" position="replace"></button>
</xpath>
可以通过从视图中删除
active
字段来删除“存档”操作。将其设置为不可见是不够的。
对于“导出”操作看起来要困难得多。在 Odoo Vanilla(无需自定义)中,您可以删除用户的导出访问权限。但这将导致任何地方都无法出口。 如果您想要更精确地配置导出访问权限,您必须找到一个现成的模块或必须自己制作一个。
我看到两种可能的方法,但还有更多:
isExportEnable
。export_data()
上的 crm.lead
并在该方法中实现“导出访问逻辑”。该解决方案不是最好的,因为“导出”操作仍然存在,但它将在数据限制方面起作用。继承“活动”字段并添加组并指定您希望哪些组有权访问它。
例如:
from odoo import api, fields, models
class HrAppraisalInherited(models.Model):
_inherit = "hr.appraisal"
active = fields.Boolean(groups="hr.group_hr_manager")