@@ -38,7 +52,7 @@ function CourseGradeHeader({ intl }) {
{verifiedMode && (
-
diff --git a/src/course-home/progress-tab/grades/detailed-grades/DetailedGrades.jsx b/src/course-home/progress-tab/grades/detailed-grades/DetailedGrades.jsx
index 29eb6d80..908ec650 100644
--- a/src/course-home/progress-tab/grades/detailed-grades/DetailedGrades.jsx
+++ b/src/course-home/progress-tab/grades/detailed-grades/DetailedGrades.jsx
@@ -2,6 +2,8 @@ import React from 'react';
import { useSelector } from 'react-redux';
import { getConfig } from '@edx/frontend-platform';
+import { sendTrackEvent } from '@edx/frontend-platform/analytics';
+import { getAuthenticatedUser } from '@edx/frontend-platform/auth';
import { FormattedMessage, injectIntl, intlShape } from '@edx/frontend-platform/i18n';
import { Hyperlink } from '@edx/paragon';
import { useModel } from '../../../../generic/model-store';
@@ -11,18 +13,33 @@ import DetailedGradesTable from './DetailedGradesTable';
import messages from '../messages';
function DetailedGrades({ intl }) {
+ const { administrator } = getAuthenticatedUser();
const {
courseId,
} = useSelector(state => state.courseHome);
-
+ const {
+ org,
+ } = useModel('courseHomeMeta', courseId);
const {
sectionScores,
} = useModel('progress', courseId);
const hasSectionScores = sectionScores.length > 0;
+ const logOutlineLinkClick = () => {
+ sendTrackEvent('edx.ui.lms.course_progress.detailed_grades.course_outline_link.clicked', {
+ org_key: org,
+ courserun_key: courseId,
+ is_staff: administrator,
+ });
+ };
+
const outlineLink = (
-
+
{intl.formatMessage(messages.courseOutline)}
);
diff --git a/src/course-home/progress-tab/grades/detailed-grades/DetailedGradesTable.jsx b/src/course-home/progress-tab/grades/detailed-grades/DetailedGradesTable.jsx
index eb747497..77514bbe 100644
--- a/src/course-home/progress-tab/grades/detailed-grades/DetailedGradesTable.jsx
+++ b/src/course-home/progress-tab/grades/detailed-grades/DetailedGradesTable.jsx
@@ -1,12 +1,31 @@
import React from 'react';
+import { useSelector } from 'react-redux';
import PropTypes from 'prop-types';
+import { sendTrackEvent } from '@edx/frontend-platform/analytics';
+import { getAuthenticatedUser } from '@edx/frontend-platform/auth';
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
import { DataTable } from '@edx/paragon';
import messages from '../messages';
+import { useModel } from '../../../../generic/model-store';
function DetailedGradesTable({ intl, sectionScores }) {
+ const {
+ courseId,
+ } = useSelector(state => state.courseHome);
+ const {
+ org,
+ } = useModel('courseHomeMeta', courseId);
+ const { administrator } = getAuthenticatedUser();
+ const logSubsectionClicked = (blockKey) => {
+ sendTrackEvent('edx.ui.lms.course_progress.detailed_grades_assignment.clicked', {
+ org_key: org,
+ courserun_key: courseId,
+ is_staff: administrator,
+ assignment_block_key: blockKey,
+ });
+ };
return (
sectionScores.map((chapter) => {
const subsectionScores = chapter.subsections.filter(
@@ -21,7 +40,17 @@ function DetailedGradesTable({ intl, sectionScores }) {
}
const detailedGradesData = subsectionScores.map((subsection) => {
- const title = {subsection.displayName};
+ const title = (
+ {
+ logSubsectionClicked(subsection.blockKey);
+ }}
+ >
+ {subsection.displayName}
+
+ );
return {
subsectionTitle: title,
score: `${subsection.numPointsEarned}/${subsection.numPointsPossible}`,
diff --git a/src/course-home/progress-tab/related-links/RelatedLinks.jsx b/src/course-home/progress-tab/related-links/RelatedLinks.jsx
index 2ac5d35a..2759ceb3 100644
--- a/src/course-home/progress-tab/related-links/RelatedLinks.jsx
+++ b/src/course-home/progress-tab/related-links/RelatedLinks.jsx
@@ -1,28 +1,45 @@
import React from 'react';
import { useSelector } from 'react-redux';
+
import { getConfig } from '@edx/frontend-platform';
+import { sendTrackEvent } from '@edx/frontend-platform/analytics';
+import { getAuthenticatedUser } from '@edx/frontend-platform/auth';
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
import { Hyperlink } from '@edx/paragon';
import messages from './messages';
+import { useModel } from '../../../generic/model-store';
function RelatedLinks({ intl }) {
const {
courseId,
} = useSelector(state => state.courseHome);
+ const {
+ org,
+ } = useModel('courseHomeMeta', courseId);
+
+ const { administrator } = getAuthenticatedUser();
+ const logLinkClicked = (linkName) => {
+ sendTrackEvent('edx.ui.lms.course_progress.related_links.clicked', {
+ org_key: org,
+ courserun_key: courseId,
+ is_staff: administrator,
+ link_clicked: linkName,
+ });
+ };
return (
{intl.formatMessage(messages.relatedLinks)}
-
-
+ logLinkClicked('dates')}>
{intl.formatMessage(messages.datesCardLink)}
{intl.formatMessage(messages.datesCardDescription)}
-
-
+ logLinkClicked('course_outline')}>
{intl.formatMessage(messages.outlineCardLink)}
{intl.formatMessage(messages.outlineCardDescription)}