栽培管理アプリを作ってます⑲:ハウス周りの作業を記録できるようにした話

目次

はじめに

今回は栽培管理アプリにハウス周りや露地など、屋外の作業を記録できるようにした話です。

アスパラガスのハウス栽培をしていると、ハウスの中の作業だけじゃなくて、ハウス周りの除草とか草刈りとかも記録したくなります。でも今まではそういった作業を登録する場所がなかったので、今回実装しました。

そもそも何が問題だったか

今の作業登録の流れはこうなっています。

栽培中のハウスを選ぶ → 畝を選ぶ → 作業内容を登録

ハウス周りの除草や露地の草刈りは「栽培中のハウス」でも「畝」でもないので、そもそも登録する場所がありませんでした。

解決方針:屋外・露地を「栽培中に追加」する

大きく作り直すのではなく、既存の仕組みをそのまま使う方針にしました。

cult_fieldsテーブル(ハウス情報を管理するテーブル)にfield_typeというカラムがすでにあったのですが、未使用でした。これを活用してfield_type = ‘outdoor’で屋外・露地を識別することにしました。

  • field_type = NULL → ハウス(既存データはそのまま)
  • field_type = ‘outdoor’ → 屋外・露地

屋外・露地を「栽培中に追加」モーダルで栽培グループに紐づけることで、既存の作業登録の仕組みをそのまま使えるようになります。

ハウス管理に「屋外・露地」タブを追加

最初は空きタブに屋外・露地を混ぜて表示しようとしました。でもハウスと屋外・露地が一覧に混ざると区別できません。

アイコンで区別することも考えました。作業登録画面にはもともとハウスのアイコン🏠があるので屋外・露地に🌳をつければ区別できます。でもハウス管理画面にはもともとアイコンがないので、屋外・露地だけに🌳をつけると浮いてしまいます。

結論として、タブで分けるのが一番シンプルでした。

空きタブには屋外・露地を表示しないようにして、グループ作成モーダル・栽培中に追加モーダルのハウス一覧からも除外しました。

屋外・露地から作業登録するまでの流れ

屋外・露地の場所を作業登録に出すまでの流れはこうなります。

  1. ハウス新規登録で「屋外・露地」を選んで登録(幅・長さ・畝数は不要なので非表示)
  2. ハウス管理 →「屋外・露地」タブ →「+栽培中に追加」
  3. 追加先のグループと場所を選んで追加
  4. 作業登録に🌳アイコン付きで一覧に表示される

「栽培中に追加」モーダルは既存のものを流用しましたが、屋外・露地タブから開いた場合はハウス一覧ではなく屋外・露地の場所一覧を表示するようにして、ラベルも「追加する場所」に変更しました。

栽培中に追加済みの場所はチェックボックスをグレーアウトして「栽培中」と表示するようにしました。登録後に一覧が空になって「あれ?登録できたの?」とならないようにするためです。

作業登録側の対応

屋外・露地は畝がないので、通常のハウスとは動きが違います。

通常のハウスはカードをクリックすると畝一覧が展開されて、畝を選んでからフッターメニューが表示されます。屋外・露地は畝がないので、カードをクリックした時点で即選択済みにしてフッターメニューを表示するようにしました。

あわせて全選択・全解除ボタンと畝選択欄も非表示にしています。

まとめ

既存の作業登録の仕組みを大きく変えずに、屋外・露地の作業を記録できるようになりました。「大きく作り直すのではなく既存の仕組みを活かす」という方針で、思ったよりシンプルに実装できました。

  • field_typeカラムを活用(既存カラムの再利用)
  • 「栽培中に追加」で既存の仕組みをそのまま使う
  • タブで分けてハウスと屋外・露地を区別
目次