为什么在<;menuitem组=''&燃气轮机;odoo 11中的标签和用途
我试图在odoo11中创建自定义模块,但对menuitem中的组属性有点困惑为什么在<;menuitem组=''&燃气轮机;odoo 11中的标签和用途,odoo,Odoo,我试图在odoo11中创建自定义模块,但对menuitem中的组属性有点困惑 <menuitem id="product_menu_catalog" name="Catalog" action="product.product_template_action" parent="sale_menu_root" sequence="4" groups="sales_team.group_sale_
<menuitem id="product_menu_catalog"
name="Catalog"
action="product.product_template_action"
parent="sale_menu_root"
sequence="4"
groups="sales_team.group_sale_salesman"
/>
组
表示安全组,更多关于用户访问权的信息。转到“用户窗体视图”和“访问权限”选项卡,如果已部分激活调试开发人员模式,则将看到所有访问权限选项
如果您在菜单项中应用
组
,则菜单将仅对这些用户组可见。组是一种语法糖要快速向菜单添加访问权限,您不仅可以在菜单中,还可以在py
文件的字段定义中,也可以在视图中使用任何标记,组
与Odoo中的安全和访问权限相关。为此组定义的所有内容都将对此组成员的用户可见
groups="goup1_xml_id1,goup1_xml_id2,..."
它是如何工作的?
它以模块类别开始,该类别应包含按模块分组的组
- 红外模块类别
代码取自。/odoo/addons/base/module/module_data.xml
:(“销售”类别)
行中说,组组销售人员
中的每个人都是组用户
组二的一部分
- ir.规则
ref=“model\u sale\u order”
引用)
此外,在下面的代码中,sale.order中提供的数据将被过滤,以便用户只获取自己创建的订单或未定义用户id的订单
代码取自。/addons/sale/security
:
<record id="sale_order_personal_rule" model="ir.rule">
<field name="name">Personal Orders</field>
<field ref="model_sale_order" name="model_id"/>
<field name="domain_force">['|',('user_id','=',user.id),('user_id','=',False)]</field>
<field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]"/>
</record>
python代码中的
例如,在python代码中,您可以检查执行该方法的用户是否属于某个组,如。/addons/sale/models/product\u product.py
@api.multi
def _sales_count(self):
r = {}
if not self.user_has_groups('sales_team.group_sale_salesman'):
return r
domain = [
('state', 'in', ['sale', 'done']),
('product_id', 'in', self.ids),
]
for group in self.env['sale.report'].read_group(domain, ['product_id', 'product_uom_qty'], ['product_id']):
r[group['product_id'][0]] = group['product_uom_qty']
for product in self:
product.sales_count = r.get(product.id, 0)
return r
最后作为@Charif DZ
“组”是一种语法糖,用于快速向菜单添加访问权限,您可以
不仅可以在菜单中执行此操作,还可以在py文件的字段定义中执行此操作
可在视图中使用的标记,
groups="goup1_xml_id1,goup1_xml_id2,..."
如果您想从另一个模块的预定义字段中删除组,请在
组的XML-ID:
field\u name=fields.typeofield(groups=“-some\u xml\u group\u id”)
你可以在这里找到更多信息:######
<record id="sale_order_personal_rule" model="ir.rule">
<field name="name">Personal Orders</field>
<field ref="model_sale_order" name="model_id"/>
<field name="domain_force">['|',('user_id','=',user.id),('user_id','=',False)]</field>
<field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]"/>
</record>
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_account_analytic_default_salesman,account.analytic.default.salesman,model_account_analytic_default,sales_team.group_sale_salesman,1,1,1,1
@api.multi
def _sales_count(self):
r = {}
if not self.user_has_groups('sales_team.group_sale_salesman'):
return r
domain = [
('state', 'in', ['sale', 'done']),
('product_id', 'in', self.ids),
]
for group in self.env['sale.report'].read_group(domain, ['product_id', 'product_uom_qty'], ['product_id']):
r[group['product_id'][0]] = group['product_uom_qty']
for product in self:
product.sales_count = r.get(product.id, 0)
return r
groups="goup1_xml_id1,goup1_xml_id2,..."