Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 7
CRAP
0.00% covered (danger)
0.00%
0 / 1
grades_exported
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 7
72
0.00% covered (danger)
0.00%
0 / 1
 init
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 get_name
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 get_description
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 get_url
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 validate_data
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 get_objectid_mapping
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 get_other_mapping
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2// This file is part of Moodle - https://moodle.org/
3//
4// Moodle is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// Moodle is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with Moodle.  If not, see <https://www.gnu.org/licenses/>.
16
17namespace local_finalgrades\event;
18
19/**
20 * Final grades were exported for the student records system.
21 *
22 * @package    local_finalgrades
23 * @copyright  2026 DevLMS <contact@devlms.com>
24 * @license    https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
25 */
26class grades_exported extends \core\event\base {
27    /**
28     * Set basic properties.
29     */
30    protected function init() {
31        $this->data['crud'] = 'c';
32        $this->data['edulevel'] = self::LEVEL_OTHER;
33        $this->data['objecttable'] = 'local_finalgrades_export';
34    }
35
36    /**
37     * Event name.
38     *
39     * @return string
40     */
41    public static function get_name() {
42        return get_string('event:exported', 'local_finalgrades');
43    }
44
45    /**
46     * Description for the logs.
47     *
48     * @return string
49     */
50    public function get_description() {
51        return "Final grades export with id '{$this->objectid}' was made with {$this->other['rowcount']} rows.";
52    }
53
54    /**
55     * Link to the exports page.
56     *
57     * @return \moodle_url
58     */
59    public function get_url() {
60        return new \moodle_url('/local/finalgrades/exports.php');
61    }
62
63    /**
64     * Check the event data.
65     */
66    protected function validate_data() {
67        parent::validate_data();
68        if (!isset($this->other['rowcount'])) {
69            throw new \coding_exception('The \'rowcount\' value must be set in other.');
70        }
71    }
72
73    /**
74     * Restore mapping of the export row.
75     *
76     * @return array
77     */
78    public static function get_objectid_mapping() {
79        return ['db' => 'local_finalgrades_export', 'restore' => \core\event\base::NOT_MAPPED];
80    }
81
82    /**
83     * Restore mapping of other values.
84     *
85     * @return bool
86     */
87    public static function get_other_mapping() {
88        return false;
89    }
90}