Notionで機材管理をボタンプロパティでいい感じにしたい
Notionで機材貸出を管理するシステムを試作したところ、複数のデータベースに分けているのに、ボタンプロパティによりデータベースを横断させた機能が1ページで完結するいい感じの仕上がりになったので事例を紹介します。
ボタンプロパティ自体は以前から使っていたのですが、ユーザープロパティを加えたり除外する「いいね」ボタン代わりにしたり、投票システムにしたりみたいな1つのデータベースで完結する形で使っていました。
作成の背景
例えばハイブリッドワーク時にMacのPCから社内のWindows11へのリモートデスクトップ接続するなど、普段あまり使わないが同時には使えない共有で使う資産の管理をNotionでうまくできないかと考えました。
オフラインで完結ならホワイトボードにマグネットを貼るなどがありますが、ハイブリッドワークなのでオンライン・オフライン両方幸せになる必要があります。
オフラインでもSlackで「〇〇使います」と投稿すれば伝わりますが、ノイズになりそうです。「普段あまり使わない=自分が使わない時にその情報が不要」である為、数十人以上で共有する場合は、Slackのようなフロー情報ではなく、ストック情報として自分が欲しいときだけ簡単に情報が送信できて、受信できるというのが理想です。
それNotionで。ということでやってみました。
作った時点では10個くらいの資産を各自で取ってくる系の運用を意図しているので、大量の資産の管理みたいなのは若干スコープ外にしています。
要件
機材の情報が一覧でわかる
機材の貸し出し情報が一覧でわかる
機材を借りる、予約する、開始する、完了するが簡単に行える
誰かが借りている機材を強制的に借りたりできないような排他制御は無理なので諦める、後から強制的に借りたりする操作は許容する。
実装
確認するページ、機材マスタDB、貸出票DBの3つのページで実現します。
Notionのデータベースについては基本的には公式でわかる情報ベースです。
確認する為のページ
機材マスタDBの一覧と、終了していない貸出票の一覧を機材毎に表示しておきます。
各機材の一覧で「今すぐ使う」ボタン、「予約」ボタンを提供します。
貸出票の一覧で「開始」ボタン、「終了」ボタンを提供します。
誰も借りてない場合)
使いたい機材の今すぐ使うをクリック→使い終わったら貸出票一覧で終了をクリック
誰か借りている場合)
予約ボタンをクリック→(使えるようになったら)開始ボタンをクリック→終了ボタンをクリック
ページ自体の説明
機材マスタDBのテーブルビュー
貸出票DBのリストビュー
機材マスタDB
機材の一覧です。
ボタンオートメーションで貸出票の「ページを作る操作」をさせます。
貸出票のデータベースとリレーションさせて、ボタンを押した機材(=このページ)を指定できるようにします。
$$
\begin{array}{l:l}\textbf{プロパティ名} & \textbf{説明}\\
\hline
機材名 & タイトルプロパティ\\
付属情報 & メーカー、型式等必要に応じたプロパティを適宜\\
今すぐ使うボタン & 貸出票ページを利用中で作成する\\
予約ボタン & 貸出票を「予約中」で作成するボタンプロパティ\\
リレーション &貸出票へのリレーション\\\end{array}
$$
貸出票DB(フルページのDB)
貸出票に必要な「いつ」、「だれが」、「使っているのか終わったのか」を管理できるようにします。
ステータスを変更するボタンを設置して、利用中のものを完了にしたり、予約中のものを利用中にできるようにしておきます。
リストビュー上ではタイトルプロパティの幅が広めに取られてしまうのでタイトル以外で重要なユーザー、ステータス、ボタンをタイトルより前に配置します。
タイトルは自動採番できないので@今という形でクリックした時点をページ名にして何もしなくても一意になりやすいようにしています。
$$
\begin{array}{l:l}\textbf{プロパティ名} & \textbf{説明}\\
\hline
タイトル & 作られた時間がページタイトルになるようにする\\
&テンプレートを作って@今になるようにしておく\\
ステータス & 予約、利用中、終了の3つ状態で管理する\\
ユーザー & 使う人。Notionのユーザープロパティ\\
使用期間 & 使いたい日時。日付でグルーピングにも使う\\
開始ボタン&使い始める際、ステータスを利用中にする\\
終了ボタン&使い終わった際、ステータスを終了にする\\
最終更新日時&最後に更新した日時を追跡できるようにする日時\\
リレーション &機材マスタへのリレーション\\
\end{array}
$$
まとめ
タイトルプロパティをいい感じに採番する方法を考えているのですが、いい感じに思いつかなかったのが課題です。
DB1つで借りているユーザーを入れるような運用も考えたのですが、操作忘れた時に破綻して追跡コストがかかるので、誰がいつ何をくらいのゆるふわ機材管理で実装しました。
完了をフックしてSlack通知というのも可能なのですが、誤操作にも反応してしまうし、当初考えていたノイズに相当すると思ったので、やらないほうがよさそうだと現状考えています。
ボタンプロパティというかオートメーション機能自体はもう一息何かフックできたりプログラマブルであってほしい感じがあるのですが、今回いい感じハマった気がしたので、また何か思いついたらご紹介します。