【Click_NoCode】カレンダーを使わず簡単な予約システムを作ってみました
(なぜこれを書いたか)
以前、会社の後輩から「週末にボランティアをやっているんですが、当日になるまで誰が参加するか分からないので、参加者が事前に分かるような簡易的な予約システムを作ってもらえませんか?」という依頼を受けました。
その時はカレンダーエレメントに参加者が情報を書き込めばいいと思っていたのですが、カレンダーの使い勝手が非常に悪く、使えないという事になってしまいました。
カレンダーのどこが悪かったかというと開始時間と終了時間を必ず入力するようになっているのでとにかく入力が面倒なんです。というか、ボランティア活動は日曜の9時から12時までやると予め決まっているので時間の入力はそもそも不要なんです。(入力は無駄な作業)
その他、その日に予定を入れると入力した人の数がドットで示されるようになっていますが、5人以上参加者がいるとパッと見、何人参加するのか多すぎて分からないんです。ドットじゃなくて数字で表記できないものかとずっと考えていました。
結果的にはカレンダーの代わりにカスタムリストで日付を表示してそこをクリックすると入力画面が出てくるような簡易的な予約システムを作りました。有料アプリだと本当に使い勝手がいいのがたくさんあるんですが、そこまで出費したくないので最低限の機能を持った簡易的なシステムを作ることを目標としました。
1.こんな予約システムを作りました
作った画面を最初に示します。カスタムリストにボランティア活動日の日程が表示されており、その右側にその日の参加申し込み数が表示されています。また画面中央下には自分が申し込んだ日程のリストが表示されています。
日付をクリックすると別画面でその日の参加者名の表示と参加申し込みが出来るようにしました。
別画面に遷移すると、その日の参加予定者リストと申し込みフォームが表示されます。
2.データベースの作り方
以下の2つのデータベースを作りました。
・「開催日」・・・ボランティアの活動日の一覧です
・参加申込者一覧
~「開催日」データベース~
~「参加者一覧」データベース~
このデータベースは「参加日」、「参加者名」、「メールアドレス」の3つの項目で構成されています。なぜここでメールアドレスを入れているかというと、自分が申し込んだ活動日をホーム画面にカスタムリストで表示するためです。
参加者一覧のデータベースの中で自分のメールアドレス(Logged In User)と合致したものだけをカスタムフィルターで絞り込んで表示するということをやっています。
3.各画面の設定
①活動日のリストに申込者の人数を表記する
ホーム画面上部にあるカスタムリストでは日程の隣に参加予定者数を表示しています。これは参加者一覧の数をcount関数で数え、カスタムフィルターで参加日とボランティア開催日が一致したデータだけ絞り込み、その数を表示しています。
②自分の申し込んだ日程を表示する
ホーム画面下部に自分の申し込んだ日程を表示します。カスタムリストに登録されているデータの中でメールアドレスが現在ログインしている自分のメールアドレス(Logged In User)と合致したものに絞り込んで表示しています。
③予約画面で申し込みのClickFlowを設定する
申し込みボタンを押すと「参加者一覧」データベースに「参加日」、「参加者名」、「メールアドレス」の3つのデータが転送されます。
入力でインプットにデータを入れるのは「名前」の1ヶ所だけです。残りはこの予約画面にすでに関連付けられている日程、メールアドレスデータを下記画面のように設定します。
④予約画面でその日の申込者を表示する
「参加者一覧」データベースの中の「参加日」がボランティア開催日に一致しているデータをカスタムフィルターで絞り込んで表示します。
説明はこれで終わりです。簡易的な予約システムなので「何だ、これだけ?」と感じた方もいると思いますが、当面はこれで十分です。
予約システムはカレンダーが必須と信じて疑わなかった私としてはカレンダー無しでも似たようなものが作れてホッとしています。
ClickやAdaloで不明点や書いて欲しいブログ等ありましたらお知らせ下さい。
(過去の投稿)