微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何修复树视图为用户显示的所有产品?

如何解决如何修复树视图为用户显示的所有产品?

我创建了一个表来存储一些产品信息

我需要在树形视图、表单视图中显示产品视图。但问题是向所有公司用户展示的产品。我只想向公司用户展示产品。但它也会向其他公司用户显示

模型

class RiceProcurement(models.Model):
    _name = 'rice.procurement'
    _description = 'Rice procurement quantity manage table'

    product_select = fields.Many2one('product.template',String='Subsidised Rice',required=True,domain="[('item_type','=','rice'),"
                                            "('subsidy_type_purchase','subsidised'),('uom_id',3)]")
    
    product_qty = fields.Float(string='Quantity (in Kg)',digits='Product Unit of Measure',required=True)
    company_id = fields.Many2one('res.company',string='Company',default=lambda self: self.env.user.company_id.id)
    supplier_id = fields.Many2one('res.partner',string='supplier',required=True)
    date_approve = fields.Datetime('Confirmation Date',default=lambda self: fields.Datetime.Now(),index=True,copy=False)
    

树状视图

<record id="rice_procurement_tree_view" model="ir.ui.view">
        <field name="name">rice.procurement.tree.view</field>
        <field name="model">rice.procurement</field>
        <field name="arch" type="xml">
            <tree string="Rice Procurement" import="0">
                <field name="product_select" domain="[('company_id',company_id)]"/>
                <field name="date_approve" string="Date"/>
                <field name="product_qty" sum="Total Quantity"/>
                <field name="company_id" invisible="1"/>
            </tree>
        </field>
    </record>

ir.act.Window

    <record id="rice_procurement_action" model="ir.actions.act_window">
            <field name="name">Rice procurement</field>
            <field name="res_model">rice.procurement</field>
            <field name="view_mode">tree,form</field>
            <field name="view_mode">list</field>
            <field name="domain">[('company_id',company_id)]</field>
    </record>

解决方法

Odoo 添加的记录规则已经存在。进入设置 -> 常规设置,然后在多公司中向下滚动可以看到两个选项,一个是通用通讯录,另一个是通用产品目录。

默认情况下,这两个布尔字段将被勾选,在您的情况下,您可以取消勾选通用产品目录。

取消选中此项后,将在设置 -> 技术 -> 安全 -> 记录规则中看到名为 Product multi-company 的记录规则,该规则最初设置为 False。

查看此文件中的 rule

reference

,

最后我在我的模块中创建了一个角色,现在它可以工作了

在安全文件夹内创建了一个自定义角色文件来解决问题

<record id="rice_procurement_company_rule" model="ir.rule">
     <field name="name">Rice Procurement</field>
     <field ref="model_rice_procurement" name="model_id"/>
     <field name="domain_force">[('company_id','in',company_ids)]</field>
     <field name="global" eval="True"/>
</record>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。