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:
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user