Integrate Enhanced Tutor Times Dashboard into 10.0.x#1079
Open
rammakablecode wants to merge 4 commits intodoubtfire-lms:10.0.xfrom
Open
Integrate Enhanced Tutor Times Dashboard into 10.0.x#1079rammakablecode wants to merge 4 commits intodoubtfire-lms:10.0.xfrom
rammakablecode wants to merge 4 commits intodoubtfire-lms:10.0.xfrom
Conversation
b0ink
requested changes
Feb 4, 2026
Member
b0ink
left a comment
There was a problem hiding this comment.
The angular module file seems to have a couple import issues, causing the build to fail, can you fix this?
Comment on lines
-292
to
+296
| // import {GradeTaskModalComponent} from './tasks/modals/grade-task-modal/grade-task-modal.component'; | ||
| // import {PrivacyPolicy} from './config/privacy-policy/privacy-policy'; | ||
| import {GradeTaskModalComponent} from './tasks/modals/grade-task-modal/grade-task-modal.component'; | ||
| import {PrivacyPolicy} from './config/privacy-policy/privacy-policy'; |
Member
There was a problem hiding this comment.
Revert this change and comment these imports out, as I believe these components are not yet present in 10.0.x
| MatDialogModuleNew, | ||
| CalendarModule.forRoot({provide: CalendarDateAdapter, useFactory: adapterFactory}), | ||
| CodeEditorModule.forRoot(), | ||
| // HEAD (Main Branch) additions: |
| NgxGanttModule, | ||
| MatSidenavModule, | ||
| MonacoEditorModule.forRoot(), | ||
| // Feature Branch additions: |
Comment on lines
+315
to
+317
| // Feature Branch Imports | ||
| import {CommonModule} from '@angular/common'; | ||
| import {NgxChartsModule} from '@swimlane/ngx-charts'; |
Member
There was a problem hiding this comment.
Remove comment and move these imports to line 10.
Does the CommonModule need to be imported?
| (this.selectedUserId === null || e.userId === this.selectedUserId) && | ||
| (!this.hideSessionsDuringTutorials || !e.duringTutorial) && | ||
| e.duration >= 1, | ||
| e.duration >= 0, |
Member
There was a problem hiding this comment.
We filter out sessions with less than 1 minute duration to hide any sessions that have ended but had no real activity
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
References:
Approved PR: thoth-tech#444
Depends on approved api PR: thoth-tech/doubtfire-api#83
Description
This PR integrates the approved enhancements from PR #444 into the 10.0.x branch. It transforms the Tutor Analytics view from a simple calendar timetable into a comprehensive data dashboard, leveraging the duration_minutes backend logic introduced in PR #83.
Key Motivations:
The frontend no longer performs time-delta calculations thanks to backend-calculated duration_minutes. Only filtering and O(n) calculations remain client-side.
Grouped bar charts show trends in time spent and tasks assessed over time.
At-a-glance metrics:
Summary tiles display total hours, submissions opened, assessments made, and average minutes per assessment.
Dependencies
Type of change
How Has This Been Tested?
Production build:
ng build --configuration productionpasses (AOT-safe)Linting:
npm run lintpasses (fixed any usage and unused imports)Date ranges: Custom ranges correctly include every day, even with zero activity
Zero safety: Efficiency shows 0 instead of NaN when no assessments exist
Filtering: Selecting a tutor updates both summary cards and charts
Testing Checklist:
Checklist: