fix: Update event property (#30768)

- Use course_key instead of course_run_key for the is_personalized_recommendation event.

VAN-1021
This commit is contained in:
Mubbshar Anwar
2022-08-02 21:04:43 +05:00
committed by GitHub
parent 999970d60b
commit 38e63681bb
3 changed files with 14 additions and 16 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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 {
<div className={this.state.coursesList.length ? '' : 'spinner-container'}>
{this.state.coursesList.length ? this.state.coursesList.map(course => (
<a href={course.marketing_url} className="course-link"
onClick={() => this.onCourseSelect(course.course_run_key)}>
onClick={() => this.onCourseSelect(course.course_key)}>
<div className="course-card box-shadow-down-1 bg-white mb-3">
<div className="box-shadow-down-1 image-box">
<img