From 41e0ac39b2fefc5acb065cdfb7dd8eaf7b4fdc85 Mon Sep 17 00:00:00 2001 From: Alex Velez Date: Fri, 27 Sep 2024 08:12:45 -0500 Subject: [PATCH 1/8] Move reports into quizsummarypage --- .../coach/assets/src/routes/planExamRoutes.js | 2 +- .../src/views/plan/QuizSummaryPage/index.vue | 121 +++++++++++++----- 2 files changed, 92 insertions(+), 31 deletions(-) diff --git a/kolibri/plugins/coach/assets/src/routes/planExamRoutes.js b/kolibri/plugins/coach/assets/src/routes/planExamRoutes.js index 1b75a290b67..d5f1a26077b 100644 --- a/kolibri/plugins/coach/assets/src/routes/planExamRoutes.js +++ b/kolibri/plugins/coach/assets/src/routes/planExamRoutes.js @@ -53,7 +53,7 @@ export default [ }, { name: QuizSummaryPage.name, - path: '/:classId/plan/quizzes/:quizId', + path: '/:classId/plan/quizzes/:quizId/:tabId?', component: QuizSummaryPage, meta: { titleParts: ['QUIZ_NAME', 'quizzesLabel', 'CLASS_NAME'], diff --git a/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue b/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue index ee1db0ddf9c..bfd2a0721d9 100644 --- a/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue +++ b/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue @@ -36,20 +36,26 @@ v-if="!loading" :topMargin="16" > -
-

- {{ coachString('numberOfQuestions', { value: selectedQuestions.length }) }} -

- -

- {{ orderDescriptionString }} -

- - + + + + + -
+ @@ -68,8 +74,9 @@ From a5356189cdc032ce42dfaa0266002c68a3aef842 Mon Sep 17 00:00:00 2001 From: Alex Velez Date: Fri, 27 Sep 2024 10:33:53 -0500 Subject: [PATCH 3/8] add export csv --- .../src/views/plan/QuizSummaryPage/index.vue | 17 +---------- .../ReportsDifficultQuestionsTable.vue | 29 +++++++++++++++++++ .../views/reports/ReportsLearnersTable.vue | 24 +++++++++++++++ 3 files changed, 54 insertions(+), 16 deletions(-) diff --git a/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue b/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue index ef305ea8ac4..9122a9f1f16 100644 --- a/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue +++ b/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue @@ -103,8 +103,6 @@ import ReportsControls from '../../reports/ReportsControls'; import ReportsLearnersTable from '../../reports/ReportsLearnersTable'; import ReportsDifficultQuestionsTable from '../../reports/ReportsDifficultQuestionsTable'; - import * as csvFields from '../../../csv/fields'; - import CSVExporter from '../../../csv/exporter'; import QuizOptionsDropdownMenu from './QuizOptionsDropdownMenu'; import ManageExamModals from './ManageExamModals'; import { @@ -354,20 +352,7 @@ }); }, exportCSV() { - const columns = [ - ...csvFields.name(), - ...csvFields.learnerProgress('statusObj.status'), - ...csvFields.score(), - ...csvFields.quizQuestionsAnswered(this.exam), - ...csvFields.list('groups', 'groupsLabel'), - ]; - - const exporter = new CSVExporter(columns, this.className); - exporter.addNames({ - resource: this.exam.title, - }); - - exporter.export(this.table); + this.$refs.table.exportCSV?.(); }, }, $trs: { diff --git a/kolibri/plugins/coach/assets/src/views/reports/ReportsDifficultQuestionsTable.vue b/kolibri/plugins/coach/assets/src/views/reports/ReportsDifficultQuestionsTable.vue index 9b1d3bdbc90..d32dc295ca9 100644 --- a/kolibri/plugins/coach/assets/src/views/reports/ReportsDifficultQuestionsTable.vue +++ b/kolibri/plugins/coach/assets/src/views/reports/ReportsDifficultQuestionsTable.vue @@ -46,6 +46,8 @@ import commonCoach from '../common'; import LearnerProgressRatio from '../common/status/LearnerProgressRatio'; import { coachStrings } from '../common/commonCoachStrings'; + import * as csvFields from '../../csv/fields'; + import CSVExporter from '../../csv/exporter'; import { PageNames } from './../../constants'; export default { @@ -73,6 +75,14 @@ default: false, }, }, + computed: { + exam() { + return this.examMap[this.$route.params.quizId]; + }, + group() { + return this.$route.params.groupId && this.groupMap[this.$route.params.groupId]; + }, + }, methods: { questionLink(questionId) { return this.classRoute( @@ -85,6 +95,25 @@ }, ); }, + /** + * @public + */ + exportCSV() { + const columns = [...csvFields.questionTitle(), ...csvFields.helpNeeded()]; + + const exporter = new CSVExporter(columns, this.className); + const names = { + resource: this.exam.title, + difficultQuestions: this.coachString('difficultQuestionsLabel'), + }; + + if (this.group) { + names.group = this.group.name; + } + exporter.addNames(names); + + exporter.export(this.entries); + }, }, }; diff --git a/kolibri/plugins/coach/assets/src/views/reports/ReportsLearnersTable.vue b/kolibri/plugins/coach/assets/src/views/reports/ReportsLearnersTable.vue index 0e0fd9be25a..355fe4f1121 100644 --- a/kolibri/plugins/coach/assets/src/views/reports/ReportsLearnersTable.vue +++ b/kolibri/plugins/coach/assets/src/views/reports/ReportsLearnersTable.vue @@ -103,6 +103,8 @@ import isUndefined from 'lodash/isUndefined'; import commonCoreStrings from 'kolibri.coreVue.mixins.commonCoreStrings'; import commonCoach from '../common'; + import * as csvFields from '../../csv/fields'; + import CSVExporter from '../../csv/exporter'; export default { name: 'ReportsLearnersTable', @@ -142,6 +144,9 @@ anyTries() { return this.entries.some(entry => !isUndefined(entry.statusObj.tries)); }, + exam() { + return this.examMap[this.$route.params.quizId]; + }, }, methods: { completedQuestionsCountLabel(answered, total) { @@ -181,6 +186,25 @@ showQuizStatus(entry) { return this.questionCount && !isUndefined(entry.statusObj.num_answered); }, + /** + * @public + */ + exportCSV() { + const columns = [ + ...csvFields.name(), + ...csvFields.learnerProgress('statusObj.status'), + ...csvFields.score(), + ...csvFields.quizQuestionsAnswered(this.exam), + ...csvFields.list('groups', 'groupsLabel'), + ]; + + const exporter = new CSVExporter(columns, this.className); + exporter.addNames({ + resource: this.exam.title, + }); + + exporter.export(this.entries); + }, }, $trs: { allQuestionsAnswered: { From 35f1795f254ce11c1b1cd4f8a10818cd6a0a4544 Mon Sep 17 00:00:00 2001 From: Alex Velez Date: Mon, 30 Sep 2024 11:13:25 -0500 Subject: [PATCH 4/8] Add info to quizStatus --- .../assets/src/views/common/QuizStatus.vue | 72 +++++++++++++------ .../src/views/plan/QuizSummaryPage/index.vue | 1 - .../ReportsDifficultQuestionsTable.vue | 6 +- 3 files changed, 50 insertions(+), 29 deletions(-) diff --git a/kolibri/plugins/coach/assets/src/views/common/QuizStatus.vue b/kolibri/plugins/coach/assets/src/views/common/QuizStatus.vue index 39043b50884..9c3ec7475b8 100644 --- a/kolibri/plugins/coach/assets/src/views/common/QuizStatus.vue +++ b/kolibri/plugins/coach/assets/src/views/common/QuizStatus.vue @@ -104,18 +104,15 @@ - -
+ +
- {{ coachString('classLabel') }} + {{ coachString('recipientsLabel') }}
- {{ className }} +
- +
- {{ coachString('recipientsLabel') }} + {{ coachString('avgScoreLabel') }} + -
- -
+
- +
- {{ coachString('avgScoreLabel') }} - + {{ coachString('classLabel') }} - +
+ {{ className }} +
@@ -215,7 +212,29 @@ :layout8="{ span: 4 }" :layout12="{ span: 12 }" > -

{{ exam.size_string ? exam.size_string : '--' }}

+ {{ exam.size_string ? exam.size_string : '--' }} + +
+ + +
+ + {{ coreString('dateCreated') }} + + +
@@ -347,6 +366,13 @@ ':hover': { 'background-color': this.$darken1(this.$themePalette.red.v_1100) }, }; }, + examDateCreated() { + if (this.exam.date_created) { + return new Date(this.exam.date_created); + } else { + return null; + } + }, examDateArchived() { if (this.exam.date_archived) { return new Date(this.exam.date_archived); diff --git a/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue b/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue index 9122a9f1f16..3078b353cd3 100644 --- a/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue +++ b/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue @@ -62,7 +62,6 @@ diff --git a/kolibri/plugins/coach/assets/src/views/reports/ReportsDifficultQuestionsTable.vue b/kolibri/plugins/coach/assets/src/views/reports/ReportsDifficultQuestionsTable.vue index d32dc295ca9..214608b8d55 100644 --- a/kolibri/plugins/coach/assets/src/views/reports/ReportsDifficultQuestionsTable.vue +++ b/kolibri/plugins/coach/assets/src/views/reports/ReportsDifficultQuestionsTable.vue @@ -17,7 +17,7 @@ {{ tableRow.title }} [], }, - isMissingResource: { - type: Boolean, - default: false, - }, }, computed: { exam() { From 6ebe48a5363de1d2730460f2c5e91cd16cb5ec37 Mon Sep 17 00:00:00 2001 From: Alex Velez Date: Mon, 30 Sep 2024 14:53:29 -0500 Subject: [PATCH 5/8] Add made visible label --- .../assets/src/views/common/QuizStatus.vue | 17 +++++++---- .../src/views/common/StatusElapsedTime.vue | 28 +++++++++++++++++++ 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/kolibri/plugins/coach/assets/src/views/common/QuizStatus.vue b/kolibri/plugins/coach/assets/src/views/common/QuizStatus.vue index 9c3ec7475b8..23d88a3786a 100644 --- a/kolibri/plugins/coach/assets/src/views/common/QuizStatus.vue +++ b/kolibri/plugins/coach/assets/src/views/common/QuizStatus.vue @@ -82,16 +82,23 @@ > - {{ $tr('reportVisibleToLearnersLabel') }} + {{ $tr('reportVisibleToLearnersLabel') }} + Date: Mon, 30 Sep 2024 15:18:57 -0500 Subject: [PATCH 6/8] Update preview button and quiz summary options --- .../assets/src/views/common/QuizLessonDetailsHeader.vue | 1 + .../coach/assets/src/views/common/StatusElapsedTime.vue | 2 +- .../views/plan/QuizSummaryPage/QuizOptionsDropdownMenu.vue | 6 +++--- .../coach/assets/src/views/plan/QuizSummaryPage/index.vue | 4 ++++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/kolibri/plugins/coach/assets/src/views/common/QuizLessonDetailsHeader.vue b/kolibri/plugins/coach/assets/src/views/common/QuizLessonDetailsHeader.vue index 539bbb0eb5d..bc13a4a914d 100644 --- a/kolibri/plugins/coach/assets/src/views/common/QuizLessonDetailsHeader.vue +++ b/kolibri/plugins/coach/assets/src/views/common/QuizLessonDetailsHeader.vue @@ -20,6 +20,7 @@ /> - - + diff --git a/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue b/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue index 3078b353cd3..83bd1b70c03 100644 --- a/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue +++ b/kolibri/plugins/coach/assets/src/views/plan/QuizSummaryPage/index.vue @@ -12,6 +12,10 @@ examOrLesson="exam" >