diff --git a/mod/workshop/locallib.php b/mod/workshop/locallib.php index a534f4c5cd4..3d7781938a6 100644 --- a/mod/workshop/locallib.php +++ b/mod/workshop/locallib.php @@ -1169,6 +1169,37 @@ class workshop { return $DB->get_records_sql($sql, $params); } + /** + * Get allocated assessments not graded yet by the given reviewer + * + * @see self::get_assessments_by_reviewer() + * @param int $reviewerid the reviewer id + * @param null|int|array $exclude optional assessment id (or list of them) to be excluded + * @return array + */ + public function get_pending_assessments_by_reviewer($reviewerid, $exclude = null) { + + $assessments = $this->get_assessments_by_reviewer($reviewerid); + + foreach ($assessments as $id => $assessment) { + if (!is_null($assessment->grade)) { + unset($assessments[$id]); + continue; + } + if (!empty($exclude)) { + if (is_array($exclude) and in_array($id, $exclude)) { + unset($assessments[$id]); + continue; + } else if ($id == $exclude) { + unset($assessments[$id]); + continue; + } + } + } + + return $assessments; + } + /** * Allocate a submission to a user for review *