Skip to content

Commit

Permalink
Issue #78: Add look ahead and look in participant summary graph
Browse files Browse the repository at this point in the history
  • Loading branch information
guillogo committed Mar 10, 2021
1 parent d3a47df commit 47cbb23
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 12 deletions.
2 changes: 1 addition & 1 deletion amd/build/dashboard_quiz_inprogress.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion amd/build/dashboard_quiz_inprogress.min.js.map

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion amd/src/dashboard_quiz_inprogress.js
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,9 @@ function(Ajax, Templates, Fragment, ZoomModal, Str, Notification) {
let cardElement = document.getElementById(cardData.cardId);
let spinner = cardElement.getElementsByClassName('overlay-icon-container')[0];
let chartbody = cardElement.getElementsByClassName('chart-body')[0];
let params = {'data': JSON.stringify({'call': cardData.call})};
let params = {
'data': JSON.stringify({'call': cardData.call, 'hoursahead': hoursAhead, 'hoursbehind': hoursBehind
})};

spinner.classList.remove('hide'); // Show sinner if not already shown.
Fragment.loadFragment('local_assessfreq', 'get_quiz_inprogress_chart', contextid, params)
Expand Down
22 changes: 19 additions & 3 deletions classes/output/all_participants_inprogress.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,34 @@ class all_participants_inprogress {
* @param int $now Timestamp to get chart data for.
* @return array With Generated chart object and chart data status.
*/
public function get_all_participants_inprogress_chart(int $now): array {
public function get_all_participants_inprogress_chart(int $now, int $hoursahead = 0, int $hoursbehind = 0): array {

// Get quizzes for the supplied timestamp.
$quiz = new quiz();
$quiz = new quiz($hoursahead, $hoursbehind);
$quizzes = $quiz->get_quiz_summaries($now);

$inprogressquizzes = $quizzes['inprogress'];
$upcommingquizzes = $quizzes['upcomming'];
$finishedquizzes = $quizzes['finished'];

foreach ($upcommingquizzes as $key=>$upcommingquiz) {
foreach ($upcommingquiz as $keyupcomming=>$upcomming) {
$inprogressquizzes[$keyupcomming] = $upcomming;
}
}

foreach ($finishedquizzes as $key=>$finishedquiz) {
foreach ($finishedquiz as $keyfinished=>$finished) {
$inprogressquizzes[$keyfinished] = $finished;
}
}

$notloggedin = 0;
$loggedin = 0;
$inprogress = 0;
$finished = 0;

foreach ($quizzes['inprogress'] as $quizobj) {
foreach ($inprogressquizzes as $quizobj) {
if (!empty($quizobj->tracking)) {
$notloggedin += $quizobj->tracking->notloggedin;
$loggedin += $quizobj->tracking->loggedin;
Expand Down
11 changes: 6 additions & 5 deletions classes/output/renderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,8 @@ public function render_student_search_table(
* @param string $direction The direction to sort the quizzes.
* @return string $output HTML for the table.
*/
public function render_quizzes_inprogress_table(string $search, int $page, string $sorton, string $direction, int $hoursahead = 0, int $hoursbehind = 0): string {
public function render_quizzes_inprogress_table(string $search, int $page, string $sorton, string $direction,
int $hoursahead = 0, int $hoursbehind = 0): string {
$context = \context_system::instance(); // TODO: pass the actual context in from the caller.
$now = time();
$quiz = new quiz($hoursahead, $hoursbehind);
Expand All @@ -148,14 +149,14 @@ public function render_quizzes_inprogress_table(string $search, int $page, strin
$upcommingquizzes = $quizzes['upcomming'];
$finishedquizzes = $quizzes['finished'];

foreach ($upcommingquizzes as $key=>$upcommingquiz) {
foreach ($upcommingquiz as $keyupcomming=>$upcomming) {
foreach ($upcommingquizzes as $key => $upcommingquiz) {
foreach ($upcommingquiz as $keyupcomming => $upcomming) {
$inprogressquizzes[$keyupcomming] = $upcomming;
}
}

foreach ($finishedquizzes as $key=>$finishedquiz) {
foreach ($finishedquiz as $keyfinished=>$finished) {
foreach ($finishedquizzes as $key => $finishedquiz) {
foreach ($finishedquiz as $keyfinished => $finished) {
$inprogressquizzes[$keyfinished] = $finished;
}
}
Expand Down
12 changes: 12 additions & 0 deletions classes/quiz.php
Original file line number Diff line number Diff line change
Expand Up @@ -478,6 +478,10 @@ public function get_quiz_summaries(int $now): array {
$quizdata->overrides = $quiz->overrides;
}

// Get tracked users for quiz.
$trackedrecords = $this->get_quiz_tracking($quiz->id);
$quizdata->tracking = array_pop($trackedrecords);

$quizzes['upcomming'][$time][$quiz->id] = $quizdata;
unset($trackedquizzes[$quiz->id]);
} else {
Expand All @@ -492,6 +496,10 @@ public function get_quiz_summaries(int $now): array {
$quizdata->overrides = $quiz->overrides;
}

// Get tracked users for quiz.
$trackedrecords = $this->get_quiz_tracking($quiz->id);
$quizdata->tracking = array_pop($trackedrecords);

$quizzes['inprogress'][$quiz->id] = $quizdata;
unset($trackedquizzes[$quiz->id]);
}
Expand Down Expand Up @@ -519,6 +527,10 @@ public function get_quiz_summaries(int $now): array {
$quizdata->overrides = $quiz->overrides;
}

// Get tracked users for quiz.
$trackedrecords = $this->get_quiz_tracking($quiz->id);
$quizdata->tracking = array_pop($trackedrecords);

$quizzes['finished'][$time][$quiz->id] = $quizdata;
unset($trackedquizzes[$quiz->id]);
}
Expand Down
Loading

0 comments on commit 47cbb23

Please sign in to comment.