MDL-45073 report_log: Fixed activity report

1. Wrong reader class check and api
2. Passing logreader parameter for graph
3. Using proper time from for all log and today's log
This commit is contained in:
Rajesh Taneja 2014-04-14 11:39:50 +08:00
parent 1a727e121e
commit cfb804d8cd
3 changed files with 19 additions and 12 deletions

View File

@ -121,7 +121,7 @@ if ($type === "usercourse.png") {
$timestart = $timefinish;
}
$rawlogs = report_log_usercourse($user->id, $courseselect, $coursestart);
$rawlogs = report_log_usercourse($user->id, $courseselect, $coursestart, $logreader);
if (empty($rawlogs)) {
return;
@ -185,7 +185,7 @@ if ($type === "usercourse.png") {
$hours[$i] = $i;
}
$rawlogs = report_log_userday($user->id, $courseselect, $daystart);
$rawlogs = report_log_userday($user->id, $courseselect, $daystart, $logreader);
if (empty($rawlogs)) {
return;

View File

@ -44,7 +44,6 @@ require_once(dirname(__FILE__).'/lib.php');
* @return void
*/
function report_log_print_graph($course, $userid, $type, $date=0, $logreader='') {
// If reader is not a sql_reader and not legacy store then don't show graph.
$logmanager = get_log_manager();
$readers = $logmanager->get_readers();
@ -53,8 +52,9 @@ function report_log_print_graph($course, $userid, $type, $date=0, $logreader='')
} else {
$reader = $readers[$logreader];
}
if (!($reader instanceof core\log\sql_select_reader)) {
return;
// If reader is not a sql_internal_reader and not legacy store then don't show graph.
if (!($reader instanceof \core\log\sql_internal_reader) && !($reader instanceof logstore_legacy\log\store)) {
return array();
}
$url = new moodle_url('/report/log/graph.php', array('id' => $course->id, 'user' => $userid, 'type' => $type,
@ -82,8 +82,8 @@ function report_log_usercourse($userid, $courseid, $coursestart, $logreader = ''
$reader = $readers[$logreader];
}
// If reader is not a sql_reader and not legacy store then return.
if (!($reader instanceof \core\log\sql_reader) && !($reader instanceof logstore_legacy\log\store)) {
// If reader is not a sql_internal_reader and not legacy store then return.
if (!($reader instanceof \core\log\sql_internal_reader) && !($reader instanceof logstore_legacy\log\store)) {
return array();
}
@ -93,7 +93,7 @@ function report_log_usercourse($userid, $courseid, $coursestart, $logreader = ''
$timefield = 'time';
$coursefield = 'course';
} else {
$logtable = $reader->get_log_table();
$logtable = $reader->get_internal_log_table_name();
$timefield = 'timecreated';
$coursefield = 'courseid';
}
@ -131,8 +131,8 @@ function report_log_userday($userid, $courseid, $daystart, $logreader = '') {
$reader = $readers[$logreader];
}
// If reader is not a sql_reader and not legacy store then return.
if (!($reader instanceof \core\log\sql_reader) && !($reader instanceof logstore_legacy\log\store)) {
// If reader is not a sql_internal_reader and not legacy store then return.
if (!($reader instanceof \core\log\sql_internal_reader) && !($reader instanceof logstore_legacy\log\store)) {
return array();
}
@ -143,7 +143,7 @@ function report_log_userday($userid, $courseid, $daystart, $logreader = '') {
$timefield = 'time';
$coursefield = 'course';
} else {
$logtable = $reader->get_log_table();
$logtable = $reader->get_internal_log_table_name();
$timefield = 'timecreated';
$coursefield = 'courseid';
}

View File

@ -80,9 +80,16 @@ $event->trigger();
echo $OUTPUT->header();
// Time to filter records from.
if ($mode === 'today') {
$timefrom = usergetmidnight(time());
} else {
$timefrom = 0;
}
$output = $PAGE->get_renderer('report_log');
$reportlog = new report_log_renderable($logreader, $course, $user->id, 0, '', -1, -1, false, false, true, false, $PAGE->url,
usergetmidnight(time()), '', $page, $perpage, 'timecreated DESC');
$timefrom, '', $page, $perpage, 'timecreated DESC');
$reportlog->setup_table();
$reportlog->tablelog->is_downloadable(false);
echo $output->reader_selector($reportlog);