mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 16:32:18 +02:00
Merge branch 'MDL-67165' of git://github.com/Chocolate-lightning/moodle_forum-project
This commit is contained in:
commit
79bd1e7fad
@ -97,8 +97,8 @@ class fetch extends external_api {
|
||||
* @since Moodle 3.8
|
||||
*/
|
||||
public static function execute(string $component, int $contextid, string $itemname, int $gradeduserid): array {
|
||||
global $USER;
|
||||
|
||||
global $USER, $CFG;
|
||||
require_once("{$CFG->libdir}/gradelib.php");
|
||||
[
|
||||
'component' => $component,
|
||||
'contextid' => $contextid,
|
||||
@ -131,9 +131,13 @@ class fetch extends external_api {
|
||||
$gradeduser = \core_user::get_user($gradeduserid);
|
||||
$hasgrade = $gradeitem->user_has_grade($gradeduser);
|
||||
$grade = $gradeitem->get_grade_for_user($gradeduser, $USER);
|
||||
|
||||
// Set up some items we need to return on other interfaces.
|
||||
$gradegrade = \grade_grade::fetch(['itemid' => $gradeitem->get_grade_item()->id, 'userid' => $gradeduser->id]);
|
||||
$gradername = $gradegrade ? fullname(\core_user::get_user($gradegrade->usermodified)) : null;
|
||||
$maxgrade = (int) $gradeitem->get_grade_item()->grademax;
|
||||
|
||||
return self::get_fetch_data($grade, $hasgrade, $maxgrade);
|
||||
return self::get_fetch_data($grade, $hasgrade, $maxgrade, $gradername);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -142,9 +146,10 @@ class fetch extends external_api {
|
||||
* @param stdClass $grade
|
||||
* @param bool $hasgrade
|
||||
* @param int $maxgrade
|
||||
* @param string|null $gradername
|
||||
* @return array
|
||||
*/
|
||||
public static function get_fetch_data(stdClass $grade, bool $hasgrade, int $maxgrade): array {
|
||||
public static function get_fetch_data(stdClass $grade, bool $hasgrade, int $maxgrade, ?string $gradername): array {
|
||||
return [
|
||||
'templatename' => 'core_grades/grades/grader/gradingpanel/point',
|
||||
'hasgrade' => $hasgrade,
|
||||
@ -152,6 +157,7 @@ class fetch extends external_api {
|
||||
'grade' => $grade->grade,
|
||||
'usergrade' => $grade->grade,
|
||||
'maxgrade' => $maxgrade,
|
||||
'gradedby' => $gradername,
|
||||
'timecreated' => $grade->timecreated,
|
||||
'timemodified' => $grade->timemodified,
|
||||
],
|
||||
@ -173,6 +179,7 @@ class fetch extends external_api {
|
||||
'grade' => new external_value(PARAM_FLOAT, 'The numeric grade'),
|
||||
'usergrade' => new external_value(PARAM_RAW, 'Current user grade'),
|
||||
'maxgrade' => new external_value(PARAM_RAW, 'Max possible grade'),
|
||||
'gradedby' => new external_value(PARAM_RAW, 'The assumed grader of this grading instance'),
|
||||
'timecreated' => new external_value(PARAM_INT, 'The time that the grade was created'),
|
||||
'timemodified' => new external_value(PARAM_INT, 'The time that the grade was last updated'),
|
||||
]),
|
||||
|
@ -110,8 +110,8 @@ class store extends external_api {
|
||||
*/
|
||||
public static function execute(string $component, int $contextid, string $itemname, int $gradeduserid,
|
||||
bool $notifyuser, string $formdata): array {
|
||||
global $USER;
|
||||
|
||||
global $USER, $CFG;
|
||||
require_once("{$CFG->libdir}/gradelib.php");
|
||||
[
|
||||
'component' => $component,
|
||||
'contextid' => $contextid,
|
||||
@ -172,7 +172,11 @@ class store extends external_api {
|
||||
// Fetch the updated grade back out.
|
||||
$grade = $gradeitem->get_grade_for_user($gradeduser, $USER);
|
||||
|
||||
return fetch::get_fetch_data($grade, $hasgrade, 0);
|
||||
$gradegrade = \grade_grade::fetch(['itemid' => $gradeitem->get_grade_item()->id, 'userid' => $gradeduser->id]);
|
||||
$gradername = $gradegrade ? fullname(\core_user::get_user($gradegrade->usermodified)) : null;
|
||||
$maxgrade = (int) $gradeitem->get_grade_item()->grademax;
|
||||
|
||||
return fetch::get_fetch_data($grade, $hasgrade, $maxgrade, $gradername);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -97,8 +97,8 @@ class fetch extends external_api {
|
||||
* @since Moodle 3.8
|
||||
*/
|
||||
public static function execute(string $component, int $contextid, string $itemname, int $gradeduserid): array {
|
||||
global $USER;
|
||||
|
||||
global $USER, $CFG;
|
||||
require_once("{$CFG->libdir}/gradelib.php");
|
||||
[
|
||||
'component' => $component,
|
||||
'contextid' => $contextid,
|
||||
@ -129,9 +129,12 @@ class fetch extends external_api {
|
||||
|
||||
$gradeduser = \core_user::get_user($gradeduserid);
|
||||
|
||||
// Set up some items we need to return on other interfaces.
|
||||
$gradegrade = \grade_grade::fetch(['itemid' => $gradeitem->get_grade_item()->id, 'userid' => $gradeduser->id]);
|
||||
$gradername = $gradegrade ? fullname(\core_user::get_user($gradegrade->usermodified)) : null;
|
||||
$maxgrade = (int) $gradeitem->get_grade_item()->grademax;
|
||||
|
||||
return self::get_fetch_data($gradeitem, $gradeduser, $maxgrade);
|
||||
return self::get_fetch_data($gradeitem, $gradeduser, $maxgrade, $gradername);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -140,9 +143,10 @@ class fetch extends external_api {
|
||||
* @param gradeitem $gradeitem
|
||||
* @param stdClass $gradeduser
|
||||
* @param int $maxgrade
|
||||
* @param string|null $gradername
|
||||
* @return array
|
||||
*/
|
||||
public static function get_fetch_data(gradeitem $gradeitem, stdClass $gradeduser, int $maxgrade): array {
|
||||
public static function get_fetch_data(gradeitem $gradeitem, stdClass $gradeduser, int $maxgrade, ?string $gradername): array {
|
||||
global $USER;
|
||||
|
||||
$hasgrade = $gradeitem->user_has_grade($gradeduser);
|
||||
@ -165,6 +169,7 @@ class fetch extends external_api {
|
||||
'options' => $values,
|
||||
'usergrade' => $grade->grade,
|
||||
'maxgrade' => $maxgrade,
|
||||
'gradedby' => $gradername,
|
||||
'timecreated' => $grade->timecreated,
|
||||
'timemodified' => $grade->timemodified,
|
||||
],
|
||||
@ -193,6 +198,7 @@ class fetch extends external_api {
|
||||
),
|
||||
'usergrade' => new external_value(PARAM_RAW, 'Current user grade'),
|
||||
'maxgrade' => new external_value(PARAM_RAW, 'Max possible grade'),
|
||||
'gradedby' => new external_value(PARAM_RAW, 'The assumed grader of this grading instance'),
|
||||
'timecreated' => new external_value(PARAM_INT, 'The time that the grade was created'),
|
||||
'timemodified' => new external_value(PARAM_INT, 'The time that the grade was last updated'),
|
||||
]),
|
||||
|
@ -107,8 +107,8 @@ class store extends external_api {
|
||||
*/
|
||||
public static function execute(string $component, int $contextid, string $itemname, int $gradeduserid,
|
||||
bool $notifyuser, string $formdata): array {
|
||||
global $USER;
|
||||
|
||||
global $USER, $CFG;
|
||||
require_once("{$CFG->libdir}/gradelib.php");
|
||||
[
|
||||
'component' => $component,
|
||||
'contextid' => $contextid,
|
||||
@ -165,7 +165,11 @@ class store extends external_api {
|
||||
$gradeitem->send_student_notification($gradeduser, $USER);
|
||||
}
|
||||
|
||||
return fetch::get_fetch_data($gradeitem, $gradeduser, 0);
|
||||
$gradegrade = \grade_grade::fetch(['itemid' => $gradeitem->get_grade_item()->id, 'userid' => $gradeduser->id]);
|
||||
$gradername = $gradegrade ? fullname(\core_user::get_user($gradegrade->usermodified)) : null;
|
||||
$maxgrade = (int) $gradeitem->get_grade_item()->grademax;
|
||||
|
||||
return fetch::get_fetch_data($gradeitem, $gradeduser, $maxgrade, $gradername);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -100,8 +100,8 @@ class fetch extends external_api {
|
||||
* @since Moodle 3.8
|
||||
*/
|
||||
public static function execute(string $component, int $contextid, string $itemname, int $gradeduserid): array {
|
||||
global $USER;
|
||||
|
||||
global $CFG;
|
||||
require_once("{$CFG->libdir}/gradelib.php");
|
||||
[
|
||||
'component' => $component,
|
||||
'contextid' => $contextid,
|
||||
@ -156,6 +156,10 @@ class fetch extends external_api {
|
||||
$fillings = $instance->get_guide_filling();
|
||||
$context = $controller->get_context();
|
||||
$definitionid = (int) $definition->id;
|
||||
|
||||
// Set up some items we need to return on other interfaces.
|
||||
$gradegrade = \grade_grade::fetch(['itemid' => $gradeitem->get_grade_item()->id, 'userid' => $gradeduser->id]);
|
||||
$gradername = $gradegrade ? fullname(\core_user::get_user($gradegrade->usermodified)) : null;
|
||||
$maxgrade = max(array_keys($controller->get_grade_range()));
|
||||
|
||||
$criterion = [];
|
||||
@ -227,6 +231,7 @@ class fetch extends external_api {
|
||||
'comments' => $comments,
|
||||
'usergrade' => $grade->grade,
|
||||
'maxgrade' => $maxgrade,
|
||||
'gradedby' => $gradername,
|
||||
'timecreated' => $grade->timecreated,
|
||||
'timemodified' => $grade->timemodified,
|
||||
],
|
||||
@ -269,6 +274,7 @@ class fetch extends external_api {
|
||||
),
|
||||
'usergrade' => new external_value(PARAM_RAW, 'Current user grade'),
|
||||
'maxgrade' => new external_value(PARAM_RAW, 'Max possible grade'),
|
||||
'gradedby' => new external_value(PARAM_RAW, 'The assumed grader of this grading instance'),
|
||||
'timecreated' => new external_value(PARAM_INT, 'The time that the grade was created'),
|
||||
'timemodified' => new external_value(PARAM_INT, 'The time that the grade was last updated'),
|
||||
]),
|
||||
|
@ -123,17 +123,28 @@ class fetch_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('gradingform_guide/grades/grader/gradingpanel', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(0, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(100, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(null, $result['grade']['gradedby']);
|
||||
|
||||
$this->assertArrayHasKey('criterion', $result['grade']);
|
||||
$criteria = $result['grade']['criterion'];
|
||||
$this->assertCount(count($definition->guide_criteria), $criteria);
|
||||
@ -193,7 +204,7 @@ class fetch_test extends advanced_testcase {
|
||||
'instanceid' => $instance->get_id(),
|
||||
'advancedgrading' => $submissiondata,
|
||||
]);
|
||||
|
||||
// Set up some items we need to return on other interfaces.
|
||||
$result = fetch::execute('mod_forum', (int) $forum->get_context()->id, 'forum', (int) $student->id);
|
||||
$result = external_api::clean_returnvalue(fetch::execute_returns(), $result);
|
||||
|
||||
@ -202,17 +213,28 @@ class fetch_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('gradingform_guide/grades/grader/gradingpanel', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(25, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(100, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(fullname($teacher), $result['grade']['gradedby']);
|
||||
|
||||
$this->assertArrayHasKey('criterion', $result['grade']);
|
||||
$criteria = $result['grade']['criterion'];
|
||||
$this->assertCount(count($definition->guide_criteria), $criteria);
|
||||
@ -254,7 +276,7 @@ class fetch_test extends advanced_testcase {
|
||||
|
||||
$datagenerator = $this->getDataGenerator();
|
||||
$course = $datagenerator->create_course();
|
||||
$forum = $datagenerator->create_module('forum', array_merge($config, ['course' => $course->id]));
|
||||
$forum = $datagenerator->create_module('forum', array_merge($config, ['course' => $course->id, 'grade_forum' => 100]));
|
||||
|
||||
$vaultfactory = \mod_forum\local\container::get_vault_factory();
|
||||
$vault = $vaultfactory->get_forum_vault();
|
||||
@ -284,7 +306,20 @@ class fetch_test extends advanced_testcase {
|
||||
$controller = $guidegenerator->get_test_guide($forum->get_context(), 'forum', 'forum');
|
||||
$definition = $controller->get_definition();
|
||||
|
||||
$DB->set_field('forum', 'grade_forum', count($definition->guide_criteria), ['id' => $forum->get_id()]);
|
||||
// In the situation of mod_forum this would be the id from forum_grades.
|
||||
$itemid = 1;
|
||||
$instance = $controller->create_instance($student->id, $itemid);
|
||||
|
||||
$data = $this->get_test_form_data(
|
||||
$controller,
|
||||
$itemid,
|
||||
5, 'This user made several mistakes.',
|
||||
10, 'This user has two pictures.'
|
||||
);
|
||||
|
||||
// Update this instance with data.
|
||||
$instance->update($data);
|
||||
|
||||
return [
|
||||
'forum' => $forum,
|
||||
'controller' => $controller,
|
||||
@ -293,4 +328,36 @@ class fetch_test extends advanced_testcase {
|
||||
'teacher' => $teacher,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch a set of sample data.
|
||||
*
|
||||
* @param \gradingform_guide_controller $controller
|
||||
* @param int $itemid
|
||||
* @param float $spellingscore
|
||||
* @param string $spellingremark
|
||||
* @param float $picturescore
|
||||
* @param string $pictureremark
|
||||
* @return array
|
||||
*/
|
||||
protected function get_test_form_data(
|
||||
\gradingform_guide_controller $controller,
|
||||
int $itemid,
|
||||
float $spellingscore,
|
||||
string $spellingremark,
|
||||
float $picturescore,
|
||||
string $pictureremark
|
||||
): array {
|
||||
$generator = \testing_util::get_data_generator();
|
||||
$guidegenerator = $generator->get_plugin_generator('gradingform_guide');
|
||||
|
||||
return $guidegenerator->get_test_form_data(
|
||||
$controller,
|
||||
$itemid,
|
||||
$spellingscore,
|
||||
$spellingremark,
|
||||
$picturescore,
|
||||
$pictureremark
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -155,17 +155,28 @@ class store_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('gradingform_guide/grades/grader/gradingpanel', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(0.5, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(2, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(fullname($teacher), $result['grade']['gradedby']);
|
||||
|
||||
$this->assertArrayHasKey('criterion', $result['grade']);
|
||||
$criteria = $result['grade']['criterion'];
|
||||
$this->assertCount(count($definition->guide_criteria), $criteria);
|
||||
|
@ -93,6 +93,8 @@ class fetch extends external_api {
|
||||
* @since Moodle 3.8
|
||||
*/
|
||||
public static function execute(string $component, int $contextid, string $itemname, int $gradeduserid): array {
|
||||
global $CFG;
|
||||
require_once("{$CFG->libdir}/gradelib.php");
|
||||
[
|
||||
'component' => $component,
|
||||
'contextid' => $contextid,
|
||||
@ -138,7 +140,6 @@ class fetch extends external_api {
|
||||
*/
|
||||
public static function get_fetch_data(gradeitem $gradeitem, stdClass $gradeduser): array {
|
||||
global $USER;
|
||||
|
||||
// Set up all the controllers etc that we'll be needing.
|
||||
$hasgrade = $gradeitem->user_has_grade($gradeduser);
|
||||
$grade = $gradeitem->get_grade_for_user($gradeduser, $USER);
|
||||
@ -148,7 +149,12 @@ class fetch extends external_api {
|
||||
$fillings = $instance->get_rubric_filling();
|
||||
$context = $controller->get_context();
|
||||
$definitionid = (int) $definition->id;
|
||||
|
||||
// Set up some items we need to return on other interfaces.
|
||||
$gradegrade = \grade_grade::fetch(['itemid' => $gradeitem->get_grade_item()->id, 'userid' => $gradeduser->id]);
|
||||
$gradername = $gradegrade ? fullname(\core_user::get_user($gradegrade->usermodified)) : null;
|
||||
$maxgrade = max(array_keys($controller->get_grade_range()));
|
||||
|
||||
$teacherdescription = self::get_formatted_text(
|
||||
$context,
|
||||
$definitionid,
|
||||
@ -239,6 +245,7 @@ class fetch extends external_api {
|
||||
'canedit' => false,
|
||||
'usergrade' => $grade->grade,
|
||||
'maxgrade' => $maxgrade,
|
||||
'gradedby' => $gradername,
|
||||
'timecreated' => $grade->timecreated,
|
||||
'timemodified' => $grade->timemodified,
|
||||
],
|
||||
@ -277,6 +284,7 @@ class fetch extends external_api {
|
||||
'timecreated' => new external_value(PARAM_INT, 'The time that the grade was created'),
|
||||
'usergrade' => new external_value(PARAM_RAW, 'Current user grade'),
|
||||
'maxgrade' => new external_value(PARAM_RAW, 'Max possible grade'),
|
||||
'gradedby' => new external_value(PARAM_RAW, 'The assumed grader of this grading instance'),
|
||||
'timemodified' => new external_value(PARAM_INT, 'The time that the grade was last updated'),
|
||||
]),
|
||||
'warnings' => new external_warnings(),
|
||||
|
@ -30,6 +30,7 @@ namespace gradingform_rubric\grades\grader\gradingpanel\external;
|
||||
use advanced_testcase;
|
||||
use coding_exception;
|
||||
use core_grades\component_gradeitem;
|
||||
use core_grades\component_gradeitems;
|
||||
use external_api;
|
||||
use mod_forum\local\entities\forum as forum_entity;
|
||||
use moodle_exception;
|
||||
@ -123,17 +124,28 @@ class fetch_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('gradingform_rubric/grades/grader/gradingpanel', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(0, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(100, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(null, $result['grade']['gradedby']);
|
||||
|
||||
$this->assertArrayHasKey('criteria', $result['grade']);
|
||||
$criteria = $result['grade']['criteria'];
|
||||
$this->assertCount(count($definition->rubric_criteria), $criteria);
|
||||
@ -209,17 +221,28 @@ class fetch_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('gradingform_rubric/grades/grader/gradingpanel', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(50, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(100, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(fullname($teacher), $result['grade']['gradedby']);
|
||||
|
||||
$this->assertArrayHasKey('criteria', $result['grade']);
|
||||
$criteria = $result['grade']['criteria'];
|
||||
$this->assertCount(count($definition->rubric_criteria), $criteria);
|
||||
@ -274,7 +297,7 @@ class fetch_test extends advanced_testcase {
|
||||
|
||||
$datagenerator = $this->getDataGenerator();
|
||||
$course = $datagenerator->create_course();
|
||||
$forum = $datagenerator->create_module('forum', array_merge($config, ['course' => $course->id]));
|
||||
$forum = $datagenerator->create_module('forum', array_merge($config, ['course' => $course->id, 'grade_forum' => 100]));
|
||||
|
||||
$vaultfactory = \mod_forum\local\container::get_vault_factory();
|
||||
$vault = $vaultfactory->get_forum_vault();
|
||||
@ -301,10 +324,24 @@ class fetch_test extends advanced_testcase {
|
||||
$student = $this->getDataGenerator()->create_and_enrol($course, 'student');
|
||||
|
||||
$this->setUser($teacher);
|
||||
|
||||
$controller = $rubricgenerator->get_test_rubric($forum->get_context(), 'forum', 'forum');
|
||||
$definition = $controller->get_definition();
|
||||
|
||||
$DB->set_field('forum', 'grade_forum', count($definition->rubric_criteria), ['id' => $forum->get_id()]);
|
||||
// In the situation of mod_forum this would be the id from forum_grades.
|
||||
$itemid = 1;
|
||||
$instance = $controller->create_instance($student->id, $itemid);
|
||||
|
||||
$data = $this->get_test_form_data(
|
||||
$controller,
|
||||
$itemid,
|
||||
1, 'This user made several mistakes.',
|
||||
0, 'Please add more pictures.'
|
||||
);
|
||||
|
||||
// Update this instance with data.
|
||||
$instance->update($data);
|
||||
|
||||
return [
|
||||
'forum' => $forum,
|
||||
'controller' => $controller,
|
||||
@ -313,4 +350,35 @@ class fetch_test extends advanced_testcase {
|
||||
'teacher' => $teacher,
|
||||
];
|
||||
}
|
||||
/**
|
||||
* Fetch a set of sample data.
|
||||
*
|
||||
* @param \gradingform_rubric_controller $controller
|
||||
* @param int $itemid
|
||||
* @param float $spellingscore
|
||||
* @param string $spellingremark
|
||||
* @param float $picturescore
|
||||
* @param string $pictureremark
|
||||
* @return array
|
||||
*/
|
||||
protected function get_test_form_data(
|
||||
\gradingform_rubric_controller $controller,
|
||||
int $itemid,
|
||||
float $spellingscore,
|
||||
string $spellingremark,
|
||||
float $picturescore,
|
||||
string $pictureremark
|
||||
): array {
|
||||
$generator = \testing_util::get_data_generator();
|
||||
$rubricgenerator = $generator->get_plugin_generator('gradingform_rubric');
|
||||
|
||||
return $rubricgenerator->get_test_form_data(
|
||||
$controller,
|
||||
$itemid,
|
||||
$spellingscore,
|
||||
$spellingremark,
|
||||
$picturescore,
|
||||
$pictureremark
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -154,17 +154,28 @@ class store_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('gradingform_rubric/grades/grader/gradingpanel', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(1, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(2, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(fullname($teacher), $result['grade']['gradedby']);
|
||||
|
||||
$this->assertArrayHasKey('criteria', $result['grade']);
|
||||
$criteria = $result['grade']['criteria'];
|
||||
$this->assertCount(count($definition->rubric_criteria), $criteria);
|
||||
|
@ -122,18 +122,30 @@ class fetch_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('core_grades/grades/grader/gradingpanel/point', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertArrayHasKey('grade', $result['grade']);
|
||||
$this->assertEmpty($result['grade']['grade']);
|
||||
$this->assertArrayHasKey('timecreated', $result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(0, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(5, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(null, $result['grade']['gradedby']);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -164,19 +176,31 @@ class fetch_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('core_grades/grades/grader/gradingpanel/point', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertArrayHasKey('grade', $result['grade']);
|
||||
$this->assertIsFloat($result['grade']['grade']);
|
||||
$this->assertEquals(grade_floatval(unformat_float(4)), $result['grade']['grade']);
|
||||
$this->assertArrayHasKey('timecreated', $result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(4, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(5, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(fullname($teacher), $result['grade']['gradedby']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -162,6 +162,27 @@ class store_test extends advanced_testcase {
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertArrayHasKey('grade', $result['grade']);
|
||||
$this->assertEquals(null, $result['grade']['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(null, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(5, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(fullname($teacher), $result['grade']['gradedby']);
|
||||
|
||||
// Compare against the grade stored in the database.
|
||||
$storedgradeitem = grade_item::fetch([
|
||||
'courseid' => $forum->get_course_id(),
|
||||
@ -210,18 +231,30 @@ class store_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('core_grades/grades/grader/gradingpanel/point', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertArrayHasKey('grade', $result['grade']);
|
||||
$this->assertEquals($formattedvalue, $result['grade']['grade']);
|
||||
$this->assertArrayHasKey('timecreated', $result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals($formattedvalue, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(5, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(fullname($teacher), $result['grade']['gradedby']);
|
||||
|
||||
// Compare against the grade stored in the database.
|
||||
$storedgradeitem = grade_item::fetch([
|
||||
|
@ -129,9 +129,28 @@ class fetch_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('core_grades/grades/grader/gradingpanel/scale', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(0, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(3, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(null, $result['grade']['gradedby']);
|
||||
|
||||
$this->assertArrayHasKey('options', $result['grade']);
|
||||
$this->assertCount(count($options), $result['grade']['options']);
|
||||
rsort($options);
|
||||
@ -148,14 +167,6 @@ class fetch_test extends advanced_testcase {
|
||||
$this->assertArrayHasKey('selected', $returnedoption);
|
||||
$this->assertFalse($returnedoption['selected']);
|
||||
}
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -201,9 +212,28 @@ class fetch_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('core_grades/grades/grader/gradingpanel/scale', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(2, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(3, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(fullname($teacher), $result['grade']['gradedby']);
|
||||
|
||||
$this->assertArrayHasKey('options', $result['grade']);
|
||||
$this->assertCount(count($options), $result['grade']['options']);
|
||||
rsort($options);
|
||||
@ -224,14 +254,6 @@ class fetch_test extends advanced_testcase {
|
||||
$this->assertFalse($result['grade']['options'][0]['selected']);
|
||||
$this->assertTrue($result['grade']['options'][1]['selected']);
|
||||
$this->assertFalse($result['grade']['options'][2]['selected']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -147,8 +147,28 @@ class store_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('core_grades/grades/grader/gradingpanel/scale', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(0, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(3, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(fullname($teacher), $result['grade']['gradedby']);
|
||||
|
||||
$this->assertArrayHasKey('options', $result['grade']);
|
||||
$this->assertCount(count($options), $result['grade']['options']);
|
||||
rsort($options);
|
||||
@ -166,14 +186,6 @@ class store_test extends advanced_testcase {
|
||||
$this->assertFalse($returnedoption['selected']);
|
||||
}
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Compare against the grade stored in the database.
|
||||
$storedgradeitem = grade_item::fetch([
|
||||
'courseid' => $forum->get_course_id(),
|
||||
@ -219,8 +231,28 @@ class store_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('core_grades/grades/grader/gradingpanel/scale', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(-1, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(3, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(null, $result['grade']['gradedby']);
|
||||
|
||||
$this->assertArrayHasKey('options', $result['grade']);
|
||||
$this->assertCount(count($options), $result['grade']['options']);
|
||||
rsort($options);
|
||||
@ -238,14 +270,6 @@ class store_test extends advanced_testcase {
|
||||
$this->assertFalse($returnedoption['selected']);
|
||||
}
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Compare against the grade stored in the database.
|
||||
$storedgradeitem = grade_item::fetch([
|
||||
'courseid' => $forum->get_course_id(),
|
||||
@ -294,8 +318,28 @@ class store_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals('core_grades/grades/grader/gradingpanel/scale', $result['templatename']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Test the grade array items.
|
||||
$this->assertArrayHasKey('grade', $result);
|
||||
$this->assertIsArray($result['grade']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('usergrade', $result['grade']);
|
||||
$this->assertEquals(2, $result['grade']['usergrade']);
|
||||
|
||||
$this->assertArrayHasKey('maxgrade', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['maxgrade']);
|
||||
$this->assertEquals(3, $result['grade']['maxgrade']);
|
||||
|
||||
$this->assertArrayHasKey('gradedby', $result['grade']);
|
||||
$this->assertEquals(fullname($teacher), $result['grade']['gradedby']);
|
||||
|
||||
$this->assertArrayHasKey('options', $result['grade']);
|
||||
$this->assertCount(count($options), $result['grade']['options']);
|
||||
rsort($options);
|
||||
@ -312,19 +356,6 @@ class store_test extends advanced_testcase {
|
||||
$this->assertArrayHasKey('selected', $returnedoption);
|
||||
}
|
||||
|
||||
// The grade was 2, which relates to the middle option.
|
||||
$this->assertFalse($result['grade']['options'][0]['selected']);
|
||||
$this->assertTrue($result['grade']['options'][1]['selected']);
|
||||
$this->assertFalse($result['grade']['options'][2]['selected']);
|
||||
|
||||
$this->assertIsInt($result['grade']['timecreated']);
|
||||
$this->assertArrayHasKey('timemodified', $result['grade']);
|
||||
$this->assertIsInt($result['grade']['timemodified']);
|
||||
|
||||
$this->assertArrayHasKey('warnings', $result);
|
||||
$this->assertIsArray($result['warnings']);
|
||||
$this->assertEmpty($result['warnings']);
|
||||
|
||||
// Compare against the grade stored in the database.
|
||||
$storedgradeitem = grade_item::fetch([
|
||||
'courseid' => $forum->get_course_id(),
|
||||
@ -340,6 +371,11 @@ class store_test extends advanced_testcase {
|
||||
|
||||
$this->assertEquals($formattedvalue, $storedgrade->rawgrade);
|
||||
$this->assertEquals($scale->id, $storedgrade->rawscaleid);
|
||||
|
||||
// The grade was 2, which relates to the middle option.
|
||||
$this->assertFalse($result['grade']['options'][0]['selected']);
|
||||
$this->assertTrue($result['grade']['options'][1]['selected']);
|
||||
$this->assertFalse($result['grade']['options'][2]['selected']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -745,6 +745,8 @@ $string['grade_forum_title'] = 'Grade';
|
||||
$string['grade_rating_name'] = 'Rating';
|
||||
$string['gradeusers'] = 'Grade users';
|
||||
$string['graded'] = 'Graded';
|
||||
$string['gradedby'] = 'Graded by';
|
||||
$string['notgraded'] = 'Not graded';
|
||||
$string['gradeforrating'] = 'Grade for rating: {$a->str_long_grade}';
|
||||
$string['gradeforratinghidden'] = 'Grade for rating hidden';
|
||||
$string['gradeforwholeforum'] = 'Grade for forum: {$a->str_long_grade}';
|
||||
|
@ -43,6 +43,17 @@
|
||||
<h5 class="font-weight-bold description">{{#str}}grade{{/str}}:</h5>
|
||||
<p class="ml-auto">{{usergrade}} / {{maxgrade}}</p>
|
||||
</div>
|
||||
<div class="row-fluid px-3">
|
||||
<h5 class="font-weight-bold description">{{#str}}gradedby, forum{{/str}}:</h5>
|
||||
<p class="ml-auto">
|
||||
{{#gradedby}}
|
||||
{{gradedby}}
|
||||
{{/gradedby}}
|
||||
{{^gradedby}}
|
||||
-
|
||||
{{/gradedby}}
|
||||
</p>
|
||||
</div>
|
||||
<div class="row-fluid px-3">
|
||||
<h5 class="font-weight-bold description">{{#str}}date{{/str}}:</h5>
|
||||
<p class="ml-auto">{{#userdate}}{{timemodified}}, {{#str}} strftimedate, langconfig {{/str}}{{/userdate}}</p>
|
||||
|
Loading…
x
Reference in New Issue
Block a user