Grading Electronic validating date range - refs BT#12404

pull/2487/head
Angel Fernando Quiroz Campos 8 years ago
parent 16a139ead1
commit d29856f9cc
  1. 2
      plugin/grading_electronic/README.md
  2. 28
      plugin/grading_electronic/generate.php
  3. 2
      plugin/grading_electronic/src/GradingElectronicPlugin.php

@ -1,5 +1,5 @@
# Grading Electronic Form
v0.7
v0.8
Generate a file necessary to the Grading Electronic form for RickyRescue

@ -100,8 +100,13 @@ try {
/** @var \Category $gradebook */
$gradebook = $cats[0];
$dateStart = new DateTime($values['range_start'], new DateTimeZone('UTC'));
$dateEnd = new DateTime($values['range_end'], new DateTimeZone('UTC'));
/** @var \ExerciseLink $exerciseLink */
$exerciseLink = $gradebook->get_links()[0];
$exerciseId = $exerciseLink->get_ref_id();
$exerciseInfo = ExerciseLib::get_exercise_by_id($exerciseId, $course->getId());
$dateStart = new DateTime($values['range_start'].' 00:00:00', new DateTimeZone('UTC'));
$dateEnd = new DateTime($values['range_end'].' 23:59:59', new DateTimeZone('UTC'));
$fileData = [];
$fileData[] = sprintf(
@ -113,13 +118,22 @@ try {
/** @var User $student */
foreach ($students as $student) {
$userFinishedCourse = Category::userFinishedCourse(
$student->getId(),
$gradebook,
true
$exerciseResult = Event::get_best_exercise_results_by_user(
$exerciseId,
$course->getId(),
$session ? $session->getId() : 0,
$student->getId()
);
$exerciseResult = current($exerciseResult);
if (!$exerciseResult) {
continue;
}
$attemptDate = new DateTime($exerciseResult['exe_date'], new DateTimeZone('UTC'));
$dateIsRange = $attemptDate >= $dateStart && $attemptDate <= $dateEnd;
if (!$userFinishedCourse) {
if (!$dateEnd) {
continue;
}

@ -26,7 +26,7 @@ class GradingElectronicPlugin extends Plugin
protected function __construct()
{
parent::__construct(
'0.7',
'0.8',
'Angel Fernando Quiroz Campos, Julio Montoya',
array(
'tool_enable' => 'boolean',

Loading…
Cancel
Save