diff --git a/app/controllers/projects/work_items_controller.rb b/app/controllers/projects/work_items_controller.rb index a7e59a28fb751797ca45ec7cea691fc1c3df8d3d..e9f5a7207bba71ab97ef13d9e97c0eafd5cde689 100644 --- a/app/controllers/projects/work_items_controller.rb +++ b/app/controllers/projects/work_items_controller.rb @@ -3,6 +3,7 @@ class Projects::WorkItemsController < Projects::ApplicationController before_action do push_force_frontend_feature_flag(:work_items, project&.work_items_feature_flag_enabled?) + push_force_frontend_feature_flag(:work_items_mvc, project&.work_items_mvc_feature_flag_enabled?) push_force_frontend_feature_flag(:work_items_mvc_2, project&.work_items_mvc_2_feature_flag_enabled?) push_frontend_feature_flag(:use_iid_in_work_items_path, project) end diff --git a/app/models/group.rb b/app/models/group.rb index 098116ed8002a52502b6ac948e83e4f5865e9b48..b6344a22bae49834118b98940ceac10a0d19ead2 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -887,6 +887,10 @@ def work_items_feature_flag_enabled? feature_flag_enabled_for_self_or_ancestor?(:work_items) end + def work_items_mvc_feature_flag_enabled? + feature_flag_enabled_for_self_or_ancestor?(:work_items_mvc) + end + def work_items_mvc_2_feature_flag_enabled? feature_flag_enabled_for_self_or_ancestor?(:work_items_mvc_2) end diff --git a/app/models/project.rb b/app/models/project.rb index a07d41472281585bd28491d3ebf9d0816395db78..d07e9ff759ec08b10caddbb4f0eaa74321dd98b2 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -2994,6 +2994,10 @@ def work_items_feature_flag_enabled? group&.work_items_feature_flag_enabled? || Feature.enabled?(:work_items, self) end + def work_items_mvc_feature_flag_enabled? + group&.work_items_mvc_feature_flag_enabled? || Feature.enabled?(:work_items_mvc) + end + def work_items_mvc_2_feature_flag_enabled? group&.work_items_mvc_2_feature_flag_enabled? || Feature.enabled?(:work_items_mvc_2) end diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index 6ba450b6d570d4319ea5c8335868449ff1af4b63..cfce8c0927fa7af567111c4073b7afcb8957599b 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -3294,6 +3294,13 @@ def define_cache_expectations(cache_key) end end + describe '#work_items_mvc_feature_flag_enabled?' do + it_behaves_like 'checks self and root ancestor feature flag' do + let(:feature_flag) { :work_items_mvc } + let(:feature_flag_method) { :work_items_mvc_feature_flag_enabled? } + end + end + describe '#work_items_mvc_2_feature_flag_enabled?' do it_behaves_like 'checks self and root ancestor feature flag' do let(:feature_flag) { :work_items_mvc_2 } diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 8cccc9ad83eedd07a4d23900611579323afd87a0..9373556a37e0f40a70fe08765082f75ab85974be 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -8156,6 +8156,16 @@ def has_external_wiki end end + describe '#work_items_mvc_feature_flag_enabled?' do + let_it_be(:group_project) { create(:project, :in_subgroup) } + + it_behaves_like 'checks parent group feature flag' do + let(:feature_flag_method) { :work_items_mvc_feature_flag_enabled? } + let(:feature_flag) { :work_items_mvc } + let(:subject_project) { group_project } + end + end + describe '#work_items_mvc_2_feature_flag_enabled?' do let_it_be(:group_project) { create(:project, :in_subgroup) }