diff --git a/app/models/rubric.rb b/app/models/rubric.rb index c8c640ddf38..feb4c42550d 100644 --- a/app/models/rubric.rb +++ b/app/models/rubric.rb @@ -95,10 +95,25 @@ class Rubric < ActiveRecord::Base end workflow do - state :active + state :active do + event :archive, transitions_to: :archived + end + state :archived do + event :unarchive, transitions_to: :active + end state :deleted end + def archive + # overrides 'archive' event in workflow to make sure the feature flag is enabled + # remove this and 'unarchive' method when feature flag is removed + super if enhanced_rubrics_enabled? + end + + def unarchive + super if enhanced_rubrics_enabled? + end + def self.aligned_to_outcomes where( ContentTag.learning_outcome_alignments @@ -468,4 +483,8 @@ class Rubric < ActiveRecord::Base context&.root_account_id end end + + def enhanced_rubrics_enabled? + Account.site_admin.feature_enabled?(:enhanced_rubrics) + end end diff --git a/spec/models/rubric_spec.rb b/spec/models/rubric_spec.rb index 92d64b3d1e7..c19d1cc2798 100644 --- a/spec/models/rubric_spec.rb +++ b/spec/models/rubric_spec.rb @@ -342,6 +342,32 @@ describe Rubric do end end + it "changes workflow state properly when archiving when enhanced_rubrics FF enabled" do + course_with_teacher + rubric = rubric_model({ context: @course }) + rubric.archive + expect(rubric.workflow_state).to eq "archived" + end + + it "changes workflow state propertly when unarchiving when enhanced_rubrics FF enabled" do + course_with_teacher + rubric = rubric_model({ context: @course }) + rubric.archive + expect(rubric.workflow_state).to eq "archived" + rubric.unarchive + expect(rubric.workflow_state).to eq "active" + end + + it "does not change workflow state when archiving when enhanced_rubrics FF disabled" do + # remove this test when FF is removed + Account.site_admin.disable_feature!(:enhanced_rubrics) + course_with_teacher + rubric = rubric_model({ context: @course }) + rubric.archive + expect(rubric.workflow_state).to eq "active" + Account.site_admin.enable_feature!(:enhanced_rubrics) + end + it "is cool about duplicate titles" do course_with_teacher