はじめに
今回は栽培管理アプリにハウス周りや露地など、屋外の作業を記録できるようにした話です。
アスパラガスのハウス栽培をしていると、ハウスの中の作業だけじゃなくて、ハウス周りの除草とか草刈りとかも記録したくなります。でも今まではそういった作業を登録する場所がなかったので、今回実装しました。
そもそも何が問題だったか
今の作業登録の流れはこうなっています。
栽培中のハウスを選ぶ → 畝を選ぶ → 作業内容を登録
ハウス周りの除草や露地の草刈りは「栽培中のハウス」でも「畝」でもないので、そもそも登録する場所がありませんでした。
解決方針:屋外・露地を「栽培中に追加」する
大きく作り直すのではなく、既存の仕組みをそのまま使う方針にしました。
cult_fieldsテーブル(ハウス情報を管理するテーブル)にfield_typeというカラムがすでにあったのですが、未使用でした。これを活用してfield_type = ‘outdoor’で屋外・露地を識別することにしました。
- field_type = NULL → ハウス(既存データはそのまま)
- field_type = ‘outdoor’ → 屋外・露地
屋外・露地を「栽培中に追加」モーダルで栽培グループに紐づけることで、既存の作業登録の仕組みをそのまま使えるようになります。
ハウス管理に「屋外・露地」タブを追加
最初は空きタブに屋外・露地を混ぜて表示しようとしました。でもハウスと屋外・露地が一覧に混ざると区別できません。
アイコンで区別することも考えました。作業登録画面にはもともとハウスのアイコン🏠があるので屋外・露地に🌳をつければ区別できます。でもハウス管理画面にはもともとアイコンがないので、屋外・露地だけに🌳をつけると浮いてしまいます。
結論として、タブで分けるのが一番シンプルでした。

空きタブには屋外・露地を表示しないようにして、グループ作成モーダル・栽培中に追加モーダルのハウス一覧からも除外しました。
屋外・露地から作業登録するまでの流れ
屋外・露地の場所を作業登録に出すまでの流れはこうなります。
- ハウス新規登録で「屋外・露地」を選んで登録(幅・長さ・畝数は不要なので非表示)
- ハウス管理 →「屋外・露地」タブ →「+栽培中に追加」
- 追加先のグループと場所を選んで追加
- 作業登録に🌳アイコン付きで一覧に表示される
「栽培中に追加」モーダルは既存のものを流用しましたが、屋外・露地タブから開いた場合はハウス一覧ではなく屋外・露地の場所一覧を表示するようにして、ラベルも「追加する場所」に変更しました。
栽培中に追加済みの場所はチェックボックスをグレーアウトして「栽培中」と表示するようにしました。登録後に一覧が空になって「あれ?登録できたの?」とならないようにするためです。
作業登録側の対応
屋外・露地は畝がないので、通常のハウスとは動きが違います。
通常のハウスはカードをクリックすると畝一覧が展開されて、畝を選んでからフッターメニューが表示されます。屋外・露地は畝がないので、カードをクリックした時点で即選択済みにしてフッターメニューを表示するようにしました。
あわせて全選択・全解除ボタンと畝選択欄も非表示にしています。

まとめ
既存の作業登録の仕組みを大きく変えずに、屋外・露地の作業を記録できるようになりました。「大きく作り直すのではなく既存の仕組みを活かす」という方針で、思ったよりシンプルに実装できました。
- field_typeカラムを活用(既存カラムの再利用)
- 「栽培中に追加」で既存の仕組みをそのまま使う
- タブで分けてハウスと屋外・露地を区別
