はじめに
Notion Tips の第138回目はフォームで初期値を設定する仕組みを解説します。ネタは本日の Make with Notion Showcase Tokyo での相談からアレンジしてみました。少し相談内容とはズレるかもしれませんが、Form とオートメーションの結合の例としても参考になるかと思い、記事にしました。
前提条件
以下のようなデータベースを準備しました。このデータベースはタスク管理をするためのデータベースであり、授業の進捗を管理するステータスと試験の進捗を管理するステータスの二つが用意されています。
これまでは、授業用の Linked view と試験用の Linked view を用意しており、それぞれのステータスを表示する仕組みで登録する形を取っていました。このようにステータスが複数ある場合には、それぞれの Linked view をメンテする必要がありました。また、一般のユーザに Linked view を正しく選択させるのは面倒です。
このような場合にうまくフォームで入り口を一つにすることができればいいのですがというのが相談内容でした。この選択のために、一つ選択というセレクトプロパティを用意しました。どちらのステータスを使うかを選択するものです。
フォームの作成
フォームは以下のようになりました。今回は最小限の項目だけになっています。タスク名だけですね。ラジオボタンで「授業」または「試験」を選択します。
オートメーションの設定
このままではセレクタが設定されるだけです。そこで、ステータスの値を自動更新するためにオートメーションを設定します。名前は Set statuses by select としました。ページが追加された時にオートメーションが発動し、授業と試験のステータスを適切に設定します。
授業の式は以下のようになっています。
同様に試験の式は以下のようになっています。
式はそれぞれ以下のようになります。
授業の式: prop("トリガーページ").prop("選択") == "授業" ? "処理開始" : "未着手" 試験の式: prop("トリガーページ").prop("選択") == "試験" ? "処理開始" : "未着手"
動作確認
いつものように動作画面は X でリークしました。
早速なのですが、本日相談受けた件を試してみました。
— hkob|Notion Ambassador (@hkob) 2024年11月7日
部署ごとにステータスを分けて入り口を分けて作っていたが、フォームで統一的な入力ができないかという相談でした。
こんな感じでセレクタで処理選んで対応するところのステータスだけ進めるというものにしてみました。
詳細は明日のブログで。 pic.twitter.com/zXyO4pmBPk
おわりに
Notion Forms では初期値を指定したフォームが作成できないので、オートメーションで値に従ってうまく初期値を設定するのがよさそうです。