From 4ed4be49884c47e83da6451505ea4531594d922e Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Thu, 9 Jun 2016 08:52:08 +0800 Subject: [PATCH] MDL-54873 assign: Fetch mapping id for blind marking grading This change modifies the grading table to pre-seed record ids where they already exist. Where they do not exist, they are still fetched. --- mod/assign/gradingtable.php | 26 +++++++++++++++++++++----- mod/assign/locallib.php | 6 +++++- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/mod/assign/gradingtable.php b/mod/assign/gradingtable.php index 8dfae963ca3..85b02d98f90 100644 --- a/mod/assign/gradingtable.php +++ b/mod/assign/gradingtable.php @@ -176,7 +176,15 @@ class assign_grading_table extends table_sql implements renderable { $from .= 'LEFT JOIN {assign_user_flags} uf ON u.id = uf.userid - AND uf.assignment = :assignmentid3'; + AND uf.assignment = :assignmentid3 '; + + if (!empty($this->assignment->get_instance()->blindmarking)) { + $from .= 'LEFT JOIN {assign_user_mapping} um + ON u.id = um.userid + AND um.assignment = :assignmentid4 '; + $params['assignmentid4'] = (int)$this->assignment->get_instance()->id; + $fields .= ', um.id as recordid '; + } $userparams = array(); $userindex = 0; @@ -463,8 +471,10 @@ class assign_grading_table extends table_sql implements renderable { * @return string */ public function col_recordid(stdClass $row) { - return get_string('hiddenuser', 'assign') . - $this->assignment->get_uniqueid_for_user($row->userid); + if (empty($row->recordid)) { + $row->recordid = $this->assignment->get_uniqueid_for_user($row->userid); + } + return get_string('hiddenuser', 'assign') . $row->recordid; } @@ -838,7 +848,10 @@ class assign_grading_table extends table_sql implements renderable { 'action' => 'grader'); if ($this->assignment->is_blind_marking()) { - $urlparams['blindid'] = $this->assignment->get_uniqueid_for_user($row->userid); + if (empty($row->recordid)) { + $row->recordid = $this->assignment->get_uniqueid_for_user($row->userid); + } + $urlparams['blindid'] = $row->recordid; } else { $urlparams['userid'] = $row->userid; } @@ -1015,7 +1028,10 @@ class assign_grading_table extends table_sql implements renderable { 'action' => 'grader'); if ($this->assignment->is_blind_marking()) { - $urlparams['blindid'] = $this->assignment->get_uniqueid_for_user($row->userid); + if (empty($row->recordid)) { + $row->recordid = $this->assignment->get_uniqueid_for_user($row->userid); + } + $urlparams['blindid'] = $row->recordid; } else { $urlparams['userid'] = $row->userid; } diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index 4419562a82b..4775b171db6 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -3921,7 +3921,11 @@ class assign { public function fullname($user) { if ($this->is_blind_marking()) { $hasviewblind = has_capability('mod/assign:viewblinddetails', $this->get_context()); - $uniqueid = $this->get_uniqueid_for_user($user->id); + if (empty($user->recordid)) { + $uniqueid = $this->get_uniqueid_for_user($user->id); + } else { + $uniqueid = $user->recordid; + } if ($hasviewblind) { return get_string('participant', 'assign') . ' ' . $uniqueid . ' (' . fullname($user) . ')'; } else {