ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

どうやって選択方法を説明するのか、想像できない案件

ある案件で以下の連絡がありました。

・イベントに参加:大人、子ども、幼児の3種類の選択肢から、ラジオボタンで選ぶ
・ツアー1に参加:イベントに参加を選んだうえで、参加または不参加の2種類の選択肢から、ラジオボタンで選ぶ
・ツアー2に参加:イベントに参加を選んだうえで、参加または不参加の2種類の選択肢から、ラジオボタンで選ぶ
・イベントに参加+オプションイベント1に参加:参加をラジオボタンで選ぶ。この項目を選ぶときは、イベントに参加、ツアー1に参加、ツアー2に参加を選べない。
・イベントに参加+オプションイベント2に参加:参加をラジオボタンで選ぶ。この項目を選ぶときは、イベントに参加、ツアー1に参加、ツアー2に参加を選べない。

これはどういうことなんだろ?と思い、選べる/選べないと表にして考えてみました。

イベントに参加 大人 子ども 幼児 選択不可 選択不可
ツアー1に参加 選択可 選択可 選択可 選択不可 選択不可
ツアー2に参加 選択可 選択可 選択可 選択不可 選択不可
イベント+オプションイベント1に参加 選択不可 選択不可 選択不可 選択可 選択不可
イベント+オプションイベント2に参加 選択不可 選択不可 選択不可 選択不可 選択可

どれもラジオボタンで選択する方式が前提です。
ラジオボタンで選ばれたら、選んでほしくない項目を無効状態にして、選択不可にしなければなりません。

選択不可にするのはいいのですが、イベント1+オプションイベント1が正しい選択なのに、イベントに参加で大人を誤って選んでしまった場合、選びなおせるようにしなければなりません。
そうなると、洗濯不可の項目を無効にはできません。
選択は有効にしたまま、選択不可になった項目の選択状態を解除しなければならず、ラジオボタンの標準の機能ではできないので、コードを書かなけれなりません。

依頼元は、このような複雑さがあると、理解されているのでしょうか?

参加
Photo by Tim Mossholder on Unsplash

もう少し簡単な選択方法

選択を整理して、もっと簡単に選択できるようにしようと考えると、以下のようになります。

イベントに参加 大人 子ども 幼児 イベント+オプションイベント1に参加 イベント+オプションイベント2に参加
ツアー1に参加 選択可 選択可 選択可 選択不可 選択不可
ツアー2に参加 選択可 選択可 選択可 選択不可 選択不可

イベント+オプションイベント1に参加とイベント+オプションイベント2に参加を別の項目ではなく、イベントに参加の選択肢にすれば、ツアー1に参加、ツアー2に参加を無効状態にするコードを書くだけです。
こちらの方が、わかりやすいです。


依頼元には両方の表と説明を書いて送りました。
どのような判断をされるのか、待っている状況です。