MDL-41585 badges: Add a note that badge recipient is a deleted user
authorYuliya Bozhko <yuliya.bozhko@totaralms.com>
Thu, 20 Feb 2014 19:36:57 +0000 (08:36 +1300)
committerYuliya Bozhko <yuliya.bozhko@totaralms.com>
Mon, 24 Feb 2014 01:57:40 +0000 (14:57 +1300)
Signed-off-by: Yuliya Bozhko <yuliya.bozhko@totaralms.com>
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';