* 在odoo 自带的多对一类型是可以原生支持跳转的,但是最近遇到一个场景,我们需要在OA里面实现用户的考勤信息获取,考勤需要关联用户的请假/补卡/外出申请,一天的考勤信息可能关联用户的多个申请单,比如用户可能上午外出申请,下午有事请假,那么用户这一天的考勤,既会关联用户的外出申请,又会关联用户的请假申请,但是我们如果想实现直接在页面上点击many2many类型的字段(这里指用户关联的请假/补卡申请等)实现链接到对应的请假信息,那么怎么实现呢?
在搜索网络实现无果之后,我们开始着手自己修改源码实现。
第一步:着手了解odoo对于many2many等类型字段控制在哪个文件里面,通过定位之后,发现文件位于odoo的源码——addons/web/static/src/js/fields/relational_fields.js里面,通过定位发现,many2many字段的定义在下面这一行的代码里面。
var FieldMany2ManyTags = AbstractField.extend({
description: _lt("Tags"),
tag_template: "FieldMany2ManyTag",
className: "o_field_many2manytags",
supportedFieldTypes: ['many2many'],
custom_events: _.extend({
}, AbstractField.prototype.custom_e