Skip to content

Commit d18ac86

Browse files
committed
Add feature flag
1 parent f5cc709 commit d18ac86

File tree

12 files changed

+32
-18
lines changed

12 files changed

+32
-18
lines changed

config/initializers/feature_decisions.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,8 @@
6464
OpenProject::FeatureDecisions.add :comments_with_restricted_visibility,
6565
description: "Enables submitting comments that are restricted " \
6666
"and only a subset of users can see"
67+
68+
OpenProject::FeatureDecisions.add :meeting_backlogs,
69+
description: "Enables backlogs for meetings. " \
70+
"Note: Meetings created with this flag off will not be accessible " \
71+
"after activating it."

modules/meeting/app/components/meeting_agenda_items/item_component/show_component.html.erb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@
7777
move_actions(menu)
7878
end
7979

80-
menu.with_divider
81-
move_to_current_meeting_action_item(menu) if in_backlog?
82-
move_to_backlog_action_item(menu) if !in_backlog?
80+
menu.with_divider if OpenProject::FeatureDecisions.meeting_backlogs_active?
81+
move_to_current_meeting_action_item(menu) if in_backlog? && OpenProject::FeatureDecisions.meeting_backlogs_active?
82+
move_to_backlog_action_item(menu) if !in_backlog? && OpenProject::FeatureDecisions.meeting_backlogs_active?
8383

8484
if move_to_next_meeting_enabled?
8585
menu.with_divider

modules/meeting/app/components/meeting_agenda_items/item_component/show_component.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def add_outcome_action?
6363
@meeting_agenda_item.editable? &&
6464
@meeting.in_progress? &&
6565
!@meeting_agenda_item.outcomes.exists? &&
66-
@meeting_agenda_item.in_backlog?
66+
(!OpenProject::FeatureDecisions.meeting_backlogs_active? || @meeting_agenda_item.in_backlog?)
6767
end
6868

6969
def first?

modules/meeting/app/components/meeting_agenda_items/outcomes/new_button_component.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def wrapper_uniq_by
4848
def render?
4949
@meeting.in_progress? &&
5050
User.current.allowed_in_project?(:create_meeting_minutes, @meeting.project) &&
51-
@meeting_agenda_item.in_backlog?
51+
(!OpenProject::FeatureDecisions.meeting_backlogs_active? || @meeting_agenda_item.in_backlog?)
5252
end
5353
end
5454
end

modules/meeting/app/components/meeting_agenda_items/outcomes/show_notes_component.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def initialize(meeting_outcome:)
4747
def edit_enabled?
4848
@meeting.in_progress? &&
4949
User.current.allowed_in_project?(:create_meeting_minutes, @meeting.project) &&
50-
@agenda_item.in_backlog?
50+
(!OpenProject::FeatureDecisions.meeting_backlogs_active? || @agenda_item.in_backlog?)
5151
end
5252

5353
def edit_action_item(menu)

modules/meeting/app/components/meeting_sections/show_component.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
component.with_header(font_weight: :bold, pl: 0) do
66
render(MeetingSections::HeaderComponent.new(meeting_section: @meeting_section, state: @state))
77
end
8-
elsif render_backlog? && !@meeting.closed?
8+
elsif OpenProject::FeatureDecisions.meeting_backlogs_active? && render_backlog? && !@meeting.closed?
99
component.with_header do
1010
render(MeetingSections::Backlogs::HeaderComponent.new(backlog: @meeting_section, box: component))
1111
end

modules/meeting/app/components/meetings/show_component.html.erb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616
render(MeetingAgendaItems::NewButtonComponent.new(meeting: @meeting))
1717
end
1818

19-
agenda.with_row do
20-
render(MeetingSections::Backlogs::ContainerComponent.new(meeting: @meeting))
19+
if OpenProject::FeatureDecisions.meeting_backlogs_active?
20+
agenda.with_row do
21+
render(MeetingSections::Backlogs::ContainerComponent.new(meeting: @meeting))
22+
end
2123
end
2224

2325
agenda.with_row(mt: 3, display: [:block, nil, :none]) do

modules/meeting/app/contracts/meeting_outcomes/editable_item.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ module EditableItem
3333
extend ActiveSupport::Concern
3434

