背景
在上一篇的文章中,我介绍了如何通过Notion创建Daily task来提升工作效率,但是也发现了2个问题。
-
Notion不支持创建循环任务,比如每天都需要创建的Daily Wrike,Daily review等task
-
如果任务已经完成需要手动设置CompletedDate,否则已经Done的任务也会显示在第二天的看板里
需求
- 循环任务需求
Requirement | Comment |
---|---|
创建一个循环任务模板page,并且建立好对应的循环任务 | |
查询循环任务模板,根据任务的循环类型,创建不同的Daily task,例如 task daily wrike是每日都要做的,娃跳舞是每个周日的task |
- 其他任务需求
Requirement | Comment |
---|---|
如果一个task是TBD或者空状态,并且task过期时间小于等于今天,那么标记task为Doing状态 | 已经过期或者今天即将要期的task,但是目前还没做,需要当天立即去做,所以放到doing组里今天需要马上去做 |
如果一个task是TBD或者空状态,并且Task 将在3天内过期,那么标记task为Todo状态 | 3天内即将到期的task,需要尽快完成,所以放到Todo 组下面,防止忘记 |
如果一个task是TBD或者空状态,并且当天的时间在过期时间段之内,那么标记task为Doing状态 | Task已经到了开始做的时间,需要马上开始做,所以放到doing组里去马上做 |
如果task过期时间是空,那么更新过期时间是今天,并且标记task状态为ToDo | 创建任务的时候忘记标记过期时间,默认当天需要完成该task |
如果task为Done状态,那么自动填充CompletedDate | 只有completedDate<当前时间,并且状态为Done, 第二天的daily task才不会显示在看板里 |
解决方案
设计
-
创建一个database页面作为模板记录需要重复做的任务,
1.1列名及对应的值如下表
Column | Value | Comment |
---|---|---|
Title | task名称 | task名称 |
Status | TBD,Todo,Doing,Done,Blocker,Invalid | Task状态 |
Type | WorkDay,SpecificDay,SpecificDateRange | 循环任务的类型 |
Tag | Work,Life,Python,Docker等等 | 任务类型标签,自定义字段,请根据自身需要修改 |
Cycle Date | 9/18/2022-9/25/2022 | 某一段日期 |
Cycle Days | Monday到Sunday,选择其中一天或者多天 | 一周之内某几天 |
EndDate | 例如12/31/2022 | 循环任务失效日期 |
- 2Daily task 有不同状态,TBD,Todo,Doing,Done,Blocker
Task Status | Comment |
---|---|
TBD(To be determined) | 将来需要做的task,但是目前还没必要马上做的task,类似Jira的backlog |
Todo | 今天需要做的事项 |
Doing | 今天正在做的事项 |
Done | 今天已经完成的事项 |
Blocker | 依赖于其他事项完成之后,才能继续进行的task,目前改事项无法进行 |
Invalid | 无效的事项,目前只在循环任务page中使用 |
-
创建python package,开发Python代码去调用Notion的API读取dabase模板里的循环任务记录,将对应的循环任务创建到Daily task page&