本文示例代码可查看github仓库:odoo13_custom_config_item

配置项效果图

odoo中给系统添加配置项有两种方式,

一种是使用odoo自带的设置,在设置中添加配置项;效果如下图,

odoo13之给模块添加自定义配置项

 

第二种是在模块中自定义一个配置项管理菜单,在菜单form视图下添加配置项;效果如下图,

odoo13之给模块添加自定义配置项

 

使用odoo自带配置项

添加model

models/res_config_settings.py

from odoo import models, fields, api


class ResConfigSettings(models.TransientModel):
    _inherit = 'res.config.settings'

    dingtalk_corp_id = fields.Char(string='钉钉corpId')
    dingtalk_app_key = fields.Char(string='钉钉AppKey')
    dingtalk_app_secret = fields.Char(string='钉钉AppSecret')
    dingtalk_agent_id = fields.Char(string='钉钉AgentId')
    system_ip = fields.Char(string="系统ip端口地址")

    def set_values(self):
        super(ResConfigSettings, self).set_values()
        params = self.env['ir.config_parameter'].sudo()
        params.set_param('dingtalk_corp_id', self[0].dingtalk_corp_id)
        params.set_param('dingtalk_app_key', self[0].dingtalk_app_key)
        params.set_param('dingtalk_app_secret', self[0].dingtalk_app_secret)
        params.set_param('dingtalk_agent_id', self[0].dingtalk_agent_id)
        params.set_param('system_ip', self[0].system_ip)

    @api.model
    def get_values(self):
        res = super(ResConfigSettings, self).get_values()
        params = self.env['ir.config_parameter'].sudo()
        res.update(
            dingtalk_corp_id=params.get_param('dingtalk_corp_id'),
            dingtalk_app_key=params.get_param('dingtalk_app_key'),
            dingtalk_app_secret=params.get_param('dingtalk_app_secret'),
            dingtalk_agent_id=params.get_param('dingtalk_agent_id'),
            system_ip=params.get_param('system_ip'),
        )
        return res

    def sys_group(self):
        self.env["inherit_group"].sys_group()
res_config_settings.py

相关文章: