Merge branch 'MDL-41585' of https://github.com/totara/openbadges
authorDamyon Wiese <damyon@moodle.com>
Wed, 5 Mar 2014 05:17:18 +0000 (13:17 +0800)
committerDamyon Wiese <damyon@moodle.com>
Wed, 5 Mar 2014 05:17:18 +0000 (13:17 +0800)
badges/renderer.php
lang/en/badges.php

index 35ebdd3..afc6030 100644 (file)
@@ -279,7 +279,7 @@ class core_badges_renderer extends plugin_renderer_base {
 
     // Outputs issued badge with actions available.
     protected function render_issued_badge(issued_badge $ibadge) {
-        global $USER, $CFG, $DB;
+        global $USER, $CFG, $DB, $SITE;
         $issued = $ibadge->issued;
         $userinfo = $ibadge->recipient;
         $badgeclass = $ibadge->badgeclass;
@@ -316,11 +316,18 @@ class core_badges_renderer extends plugin_renderer_base {
 
         // Recipient information.
         $datatable->data[] = array($this->output->heading(get_string('recipientdetails', 'badges'), 3), '');
-        $datatable->data[] = array(get_string('name'), fullname($userinfo));
-        if (empty($userinfo->backpackemail)) {
-            $datatable->data[] = array(get_string('email'), obfuscate_mailto($userinfo->accountemail));
+        if ($userinfo->deleted) {
+            $strdata = new stdClass();
+            $strdata->user = fullname($userinfo);
+            $strdata->site = format_string($SITE->fullname, true, array('context' => context_system::instance()));
+            $datatable->data[] = array(get_string('name'), get_string('error:userdeleted', 'badges', $strdata));
         } else {
-            $datatable->data[] = array(get_string('email'), obfuscate_mailto($userinfo->backpackemail));
+            $datatable->data[] = array(get_string('name'), fullname($userinfo));
+            if (empty($userinfo->backpackemail)) {
+                $datatable->data[] = array(get_string('email'), obfuscate_mailto($userinfo->accountemail));
+            } else {
+                $datatable->data[] = array(get_string('email'), obfuscate_mailto($userinfo->backpackemail));
+            }
         }
 
         $datatable->data[] = array($this->output->heading(get_string('issuerdetails', 'badges'), 3), '');
@@ -938,7 +945,7 @@ class issued_badge implements renderable {
         if ($rec) {
             // Get a recipient from database.
             $namefields = get_all_user_name_fields(true, 'u');
-            $user = $DB->get_record_sql("SELECT u.id, $namefields,
+            $user = $DB->get_record_sql("SELECT u.id, $namefields, u.deleted,
                                                 u.email AS accountemail, b.email AS backpackemail
                         FROM {user} u LEFT JOIN {badge_backpack} b ON u.id = b.userid
                         WHERE u.id = :userid", array('userid' => $rec->userid));
index 2468cbd..c327e0f 100644 (file)
@@ -246,6 +246,7 @@ $string['error:personaneedsjs'] = 'Currently, Javascript is required to connect
 $string['error:requesttimeout'] = 'The connection request timed out before it could complete.';
 $string['error:requesterror'] = 'The connection request failed (error code {$a}).';
 $string['error:save'] = 'Cannot save the badge.';
+$string['error:userdeleted'] = '{$a->user} (This user no longer exists in {$a->site})';
 $string['evidence'] = 'Evidence';
 $string['existingrecipients'] = 'Existing badge recipients';
 $string['expired'] = 'Expired';