diff --git a/mod/assign/gradingtable.php b/mod/assign/gradingtable.php index 70c22871dfb..06a9ce49a9a 100644 --- a/mod/assign/gradingtable.php +++ b/mod/assign/gradingtable.php @@ -727,10 +727,18 @@ class assign_grading_table extends table_sql implements renderable { if (!$this->is_downloading()) { $courseid = $this->assignment->get_course()->id; $link= new moodle_url('/user/view.php', array('id' =>$row->id, 'course'=>$courseid)); - return $this->output->action_link($link, fullname($row)); + $fullname = $this->output->action_link($link, fullname($row)); } else { - return fullname($row); + $fullname = fullname($row); } + + if (in_array($row->id, $this->assignment->susers)) { + $suspendedstring = get_string('userenrolmentsuspended', 'grades'); + $fullname .= ' '.html_writer::empty_tag('img', array('src' => $this->output->pix_url('i/enrolmentsuspended'), + 'title' => $suspendedstring, 'alt' => $suspendedstring, 'class' => 'usersuspendedicon')); + $fullname = html_writer::tag('span', $fullname, array('class' => 'usersuspended')); + } + return $fullname; } /** diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index b508bb283b3..7ef60451820 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -126,7 +126,7 @@ class assign { private $showonlyactiveenrol = true; /** @var array list of suspended user IDs in form of ([id1] => id1) */ - private $susers = array(); + public $susers = array(); /** * Constructor for the base assign class. @@ -2707,7 +2707,8 @@ class assign { $viewfullnames, $this->is_blind_marking(), $this->get_uniqueid_for_user($user->id), - get_extra_user_fields($this->get_context())); + get_extra_user_fields($this->get_context()), + in_array($userid, $this->susers)); $o .= $this->get_renderer()->render($usersummary); } $submission = $this->get_user_submission($userid, false, $attemptnumber); @@ -3380,7 +3381,8 @@ class assign { $this->get_course_context()), $this->is_blind_marking(), $this->get_uniqueid_for_user($user->id), - $extrauserfields)); + $extrauserfields, + in_array($userid, $this->susers))); $usercount += 1; } @@ -3431,10 +3433,11 @@ class assign { $usershtml .= $this->get_renderer()->render(new assign_user_summary($user, $this->get_course()->id, has_capability('moodle/site:viewfullnames', - $this->get_course_context()), + $this->get_course_context()), $this->is_blind_marking(), $this->get_uniqueid_for_user($user->id), - $extrauserfields)); + $extrauserfields, + in_array($userid, $this->susers))); $usercount += 1; } diff --git a/mod/assign/renderable.php b/mod/assign/renderable.php index 2056261f380..5e40398be74 100644 --- a/mod/assign/renderable.php +++ b/mod/assign/renderable.php @@ -125,6 +125,8 @@ class assign_user_summary implements renderable { public $uniqueidforuser; /** @var array $extrauserfields */ public $extrauserfields; + /** @var bool $suspendeduser */ + public $suspendeduser; /** * Constructor @@ -134,19 +136,22 @@ class assign_user_summary implements renderable { * @param bool $blindmarking * @param int $uniqueidforuser * @param array $extrauserfields + * @param bool $suspendeduser */ public function __construct(stdClass $user, $courseid, $viewfullnames, $blindmarking, $uniqueidforuser, - $extrauserfields) { + $extrauserfields, + $suspendeduser = false) { $this->user = $user; $this->courseid = $courseid; $this->viewfullnames = $viewfullnames; $this->blindmarking = $blindmarking; $this->uniqueidforuser = $uniqueidforuser; $this->extrauserfields = $extrauserfields; + $this->suspendeduser = $suspendeduser; } } diff --git a/mod/assign/renderer.php b/mod/assign/renderer.php index bd86e300beb..470ec5c7199 100644 --- a/mod/assign/renderer.php +++ b/mod/assign/renderer.php @@ -124,14 +124,23 @@ class mod_assign_renderer extends plugin_renderer_base { */ public function render_assign_user_summary(assign_user_summary $summary) { $o = ''; + $supendedclass = ''; + $suspendedicon = ''; if (!$summary->user) { return; } + + if ($summary->suspendeduser) { + $supendedclass = ' usersuspended'; + $suspendedstring = get_string('userenrolmentsuspended', 'grades'); + $suspendedicon = ' '.html_writer::empty_tag('img', array('src' => $this->pix_url('i/enrolmentsuspended'), + 'title' => $suspendedstring, 'alt' => $suspendedstring, 'class' => 'usersuspendedicon')); + } $o .= $this->output->container_start('usersummary'); - $o .= $this->output->box_start('boxaligncenter usersummarysection'); + $o .= $this->output->box_start('boxaligncenter usersummarysection'.$supendedclass); if ($summary->blindmarking) { - $o .= get_string('hiddenuser', 'assign') . $summary->uniqueidforuser; + $o .= get_string('hiddenuser', 'assign') . $summary->uniqueidforuser.$suspendedicon; } else { $o .= $this->output->user_picture($summary->user); $o .= $this->output->spacer(array('width'=>30)); @@ -145,6 +154,7 @@ class mod_assign_renderer extends plugin_renderer_base { if (count($extrainfo)) { $fullname .= ' (' . implode(', ', $extrainfo) . ')'; } + $fullname .= $suspendedicon; $o .= $this->output->action_link($url, $fullname); } $o .= $this->output->box_end();