タスク管理の再検討(6) 今週のタスクを追加 : Notion 解説 (56) - hkob’s blog

1. はじめに

残った今週のタスクですが、これまでのものがかなり流用できたので、簡単に実装できてしまいました。これまでに大体説明した内容なので、コードだけ簡単に示します。

2. 実装

2.1 this_week_each_tasks

このメソッドは明日から1週間分のタスクのリストを取得するメソッドです。NotionRubyMapping を更新したので、日付を渡した場合にも日本のタイムゾーンで検索できるようになりました。

2.2 date_offset_str

タスクページの日付プロパティの開始時刻から「X日後: 」の文字列を作成するだけのメソッドです。ハマったのは日付の引き算をすると有理数が出てしまうので、to_i で整数に変換していることくらいでしょうか。

2.3 update_this_week_todos

今週のタスクを更新するメソッドです。tb は表示先の ToggleHeading2Block、et_tasks は明日から1週間分のタスクのリスト、td_hash は登録済のタスクページ id から ToDoBlock を引く辞書です。ここでは、大きく分けて3つの処理をしています。
  1. 未登録タスクの登録: 1週間分のタスクページ一覧(et_tasks)のうち、未登録のものだけ新規に ToDoBlock を追加します。
  1. X日後の文字列更新: 日付が変わるとX日後の文字列が一つ減ります。テキストを調べ、文字列が異なる場合には RichTextArray を差し替えます。
  1. 古いものを削除: 今日のタスクに移動してしまったものは、ここに表示する必要がないので、削除します。メンションされていない手書きの ToDo は削除しません。

3. 終わりに

実行するとこんな感じになりました。今のところ授業くらいしか入っていないので、もっとちゃんとタスクを入れてみようと思います。NotionTimeRecording を使うようになったので、タイムラインビューを入れるようにしてみました。GTD でできるタスクをどんどん消化していくので、今日のタスクがどうしてもどんどん増える形になるのかなと思います。
今週のタスク & タイムライン
あとは、今週報があまりうまく活用できていないので、毎日のタスクの Synced block を自動的に週報にまとめるスクリプトが作れるといいですね。あとは中期のタスクに日付が入っていないものを一括で登録するとかしても面白いかもしれません。