From 38e63681bbb7d3acec700f718b2afce870eccc7d Mon Sep 17 00:00:00 2001 From: Mubbshar Anwar <78487564+mubbsharanwar@users.noreply.github.com> Date: Tue, 2 Aug 2022 21:04:43 +0500 Subject: [PATCH] fix: Update event property (#30768) - Use course_key instead of course_run_key for the is_personalized_recommendation event. VAN-1021 --- common/djangoapps/student/models.py | 3 ++- lms/djangoapps/learner_dashboard/api/v0/views.py | 15 ++++++--------- .../js/learner_dashboard/RecommendationsPanel.jsx | 12 ++++++------ 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/common/djangoapps/student/models.py b/common/djangoapps/student/models.py index a9ae649116..50521cafaf 100644 --- a/common/djangoapps/student/models.py +++ b/common/djangoapps/student/models.py @@ -1598,7 +1598,8 @@ class CourseEnrollment(models.Model): segment_properties['course_start'] = self.course.start segment_properties['course_pacing'] = self.course.pacing - is_personalized_recommendation = is_personalized_recommendation_for_user(str(self.course_id)) + course_key = f'{self.course_id.org}+{self.course_id.course}' + is_personalized_recommendation = is_personalized_recommendation_for_user(course_key) if is_personalized_recommendation is not None: segment_properties['is_personalized_recommendation'] = is_personalized_recommendation diff --git a/lms/djangoapps/learner_dashboard/api/v0/views.py b/lms/djangoapps/learner_dashboard/api/v0/views.py index 45de50d6ae..cb90320758 100644 --- a/lms/djangoapps/learner_dashboard/api/v0/views.py +++ b/lms/djangoapps/learner_dashboard/api/v0/views.py @@ -373,15 +373,12 @@ class CourseRecommendationApiView(APIView): for course_id in course_keys: course_data = get_course_data(course_id) if course_data: - course_run_keys = [course_run['key'] for course_run in course_data['course_runs'] - if course_run['availability'] in ['Current', 'Upcoming']] - if course_run_keys: - recommended_courses.append({ - 'course_run_key': course_run_keys[0], - 'title': course_data['title'], - 'logo_image_url': course_data['owners'][0]['logo_image_url'], - 'marketing_url': course_data.get('marketing_url') - }) + recommended_courses.append({ + 'course_key': course_id, + 'title': course_data['title'], + 'logo_image_url': course_data['owners'][0]['logo_image_url'], + 'marketing_url': course_data.get('marketing_url') + }) else: return Response(status=400) diff --git a/lms/static/js/learner_dashboard/RecommendationsPanel.jsx b/lms/static/js/learner_dashboard/RecommendationsPanel.jsx index 70629a4017..dc9133bfb2 100644 --- a/lms/static/js/learner_dashboard/RecommendationsPanel.jsx +++ b/lms/static/js/learner_dashboard/RecommendationsPanel.jsx @@ -15,19 +15,19 @@ class RecommendationsPanel extends React.Component { }; } - onCourseSelect(courseRunKey) { + onCourseSelect(courseKey) { window.analytics.track('edx.bi.user.recommended.course.click', { - course_key: courseRunKey, + course_key: courseKey, is_personalized_recommendation: this.state.isPersonalizedRecommendation, }); let recommendedCourses = Cookies.get(this.cookieName); if (typeof recommendedCourses === 'undefined') { - recommendedCourses = { course_keys: [courseRunKey] }; + recommendedCourses = { course_keys: [courseKey] }; } else { recommendedCourses = JSON.parse(recommendedCourses); - if (!recommendedCourses.course_keys.includes(courseRunKey)) { - recommendedCourses.course_keys.push(courseRunKey); + if (!recommendedCourses.course_keys.includes(courseKey)) { + recommendedCourses.course_keys.push(courseKey); } } recommendedCourses['is_personalized_recommendation'] = this.state.isPersonalizedRecommendation; @@ -64,7 +64,7 @@ class RecommendationsPanel extends React.Component {