如何编辑折扣字段访问权限?

时间:2018-01-17 08:55:03

标签: python python-2.7 odoo-10 odoo

我想让销售经理只能在odoo 10中为销售订单行提供折扣。

编辑:我需要让所有人都显示它,但只有一个人可以修改

我创建了折扣和数字的逻辑......

discount = fields.Float(string='Discount (%)',
digits=dp.get_precision('Discount'), groups="Sales Manager", default=0.0)

任何建议都会有所帮助 谢谢!

3 个答案:

答案 0 :(得分:1)

这将使该字段对于管理员用户

的所有用户不可见
<label for="discount" groups="sales_team.group_sale_manager"/>
<div name="discount" groups="sales_team.group_sale_manager">
     <field name="discount" class="oe_inline"/> % 
</div>

这将为经理用户的所有用户设置readonly,并使用inherit

<record id="view_order_form_discount_readonly" model="ir.ui.view">
    <field name="name">sale.order.form.disount.readonly</field>
    <field name="model">sale.order</field>
    <field name="inherit_id" ref="sale.view_order_form"/>
    <field name="groups_id" eval="[(6, 0, [ref('sales_team.group_sale_manager') ])]"/>
    <field name="arch" type="xml">
        <field name='discount'/>
    </field>
</record>

答案 1 :(得分:0)

你有一些选择可以做到这一点。其中两个是:

  1. 在视图中添加组
  2. <record id="view_order_form" model="ir.ui.view">
        <field name="name">view_order_form extension</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="sale.view_order_form" />
        <field name="arch" type="xml">
            <!-- embedded form view -->
            <xpath expr="//field[@name='order_line']//form//label[@for='discount']" position="attributes">
                <attribute name="groups">sales_team.group_sale_manager</attribute>
            </xpath>
            <xpath expr="//field[@name='order_line']//form//div[@name='discount']" position="attributes">
                <attribute name="groups">sales_team.group_sale_manager</attribute>
            </xpath>
            <!-- embedded tree view -->
            <xpath expr="//field[@name='order_line']//tree//field[@name='discount']" position="attributes">
                <attribute name="groups">sales_team.group_sale_manager</attribute>
            </xpath>
        </field>
    </record>
    

    您需要正确的xml resp。组的外部ID,在本例中为sales_team.group_sale_manager。这只是一个视图覆盖,请记住,Odoo 10中有两个销售订单表单视图。

    1. 您的方式,直接在字段上更改组
    2. discount = fields.Float(groups="sales_team.group_sale_manager")
      

      仅更改groups参数就足够了,因为新API允许覆盖字段而不复制所有参数。

答案 2 :(得分:0)

您需要提供销售经理组的xml ID。

  
    

groups - 以逗号分隔的组xml id列表(字符串);这限制了对给定组用户的字段访问权限