From ec08ef4bcbbae3939c03e376c82fc905091f6cce Mon Sep 17 00:00:00 2001 From: Matt Hughes Date: Fri, 16 Aug 2019 14:02:06 -0400 Subject: [PATCH] Apply filters to interventions report JIRA:EDUCATOR-4537 --- src/containers/GradebookPage/index.jsx | 15 ++++++++++++++- src/data/services/LmsApiService.js | 11 ++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/containers/GradebookPage/index.jsx b/src/containers/GradebookPage/index.jsx index 9ec6749..6772ba9 100644 --- a/src/containers/GradebookPage/index.jsx +++ b/src/containers/GradebookPage/index.jsx @@ -85,7 +85,20 @@ const mapStateToProps = (state, ownProps) => ( courseGradeMax: formatMaxCourseGrade(state.filters.courseGradeMax), }), interventionExportUrl: - LmsApiService.getInterventionExportCsvUrl(ownProps.match.params.courseId), + LmsApiService.getInterventionExportCsvUrl(ownProps.match.params.courseId, { + assignment: (state.filters.assignment || {}).id, + assignmentType: state.filters.assignmentType, + assignmentGradeMin: formatMinAssignmentGrade( + state.filters.assignmentGradeMin, + { assignmentId: (state.filters.assignment || {}).id }, + ), + assignmentGradeMax: formatMaxAssignmentGrade( + state.filters.assignmentGradeMax, + { assignmentId: (state.filters.assignment || {}).id }, + ), + courseGradeMin: formatMinCourseGrade(state.filters.courseGradeMin), + courseGradeMax: formatMaxCourseGrade(state.filters.courseGradeMax), + }), bulkImportError: state.grades.bulkManagement && state.grades.bulkManagement.errorMessages ? `Errors while processing: ${state.grades.bulkManagement.errorMessages.join(', ')}` : diff --git a/src/data/services/LmsApiService.js b/src/data/services/LmsApiService.js index 96b05ce..b7319bd 100644 --- a/src/data/services/LmsApiService.js +++ b/src/data/services/LmsApiService.js @@ -103,9 +103,14 @@ class LmsApiService { return `${LmsApiService.baseUrl}/api/bulk_grades/course/${courseId}/?${queryParams}`; } - static getInterventionExportCsvUrl(courseId) { - const downloadUrl = `${LmsApiService.baseUrl}/api/bulk_grades/course/${courseId}/intervention`; - return downloadUrl; + static getInterventionExportCsvUrl(courseId, options = {}) { + const queryParams = ['track', 'cohort', 'assignment', 'assignmentType', 'assignmentGradeMax', + 'assignmentGradeMin', 'courseGradeMin', 'courseGradeMax'] + .filter(opt => options[opt] && + options[opt] !== 'All') + .map(opt => `${opt}=${encodeURIComponent(options[opt])}`) + .join('&'); + return `${LmsApiService.baseUrl}/api/bulk_grades/course/${courseId}/intervention?${queryParams}`; } static getGradeImportCsvUrl = LmsApiService.getGradeExportCsvUrl;