diff --git a/badges/recipients.php b/badges/recipients.php index 4e77e3d253e..1e31410d175 100644 --- a/badges/recipients.php +++ b/badges/recipients.php @@ -91,7 +91,7 @@ $namefields = get_all_user_name_fields(true, 'u'); $sql = "SELECT b.userid, b.dateissued, b.uniquehash, $namefields FROM {badge_issued} b INNER JOIN {user} u ON b.userid = u.id - WHERE b.badgeid = :badgeid + WHERE b.badgeid = :badgeid AND u.deleted = 0 ORDER BY $sortby $sorthow"; $totalcount = $DB->count_records('badge_issued', array('badgeid' => $badge->id)); diff --git a/badges/renderer.php b/badges/renderer.php index 10bfe2a12ce..35ebdd3d1bf 100644 --- a/badges/renderer.php +++ b/badges/renderer.php @@ -663,7 +663,9 @@ class core_badges_renderer extends plugin_renderer_base { } if (has_capability('moodle/badges:viewawarded', $context)) { - $awarded = $DB->count_records('badge_issued', array('badgeid' => $badgeid)); + $awarded = $DB->count_records_sql('SELECT COUNT(b.userid) + FROM {badge_issued} b INNER JOIN {user} u ON b.userid = u.id + WHERE b.badgeid = :badgeid AND u.deleted = 0', array('badgeid' => $badgeid)); $row[] = new tabobject('awards', new moodle_url('/badges/recipients.php', array('id' => $badgeid)), get_string('bawards', 'badges', $awarded) diff --git a/lib/badgeslib.php b/lib/badgeslib.php index f233078b009..78425a02e90 100644 --- a/lib/badgeslib.php +++ b/lib/badgeslib.php @@ -349,7 +349,7 @@ class badge { 'SELECT b.userid, b.dateissued, b.uniquehash, u.firstname, u.lastname FROM {badge_issued} b INNER JOIN {user} u ON b.userid = u.id - WHERE b.badgeid = :badgeid', array('badgeid' => $this->id)); + WHERE b.badgeid = :badgeid AND u.deleted = 0', array('badgeid' => $this->id)); return $awards; } @@ -815,7 +815,9 @@ function badges_get_badges($type, $courseid = 0, $sort = '', $dir = '', $page = $badges[$r->id]->dateissued = $r->dateissued; $badges[$r->id]->uniquehash = $r->uniquehash; } else { - $badges[$r->id]->awards = $DB->count_records('badge_issued', array('badgeid' => $badge->id)); + $badges[$r->id]->awards = $DB->count_records_sql('SELECT COUNT(b.userid) + FROM {badge_issued} b INNER JOIN {user} u ON b.userid = u.id + WHERE b.badgeid = :badgeid AND u.deleted = 0', array('badgeid' => $badge->id)); $badges[$r->id]->statstring = $badge->get_status_name(); } }