先说结论
Odoo To-Do 不是“项目任务的迷你版”,而是一个更靠前的收集层。
从 /home/ubuntu/odoo-temp/addons/project_todo/models/project_task.py 和 wizard/mail_activity_todo_create.py 来看,官方在做的是三层分工:
- To-Do:快速收集个人待办
- Mail Activity:提醒与跟进机制
- 正式 Task:进入项目、字段更完整、参与协作与统计
这也是为什么 To-Do 有这些典型行为:
- 没标题也能自动生成名字
- 可以只靠描述第一行补标题
- 可以一键“Convert to Task”
- 还可以同时创建 activity,把提醒和待办绑在一起
所以别把 To-Do 理解成“任务少几个字段”,而要理解成:
它是正式项目任务前面的一个轻量缓冲区。
第一层:为什么 To-Do 允许“标题都不认真写”
project_todo/models/project_task.py 里,对 create 做了一个非常说明问题的处理:
- 如果没有
name - 又没有项目、没有父任务
- 那就从
description第一行自动生成标题 - 再不行就叫
Untitled to-do
这套逻辑其实非常有态度。
它在告诉你:
- To-Do 的首要目标是快速入库
- 先记下来,比结构完整更重要
换成正式项目任务,这么宽松反而危险;但放在个人待办入口里,就很合理。
因为个人待办的典型场景就是:
- 我先记个念头
- 我稍后再整理
- 不是所有条目都值得立刻结构化
第二层:为什么 To-Do 不等于 Project Task 主流程
虽然底层模型仍是 project.task,但 To-Do 明显在使用方式上做了切层。
例如:
- 独立的 To-Do 视图集合(kanban / list / form / calendar / activity)
- 没有项目和父任务时的特殊命名策略
- 一键转正式任务的动作
也就是说,Odoo 没有重新造一个完全独立模型,而是选择:
- 复用任务能力
- 但在入口、默认值、视图和操作上,营造不同工作模式
这是很典型的 Odoo 设计:
同一个底层对象,可以通过上下文和视图变成不同层级的工作台。
第三层:Mail Activity 在这里扮演什么角色
mail_activity_todo_create.py 更能说明 To-Do 的真实定位。
这个 wizard 会同时做两件事:
- 创建一个
project.task作为 to-do - 再创建一个
mail.activity指向这个 task
这意味着 To-Do 不是单纯的任务卡片,而是可以被提醒系统接管的待办对象。
这里的分工非常清楚:
- Task 负责承载待办实体
- Activity 负责承载时间提醒和跟进动作
也正因为这样,To-Do 更接近“可被调度的个人行动项”,而不只是一个文本记事本。
第四层:什么时候该 Convert to Task
action_convert_to_task() 这个动作最值得实施团队重视。
它意味着官方默认接受这样一种工作流:
- 先把东西收成 to-do
- 确认真的需要进入项目执行
- 再转成正式任务
这个动作背后的价值,在于延后结构化成本。
不是所有待办都值得一开始就:
- 指定项目
- 指定客户
- 分配多人
- 定义阶段
- 接入统计口径
很多事情先只是:
- 一个念头
- 一次提醒
- 一条跟进项
当它升级成团队协作对象时,再转为正式任务,系统负担和认知负担都会更低。
第五层:最容易犯的两个误区
误区一:把 To-Do 当正式项目任务用
如果团队把所有正式交付工作都先丢进 To-Do,再长期不转正,就会出现:
- 项目统计缺失
- 协作字段不足
- 项目归属模糊
- 任务看板和个人待办混在一起
误区二:把 To-Do 当成纯个人笔记
反过来也不对。
因为 To-Do 底层仍然是任务对象,而且能挂 activity、能转正式任务,它比纯文本记事要“重”很多。
它适合的是可执行、可能升级、值得被提醒的待办,而不是所有随手想法。
一个很实用的判断标准
留在 To-Do 的情况
- 还不确定是否值得进入项目
- 主要是个人跟进
- 只需要提醒,不需要多人协作
- 短期内不会参与项目统计
转成正式 Task 的情况
- 已经明确归属某个项目
- 需要多人分工或协作
- 需要阶段推进、截止日期、看板可见性
- 未来会进入项目分析和经营视图
最后一句
To-Do 的价值,不在于它比项目任务简单,而在于它让你不用太早承诺结构。
它像一个前置缓冲层:
- 先收
- 再提醒
- 最后必要时转入正式项目执行
把这条管道用顺了,个人效率和项目治理反而更容易同时兼顾。
DISCUSSION
评论区