• odoo 权限杂记


    最近做一个任务督办模块,涉及到一些权限问题,折磨了几天,终于是解决了。

    任务表中关联了hr_employee,分别有默认字段创建人,Many2one的发布人、监督人和Many2many类型的主责人,这些人员分属不同子公司。

    首先给任务表添加一个rule 设置domain_force 为1=1,解决了任务表跨公司不可见问题。

    <record id="oa_mission_detail_company_rule" model="ir.rule">
        <field name="name">任务详情公司规则</field>
        <field name="model_id" ref="oa_superintendent.model_oa_mission_detail"/>
        <field name="domain_force">[(1,'=',1)]</field>
        <field name="perm_read" eval="True"/>
        <field name="perm_write" eval="False"/>
        <field name="perm_create" eval="False"/>
        <field name="perm_unlink" eval="False"/>
    </record>
    

    其次要求创建任务,接受任务等操作后需要给发布人,督办人等发送消息,使用sudo()方法获取这些人员的信息。

    Many2many字段在任务页面不显示,需要重写hr_employee的以下方法:

    name_get()---from页面需要调用;

    read();

    fields_get()----tree页面需要调用

    class Employee(models.Model):
        _inherit = "hr.employee"
    
        @api.multi
        def name_get(self):
            return super(Employee, self.sudo()).name_get()
    
        @api.multi
        def read(self, fields=None, load='_classic_read'):
            return super(Employee, self.sudo()).read(fields=fields,load=load)
    
    @api.model
    def fields_get(self, allfields=None, attributes=None):
        return super(Employee, self.sudo()).fields_get(allfields=allfields,attributes=attributes)
  • 相关阅读:
    Autoit对win系统弹窗的操作
    Linux服务器测试网络连通性
    如何给linux配置两个不同网段的ip
    记下看过并觉得非常有用的文章
    使用python+selenium对12306车票数据读取
    windows系统mysql安装
    Python使用正则匹配re实现eval计算器
    css3[补1]
    Javascript[2]
    Javascript[1]
  • 原文地址:https://www.cnblogs.com/wanxiangIT/p/10861929.html
Copyright © 2020-2023  润新知