From 0ed29b343c9ba87b5675bffd311ca730c2b57651 Mon Sep 17 00:00:00 2001 From: Michael Squance Date: Tue, 18 Mar 2025 13:57:45 +0000 Subject: [PATCH] Fixing I belong dashboard to not be locked when a user has a dropped achievement --- app/components/cpd_course_item_component.rb | 10 ++- .../cpd_course_item_component.html.erb | 9 +-- .../cpd_course_item_component_spec.rb | 72 ++++++++++++++++++- 3 files changed, 85 insertions(+), 6 deletions(-) diff --git a/app/components/cpd_course_item_component.rb b/app/components/cpd_course_item_component.rb index 1f99abfdca..cdc6b6adc1 100644 --- a/app/components/cpd_course_item_component.rb +++ b/app/components/cpd_course_item_component.rb @@ -10,6 +10,14 @@ def initialize(activity:, current_user:) @current_user = current_user @course = Achiever::Course::Template.maybe_find_by_activity_code(activity.stem_activity_code) if activity.stem_activity_code.present? - @achievement = current_user.achievements.to_a.find { _1.activity_id == activity.id } + @achievements = current_user.achievements.where(activity: @activity.id) + + @achievement_state = if @achievements.in_state(:complete).any? + :complete + elsif @achievements.in_state(:enrolled).any? + :in_progress + else + :not_started + end end end diff --git a/app/components/cpd_course_item_component/cpd_course_item_component.html.erb b/app/components/cpd_course_item_component/cpd_course_item_component.html.erb index e6f40f0c89..0ebe9847b7 100644 --- a/app/components/cpd_course_item_component/cpd_course_item_component.html.erb +++ b/app/components/cpd_course_item_component/cpd_course_item_component.html.erb @@ -25,10 +25,11 @@