Skip to content

Commit d07f2b1

Browse files
Merge pull request #2329 from NCCE/2987-make-legacy-activities-count-towards-certificate-completion
Make legacy activities count towards certificate completion
2 parents c6d600e + a1d71a7 commit d07f2b1

File tree

4 files changed

+34
-4
lines changed

4 files changed

+34
-4
lines changed

app/components/community_activity_list_component.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,16 @@ def initialize(programme_activity_grouping:, community_achievements:, number_to_
66
@class_name = class_name
77
@button_class = button_class
88

9-
activities_with_achievements = programme_activity_grouping.programme_activities.not_legacy.map do |programme_activity|
9+
activities_with_achievements = programme_activity_grouping.programme_activities.map do |programme_activity|
1010
{
1111
programme_activity:,
1212
achievement: community_achievements&.find { _1.activity_id == programme_activity.activity_id }
1313
}
1414
end
1515

16+
# Remove legacy if they do not have an achievement
17+
activities_with_achievements.delete_if { _1[:achievement].nil? && _1[:programme_activity].legacy }
18+
1619
complete, non_complete = activities_with_achievements.partition { _1[:achievement]&.in_state? :complete }
1720

1821
if complete.size < programme_activity_grouping.required_for_completion

app/models/programme_activity_grouping.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ def users_completed(users:)
5555
.belonging_to_programme(programme)
5656
.joins(activity: :programme_activities)
5757
.where(
58-
activities: {programme_activities: {legacy: false}},
5958
user: users
6059
)
6160
.group_by(&:user_id)

spec/components/community_activity_list_component_spec.rb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,26 @@
4747
expect(page).to have_css(".community-activity-list--show-hide")
4848
end
4949
end
50+
51+
context "with legacy activity" do
52+
let(:activity) { create(:activity, title: "Legacy activity") }
53+
let(:programme_activities) {
54+
create_list(:programme_activity, 2, programme_activity_grouping:)
55+
create(:programme_activity, programme_activity_grouping:, activity:, legacy: true)
56+
}
57+
58+
context "without achievement" do
59+
it "should not show legacy activity" do
60+
expect(page).not_to have_text("Legacy activity")
61+
end
62+
end
63+
64+
context "with achievement" do
65+
let(:community_achievements) { [create(:completed_achievement, activity: activity)] }
66+
67+
it "should show legacy activity" do
68+
expect(page).to have_text("Legacy activity")
69+
end
70+
end
71+
end
5072
end

spec/models/programme_activity_grouping_spec.rb

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@
5555
programme_activity.update(legacy: true)
5656
end
5757

58-
it "returns false" do
58+
it "returns true" do
5959
grouping = programme_activity_groupings.first
60-
expect(grouping.user_complete?(user)).to be false
60+
expect(grouping.user_complete?(user)).to be true
6161
end
6262
end
6363
end
@@ -80,6 +80,12 @@
8080
end
8181
end
8282

83+
describe "#objective_displayed_in_body?" do
84+
it "should default to true" do
85+
expect(programme_activity_grouping.objective_displayed_in_body?).to be true
86+
end
87+
end
88+
8389
describe "#users_completed" do
8490
let!(:programme) { create(:programme) }
8591
let!(:programme_activity_grouping) { create(:programme_activity_grouping, required_for_completion: 3, programme:) }

0 commit comments

Comments
 (0)