From bbe3a4882df2f5d94261dc17e7d0cc3d7a52536e Mon Sep 17 00:00:00 2001 From: Jun Pataleta Date: Tue, 30 Mar 2021 09:52:26 +0800 Subject: [PATCH] MDL-71144 mod_assign: Deprecate assign_get_completion_state() --- mod/assign/deprecatedlib.php | 59 ++++++++++++++++++++++++++++++++++++ mod/assign/lib.php | 32 ++----------------- 2 files changed, 61 insertions(+), 30 deletions(-) create mode 100644 mod/assign/deprecatedlib.php diff --git a/mod/assign/deprecatedlib.php b/mod/assign/deprecatedlib.php new file mode 100644 index 00000000000..d550bf23996 --- /dev/null +++ b/mod/assign/deprecatedlib.php @@ -0,0 +1,59 @@ +. + +/** + * List of deprecated mod_assign functions. + * + * @package mod_assign + * @copyright 2021 Jun Pataleta + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +/** + * Obtains the automatic completion state for this module based on any conditions + * in assign settings. + * + * @deprecated since Moodle 3.11 + * @todo MDL-71196 Final deprecation in Moodle 4.3 + * @see \mod_assign\completion\custom_completion + * @param object $course Course + * @param object $cm Course-module + * @param int $userid User ID + * @param bool $type Type of comparison (or/and; can be used as return value if no conditions) + * @return bool True if completed, false if not, $type if conditions not set. + */ +function assign_get_completion_state($course, $cm, $userid, $type) { + global $CFG; + + // No need to call debugging here. Deprecation debugging notice already being called in \completion_info::internal_get_state(). + + require_once($CFG->dirroot . '/mod/assign/locallib.php'); + + $assign = new assign(null, $cm, $course); + + // If completion option is enabled, evaluate it and return true/false. + if ($assign->get_instance()->completionsubmit) { + if ($assign->get_instance()->teamsubmission) { + $submission = $assign->get_group_submission($userid, 0, false); + } else { + $submission = $assign->get_user_submission($userid, false); + } + return $submission && $submission->status == ASSIGN_SUBMISSION_STATUS_SUBMITTED; + } else { + // Completion option is not enabled so just return $type. + return $type; + } +} diff --git a/mod/assign/lib.php b/mod/assign/lib.php index f5a088e0925..e6f17f4956d 100644 --- a/mod/assign/lib.php +++ b/mod/assign/lib.php @@ -25,6 +25,8 @@ */ defined('MOODLE_INTERNAL') || die(); +require_once(__DIR__ . '/deprecatedlib.php'); + /** * Adds an assignment instance * @@ -1293,36 +1295,6 @@ function assign_user_outline($course, $user, $coursemodule, $assignment) { return $result; } -/** - * Obtains the automatic completion state for this module based on any conditions - * in assign settings. - * - * @param object $course Course - * @param object $cm Course-module - * @param int $userid User ID - * @param bool $type Type of comparison (or/and; can be used as return value if no conditions) - * @return bool True if completed, false if not, $type if conditions not set. - */ -function assign_get_completion_state($course, $cm, $userid, $type) { - global $CFG, $DB; - require_once($CFG->dirroot . '/mod/assign/locallib.php'); - - $assign = new assign(null, $cm, $course); - - // If completion option is enabled, evaluate it and return true/false. - if ($assign->get_instance()->completionsubmit) { - if ($assign->get_instance()->teamsubmission) { - $submission = $assign->get_group_submission($userid, 0, false); - } else { - $submission = $assign->get_user_submission($userid, false); - } - return $submission && $submission->status == ASSIGN_SUBMISSION_STATUS_SUBMITTED; - } else { - // Completion option is not enabled so just return $type. - return $type; - } -} - /** * Serves intro attachment files. *