3535
included do
36-
validate :validate_editable, :validate_meeting_existence, :user_allowed_to_add, :validate_not_in_backlog
36+
validate :validate_editable, :validate_meeting_existence, :user_allowed_to_add
37+
validate :validate_not_in_backlog if OpenProject::FeatureDecisions.meeting_backlogs_active?
3738
end
3839

3940
protected

modules/meeting/app/controllers/concerns/meetings/agenda_component_streams.rb

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,8 @@ def update_new_button_via_turbo_stream(disabled: false, meeting: @meeting, meeti
143143
end
144144

145145
def render_agenda_item_form_via_turbo_stream(meeting: @meeting, meeting_section: @meeting_section, type: :simple)
146-
if meeting.sections.empty? && meeting_section != meeting.backlog
146+
if meeting.sections.empty? &&
147+
(!OpenProject::FeatureDecisions.meeting_backlogs_active? || meeting_section != meeting.backlog)
147148
render_agenda_item_form_for_empty_meeting_via_turbo_stream(type:)
148149
else
149150
render_agenda_item_form_in_section_via_turbo_stream(meeting:, meeting_section:, type:)
@@ -216,7 +217,8 @@ def update_item_via_turbo_stream(state: :show, meeting_agenda_item: @meeting_age
216217
def add_item_via_turbo_stream(meeting_agenda_item: @meeting_agenda_item, clear_slate: false) # rubocop:disable Metrics/AbcSize
217218
if clear_slate
218219
update_list_via_turbo_stream(form_hidden: false, form_type: @agenda_item_type)
219-
elsif meeting_agenda_item.meeting.agenda_items.count == 1 && meeting_agenda_item.meeting.sections.present?
220+
elsif meeting_agenda_item.meeting.agenda_items.count == 1 &&
221+
(!OpenProject::FeatureDecisions.meeting_backlogs_active? || meeting_agenda_item.meeting.sections.present?)
220222
update_list_via_turbo_stream(form_hidden: true)
221223

222224
update_new_component_via_turbo_stream(
@@ -349,11 +351,13 @@ def update_section_header_via_turbo_stream(meeting_section: @meeting_section, st
349351
end
350352

351353
def update_backlog_via_turbo_stream(meeting: @meeting)
352-
update_via_turbo_stream(
353-
component: MeetingSections::Backlogs::ContainerComponent.new(
354-
meeting: meeting
354+
if OpenProject::FeatureDecisions.meeting_backlogs_active?
355+
update_via_turbo_stream(
356+
component: MeetingSections::Backlogs::ContainerComponent.new(
357+
meeting: meeting
358+
)
355359
)
356-
)
360+
end
357361
end
358362

359363
def update_section_via_turbo_stream(meeting_section: @meeting_section, form_hidden: true, form_type: :simple,

modules/meeting/app/controllers/meeting_outcomes_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class MeetingOutcomesController < ApplicationController
4141
def new
4242
update_all_via_turbo_stream
4343

44-
if @meeting.in_progress? && @meeting_agenda_item.in_backlog?
44+
if @meeting.in_progress? && (!OpenProject::FeatureDecisions.meeting_backlogs_active? || @meeting_agenda_item.in_backlog?)
4545
render_base_outcome_component_via_turbo_stream(meeting: @meeting, meeting_agenda_item: @meeting_agenda_item,
4646
meeting_outcome: nil, edit: true)
4747
else

modules/meeting/app/controllers/work_package_meetings_tab_controller.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ def add_work_package_to_meeting_params
102102
end
103103

104104
def backlog_id
105+
return unless OpenProject::FeatureDecisions.meeting_backlogs_active?
106+
105107
meeting_id = add_work_package_to_meeting_params[:meeting_id]
106108
return if meeting_id.blank?
107109

modules/meeting/app/services/meetings/create_service.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def after_perform(call)
4343
end
4444
end
4545

46-
if call.success?
46+
if call.success? && OpenProject::FeatureDecisions.meeting_backlogs_active?
4747
backlog = create_backlog(call.result)
4848
call.merge!(backlog)
4949
end

0 commit comments

Comments
 (0)