Differences Between: [Versions 311 and 402]
1 <?php 2 // This file is part of Moodle - http://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 <http://www.gnu.org/licenses/>. 16 17 /** 18 * Contains the class for fetching the important dates in mod_assign for a given module instance and a user. 19 * 20 * @package mod_assign 21 * @copyright 2021 Shamim Rezaie <shamim@moodle.com> 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 declare(strict_types=1); 26 27 namespace mod_assign; 28 29 use core\activity_dates; 30 31 /** 32 * Class for fetching the important dates in mod_assign for a given module instance and a user. 33 * 34 * @copyright 2021 Shamim Rezaie <shamim@moodle.com> 35 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 36 */ 37 class dates extends activity_dates { 38 39 /** 40 * Returns a list of important dates in mod_assign 41 * 42 * @return array 43 */ 44 protected function get_dates(): array { 45 global $CFG; 46 47 require_once($CFG->dirroot . '/mod/assign/locallib.php'); 48 49 $course = get_course($this->cm->course); 50 $context = \context_module::instance($this->cm->id); 51 $assign = new \assign($context, $this->cm, $course); 52 53 $timeopen = $this->cm->customdata['allowsubmissionsfromdate'] ?? null; 54 $timedue = $this->cm->customdata['duedate'] ?? null; 55 56 $activitygroup = groups_get_activity_group($this->cm, true); 57 if ($activitygroup) { 58 if ($assign->can_view_grades()) { 59 $groupoverride = \cache::make('mod_assign', 'overrides')->get("{$this->cm->instance}_g_{$activitygroup}"); 60 if (!empty($groupoverride->allowsubmissionsfromdate)) { 61 $timeopen = $groupoverride->allowsubmissionsfromdate; 62 } 63 if (!empty($groupoverride->duedate)) { 64 $timedue = $groupoverride->duedate; 65 } 66 } 67 } 68 69 $now = time(); 70 $dates = []; 71 72 if ($timeopen) { 73 $openlabelid = $timeopen > $now ? 'activitydate:submissionsopen' : 'activitydate:submissionsopened'; 74 $date = [ 75 'dataid' => 'allowsubmissionsfromdate', 76 'label' => get_string($openlabelid, 'mod_assign'), 77 'timestamp' => (int) $timeopen, 78 ]; 79 if ($course->relativedatesmode && $assign->can_view_grades()) { 80 $date['relativeto'] = $course->startdate; 81 } 82 $dates[] = $date; 83 } 84 85 if ($timedue) { 86 $date = [ 87 'dataid' => 'duedate', 88 'label' => get_string('activitydate:submissionsdue', 'mod_assign'), 89 'timestamp' => (int) $timedue, 90 ]; 91 if ($course->relativedatesmode && $assign->can_view_grades()) { 92 $date['relativeto'] = $course->startdate; 93 } 94 $dates[] = $date; 95 } 96 97 return $dates; 98 } 99 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body