Odoo 计划活动为什么不会无限接龙:mail.activity.type 的 suggest / trigger 与完成后续接链路讲透
很多人以为 Odoo Activity 的“下一步”只是界面上的推荐按钮。实际上,mail.activity.type 里 suggest 和 trigger 是两套完全不同的机制:一套负责给人选项,一套负责在完成时自动长出下一条。看懂这条链,才能把提醒真正配置成流程。
TOPIC PICKS
很多人以为 Odoo Activity 的“下一步”只是界面上的推荐按钮。实际上,mail.activity.type 里 suggest 和 trigger 是两套完全不同的机制:一套负责给人选项,一套负责在完成时自动长出下一条。看懂这条链,才能把提醒真正配置成流程。
可以顺着继续读的相邻方向
很多人以为 Odoo 周期任务会像日历那样一次性展开很多条,其实 project.task 的实现更克制:最后一个未完成实例在被关掉时,才按 recurrence 规则生成下一次任务。
很多人把 Odoo 邮件模板当成一个富文本编辑器,但 mail.template 源码真正关心的是:模板能不能渲染、默认收件人是否成立、附件归属是否安全。理解这三层,才能把协同邮件做稳。
很多人以为 Discuss 里的 guest 只是没登录的浏览器会话。源码里的 `mail.guest` 其实有独立身份:名字、语言、时区、访问令牌、Cookie、presence,甚至还能作为频道成员存在。也就是说,guest 不是 public user 的简化版,而是一种受限但正式的协作身份。
很多人以为记录上的主附件就是最近那次上传的文件。源码里 `mail.thread.main.attachment` 明确做了筛选与优先级:先过滤 XML 和 octet-stream,再优先 PDF,其次图片,最后才是其他类型。也就是说,主附件表达的是‘最适合展示/代表该记录的文件’,而不是上传顺序。
很多人把 canned response 理解成输入框里的文本片段。源码里它其实带着快捷词、替换正文、共享群组、创建者广播和编辑权限判断。也就是说,它不是单纯提高打字速度,而是在统一团队回复口径与控制谁能改模板。
很多人以为‘把活动变成会议’只是打开一个日历表单。源码里这其实是一座正式桥梁:活动会带着业务记录上下文、负责人、说明进入 `calendar.event`,后续改截止日期还会回写会议开始日,而完成反馈也会追加到会议备注中。