From 32da8f410f56a83424fa9e6e8252a928a03b031c Mon Sep 17 00:00:00 2001 From: mjollnir_ Date: Sun, 24 Sep 2006 22:13:31 +0000 Subject: [PATCH] fixed the dropdown menus in the detailed (user) reports (WHICH WORK!) --- course/report/stats/report.php | 66 +++++++--------------------------- 1 file changed, 12 insertions(+), 54 deletions(-) diff --git a/course/report/stats/report.php b/course/report/stats/report.php index 18b4831490..747449e5fb 100644 --- a/course/report/stats/report.php +++ b/course/report/stats/report.php @@ -24,65 +24,23 @@ $table->width = '*'; if ($mode == STATS_MODE_DETAILED) { - // if we have time, - // get all users from the stats table, joining on user, where they are smaller than us... or ourselves (or all, if admins) where timestuff. - // else - // get all users in this course (role_assignments) + $param = stats_get_parameters($time,null,$course->id,$mode); // we only care about the table and the time string (if we have time) + + $sql = 'SELECT DISTINCT s.userid,s.roleid,r.name AS rolename,r.sortorder,u.firstname,u.lastname,u.idnumber + FROM '.$CFG->prefix.'stats_user_'.$param->table.' s + JOIN '.$CFG->prefix.'user u ON u.id = s.userid + JoIN '.$CFG->prefix.'role r ON s.roleid = r.id + WHERE courseid = '.$course->id + . ((!empty($param->stattype)) ? ' AND stattype = \''.$param->stattype.'\'' : '') + . ((!empty($time)) ? ' AND timeend >= '.$param->timeafter : '') + .' ORDER BY r.sortorder'; - - - if (!empty($time)) { - $param = stats_get_parameters($time,null,$course->id,$mode); // we only care about the table and the time string. - $sql = 'SELECT DISTINCT s.userid,s.roleid,u.firstname,u.lastname,u.idnumber - FROM '.$CFG->prefix.'stats_user_'.$param->table.' s JOIN '.$CFG->prefix.'user u ON u.id = s.userid - WHERE courseid = '.$course->id.' AND timeend >= '.$param->timeafter - . ((!empty($param->stattype)) ? ' AND stattype = \''.$param->stattype.'\'' : ''); - if (!has_capability('moodle/site:viewreports', get_context_instance(CONTEXT_SYSTEM, SITEID))) { - $sql .= ' AND (s.roleid = 1 OR s.userid = '.$USER->id .")"; - } - $sql .= " ORDER BY s.roleid "; - } else { - $context = get_context_instance(CONTEXT_COURSE, $course->id); - - $sql = 'SELECT ra.userid,u.firstname,u.lastname,u.idnumber,1 AS roleid - FROM '.$CFG->prefix.'role_assignments ra, - '.$CFG->prefix.'user u - WHERE u.id = ra.userid - AND ra.contextid '.get_related_contexts_string($context); - } if (!$us = get_records_sql($sql)) { error('Cannot enter detailed view: No users found for this course.'); } - $admins = get_admins(); - foreach ($us as $u) { - $role = $course->student; - if ($u->roleid == 2) { - $role = $course->teacher; - } - if (array_key_exists($u->userid,$admins)) { - $role = get_string('admin'); - } - $users[$u->userid] = $role.' - '.fullname($u,true); - } - if (empty($time)) { - if (has_capability('moodle/site:viewreports', get_context_instance(CONTEXT_SYSTEM, SITEID))) { - $sql = 'SELECT t.userid,u.firstname,u.lastname,u.idnumber,1 AS roleid - FROM '.$CFG->prefix.'user_teachers t - JOIN '.$CFG->prefix.'user u ON u.id = t.userid WHERE course = '.$course->id; - $moreusers = get_records_sql($sql); - foreach ($moreusers as $u) { - $users[$u->userid] = $course->teacher .' - '.fullname($u,true); - } - } else { - $users[$USER->id] = $course->teacher.' - '.fullname($USER,true); - } - } - // make sure we sort so teachers are at the top. - if (strcmp($course->student,$course->teacher) < 0) { - arsort($users); - } else { - asort($users); + foreach ($us as $u) { + $users[$u->userid] = $u->rolename.' - '.fullname($u,true); } $table->align = array('left','left','left','left','left','left','left','left'); -- 2.39.5