Skip to content

Conversation

@masaton0216
Copy link
Contributor

概要

背景

ユーザー管理の項目設定において、「条件付き表示」と「必須」の設定が相互排他となっており、「特定の条件を満たした場合のみ表示され、かつその場合は入力必須とする」といった柔軟な項目設定ができませんでした。

目的

条件付き表示項目に必須設定を組み合わせることで、より柔軟なフォーム設計を可能にします。

変更内容

1. 制約の緩和

2. バリデーションロジックの改善

  • 条件付き表示で非表示の項目は必須バリデーションをスキップするようにしました
  • 条件付き表示で表示されている項目のみ必須バリデーションを実行します
  • サーバーサイドで条件評価を行い、セキュアに処理します

3. フロントエンド対応

  • トリガー項目の値変更時に対象項目を動的に表示/非表示します
  • 表示/非表示に応じて required 属性を動的に追加/削除します
  • システム固定項目(ユーザー名、ログインID、メールアドレス)もトリガーとして使用可能です

4. UI改善

  • 管理画面に必須項目でも条件付き表示を設定できる旨を説明するinfoメッセージを表示します
  • 一覧画面に条件付き表示 + 必須の組み合わせを示す「条件付き必須」バッジを表示します

5. 対応範囲の拡大

  • 管理者側のユーザー登録・編集画面にも条件付き表示機能を反映しました

使用例

トリガー項目: 「参加形態」(ラジオボタン: オンライン / 対面)
条件付き必須項目: 「会場までの交通手段」

  • 条件: 参加形態が「対面」の場合に表示
  • 必須: ON
  • 動作: 「対面」選択時のみ表示され、かつ入力必須となります

レビュー完了希望日

機能追加のため急ぎません

関連Pull requests/Issues

#2297 (循環参照チェック機能)

参考

なし

DB変更の有無

無し

チェックリスト

  • プルリクエストにわかりやすいタイトルとラベルを付けました。https://github.com/opensource-workshop/connect-cms/wiki/Pull-requests-Rule
  • コーディング規約チェック(phpcs)を実施し、合格しました
  • ユニットテストを追加し、全テスト(46件)が合格しました
  • 手動テストを実施し、動作を確認しました

@masaton0216 masaton0216 self-assigned this Nov 4, 2025
@masaton0216 masaton0216 merged commit 37164b8 into master Nov 4, 2025
1 check passed
@masaton0216 masaton0216 deleted the feature/user-columns-conditional-display branch November 4, 2025 06:55
@masaton0216 masaton0216 changed the title [ユーザー管理] 条件付き表示項目を必須項目として設定できるようにしました [ユーザ管理] 条件付き表示項目を必須項目として設定できるようにしました Nov 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants