配置项效果图
odoo中给系统添加配置项有两种方式,
一种是使用odoo自带的设置,在设置中添加配置项;效果如下图,
第二种是在模块中自定义一个配置项管理菜单,在菜单form视图下添加配置项;效果如下图,
使用odoo自带配置项
添加model
models/res_config_settings.py
from odoo importmodels, fields, apiclassResConfigSettings(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端口地址")defset_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.modeldefget_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'),
)returnresdefsys_group(self):
self.env["inherit_group"].sys_group()
res_config_settings.py
记得在__init__.py中进行引用。
继承odoo配置视图并添加配置项
views/res_config_settings_view.xml
res.config.settings.view.form.inherit.dingtalk_connector
res.config.settings
基本参数
基本参数是用于钉钉接口的身份认证,请务必填写,否则模块无法使用。其中corpId在钉钉开放平台获取,AppKey和AppSecret的获取方法请参考开发文档