Skip to content

Commit 800a1dc

Browse files
committed
Merge branch 'master' of github.com:chamilo/chamilo-lms
2 parents bbdccc1 + 3001ea7 commit 800a1dc

7 files changed

Lines changed: 761 additions & 373 deletions

File tree

public/main/inc/ajax/statistics.ajax.php

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -928,10 +928,10 @@
928928
$rows[] = [
929929
get_lang('Number of users registered (new vs previous quarter)'),
930930
'-',
931-
'+'.($countUsersPre1Quarter - $countUsersPre2Quarter),
932-
'+'.($countUsersPre2Quarter - $countUsersPre3Quarter),
933-
'+'.($countUsersPre3Quarter - $countUsersPre4Quarter),
934931
'+'.($countUsersPre4Quarter - $countUsersPre5Quarter),
932+
'+'.($countUsersPre3Quarter - $countUsersPre4Quarter),
933+
'+'.($countUsersPre2Quarter - $countUsersPre3Quarter),
934+
'+'.($countUsersPre1Quarter - $countUsersPre2Quarter),
935935
'-',
936936
'+'.($countUsersTotal - $countUsersPre1Quarter),
937937
];
@@ -1064,6 +1064,9 @@
10641064
case 'report_quarterly_hours_of_training':
10651065
// Close the session as we don't need it any further
10661066
session_write_close();
1067+
// The maximum time spent, in number of hours, to be considered.
1068+
// Anything above that is considered a time registration error.
1069+
$maxTimeSpent = 6;
10671070
$currentQuarterDates = getQuarterDates();
10681071
$pre1QuarterDates = getQuarterDates(
10691072
date_create($currentQuarterDates['quarter_start'])
@@ -1104,27 +1107,33 @@
11041107
// Get data for the row
11051108
$timeSpentCoursesCurrentQuarter = Tracking::getTotalTimeSpentInCourses(
11061109
$currentQuarterDates['quarter_start'],
1107-
$currentQuarterDates['quarter_end']
1110+
$currentQuarterDates['quarter_end'],
1111+
$maxTimeSpent
11081112
);
11091113
$timeSpentCourses1PreQuarter = Tracking::getTotalTimeSpentInCourses(
11101114
$pre1QuarterDates['quarter_start'],
1111-
$pre1QuarterDates['quarter_end']
1115+
$pre1QuarterDates['quarter_end'],
1116+
$maxTimeSpent
11121117
);
11131118
$timeSpentCourses2PreQuarter = Tracking::getTotalTimeSpentInCourses(
11141119
$pre2QuarterDates['quarter_start'],
1115-
$pre2QuarterDates['quarter_end']
1120+
$pre2QuarterDates['quarter_end'],
1121+
$maxTimeSpent
11161122
);
11171123
$timeSpentCourses3PreQuarter = Tracking::getTotalTimeSpentInCourses(
11181124
$pre3QuarterDates['quarter_start'],
1119-
$pre3QuarterDates['quarter_end']
1125+
$pre3QuarterDates['quarter_end'],
1126+
$maxTimeSpent
11201127
);
11211128
$timeSpentCourses4PreQuarter = Tracking::getTotalTimeSpentInCourses(
11221129
$pre4QuarterDates['quarter_start'],
1123-
$pre4QuarterDates['quarter_end']
1130+
$pre4QuarterDates['quarter_end'],
1131+
$maxTimeSpent
11241132
);
11251133
$timeSpentCourses5PreQuarter = Tracking::getTotalTimeSpentInCourses(
11261134
$pre5QuarterDates['quarter_start'],
1127-
$pre5QuarterDates['quarter_end']
1135+
$pre5QuarterDates['quarter_end'],
1136+
$maxTimeSpent
11281137
);
11291138
// Calculate percent for the row
11301139
$percentIncrementTimeSpent = api_calculate_increment_percent(

public/main/inc/lib/tracking.lib.php

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8222,7 +8222,8 @@ public static function getCourseQuizLastFinalizationDate(
82228222
*/
82238223
public static function getTotalTimeSpentInCourses(
82248224
string $dateFrom = '',
8225-
string $dateUntil = ''
8225+
string $dateUntil = '',
8226+
?int $maxTimeSpent = 6
82268227
): int {
82278228
$tableTrackLogin = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
82288229
$tableUrlRelUser = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
@@ -8240,12 +8241,21 @@ public static function getTotalTimeSpentInCourses(
82408241
$dateUntil = Database::escape_string($dateUntil);
82418242
$conditionTime = " (login_course_date >= '$dateFrom' AND logout_course_date <= '$dateUntil' ) ";
82428243
}
8243-
$sql = "SELECT SUM(TIMESTAMPDIFF(HOUR, login_course_date, logout_course_date)) diff
8244+
$sql = "SELECT TIMESTAMPDIFF(HOUR, login_course_date, logout_course_date) diff
82448245
FROM $tableTrackLogin u $tableUrl
82458246
WHERE $conditionTime $urlCondition";
82468247
$rs = Database::query($sql);
8247-
$row = Database::fetch_array($rs, 'ASSOC');
8248-
$diff = $row['diff'];
8248+
$diff = 0;
8249+
if (!empty($rs)) {
8250+
while ($row = Database::fetch_array($rs)) {
8251+
// Anything above $maxTimeSpent is rounded down to $maxTimeSpent hours
8252+
if ($row['diff'] <= $maxTimeSpent) {
8253+
$diff += $row['diff'];
8254+
} else {
8255+
$diff += $maxTimeSpent;
8256+
}
8257+
}
8258+
}
82498259
if ($diff >= 0 and !empty($diff)) {
82508260
return $diff;
82518261
}

public/main/lp/lp_view.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,9 @@
477477
$template->assign('teacher_toc_buttons', $get_teacher_buttons);
478478
$template->assign('iframe_src', $src);
479479
$template->assign('navigation_bar_bottom', $navigation_bar_bottom);
480-
$template->assign('show_left_column', !$lp->getHideTocFrame());
480+
$tocHidden = (bool) $lp->getHideTocFrame();
481+
$template->assign('toc_hidden', (int) $tocHidden);
482+
$template->assign('show_left_column', $tocHidden ? 0 : 1);
481483

482484
$showMenu = 0;
483485
$settings = api_get_setting('lp.lp_view_settings', true);

0 commit comments

Comments
 (0)