AutorÃa | Ultima modificación | Ver Log |
<?php// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>.namespace tool_courserating\form;use context;use core_form\dynamic_form;use moodle_url;use tool_courserating\api;use tool_courserating\local\models\rating;use tool_courserating\permission;/*** Form for deleting a rating (by manager)** @package tool_courserating* @copyright 2022 Marina Glancy <marina.glancy@gmail.com>* @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/class deleterating extends dynamic_form {/** @var rating */protected $rating;/*** Id of the current rating** @return int*/protected function get_rating_id(): int {$id = $this->optional_param('ratingid', 0, PARAM_INT);if ($id <= 0) {throw new \moodle_exception('missingparam', '', '', 'ratingid');}return $id;}/*** Current rating** @return rating*/protected function get_rating(): rating {if (!$this->rating) {$this->rating = new rating($this->get_rating_id());}return $this->rating;}/*** Current context** @return \context*/protected function get_context_for_dynamic_submission(): context {return \context_course::instance($this->get_rating()->get('courseid'));}/*** Check access and throw exception if not allowed** @return void* @throws \moodle_exception*/protected function check_access_for_dynamic_submission(): void {permission::require_can_delete_rating($this->get_rating_id(), $this->get_rating()->get('courseid'));}/*** Process submission** @return mixed|void*/public function process_dynamic_submission() {$rv = ['ratingid' => $this->get_rating_id(), 'courseid' => $this->get_rating()->get('courseid')];api::delete_rating($this->get_rating_id(), $this->get_data()->reason);return $rv;}/*** Load in existing data as form defaults*/public function set_data_for_dynamic_submission(): void {$this->set_data(['ratingid' => $this->get_rating_id()]);}/*** Fake URL for atto auto-save** @return moodle_url*/protected function get_page_url_for_dynamic_submission(): moodle_url {return new moodle_url('/course/view.php',['id' => $this->get_rating()->get('courseid'), 'deleterating' => $this->get_rating_id()]);}/*** Form definition*/protected function definition() {$mform = $this->_form;$mform->addElement('hidden', 'ratingid');$mform->setType('ratingid', PARAM_INT);$mform->addElement('textarea', 'reason', get_string('deletereason', 'tool_courserating'));$mform->setType('reason', PARAM_TEXT);$mform->addRule('reason', get_string('required'), 'required', null, 'client');}}