MDL-77744 core_grades: Use separate attribute for gradeitems/users.

This commit is contained in:
Ilya Tregubov
2023-03-29 17:24:55 +08:00
parent f7a8df253b
commit b6a5a0bcc2
3 changed files with 16 additions and 6 deletions
+6
View File
@@ -1679,6 +1679,8 @@ class grade_report_grader extends grade_report {
($element['type'] == 'courseitem') ||
($element['type'] == 'userfield')) {
$context->datatype = 'item';
if ($element['type'] == 'item') {
foreach ($this->get_report_links($this->context, $this->courseid, $element, $this->gpr, $mode)
as $count => $reportlink) {
@@ -1717,6 +1719,7 @@ class grade_report_grader extends grade_report {
if (isset($element['object']->id)) {
$sortlink->param('sortitemid', $element['object']->id);
} else if ($element['type'] == 'userfield') {
$context->datatype = $element['name'];
$sortlink->param('sortitemid', $element['name']);
}
@@ -1734,6 +1737,8 @@ class grade_report_grader extends grade_report {
}
} else if ($element['type'] == 'category') {
$context->datatype = 'category';
$categoryid = $element['object']->id;
// Load language strings.
@@ -1776,6 +1781,7 @@ class grade_report_grader extends grade_report {
$context->dataid = $element['name'];
}
} else if ($mode == 'user') {
$context->datatype = 'user';
foreach ($this->get_report_links($this->context, $this->courseid, $element, $this->gpr, $mode)
as $count => $reportlink) {
$temp = 'reporturl' . $count;
@@ -32,12 +32,16 @@
"descendinglastnameurl": "<a class='dropdown-item' aria-label='Descending' role='menuitem' href='index.php?id=13&amp;sortitemid=lastname&amp;sort=desc&amp;gpr_type=report&amp;gpr_plugin=grader&amp;gpr_courseid=13'>Descending</a>",
"divider1": "true",
"divider2": "true"
"datatype": item,
"dataid": "123"
}
}}
<div class="action-menu mb-1 moodle-actionmenu grader">
<div class="dropdown">
<button class="btn btn-link btn-icon icon-size-3 cellmenubtn"
type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-id={{dataid}}>
type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"
{{#datatype}}data-type="{{datatype}}"{{/datatype}}
{{#dataid}}data-id="{{dataid}}"{{/dataid}}>
<i class="icon fa fa-ellipsis-h fa-fw m-0" title="{{#str}} cellactions, gradereport_grader {{/str}}" aria-hidden="true"></i>
<span class="sr-only">{{#str}} cellactions, gradereport_grader {{/str}}</span>
</button>
@@ -187,7 +187,7 @@ class behat_gradereport_grader extends behat_base {
protected function get_gradeitem_selector(string $itemname) : string {
$itemid = $this->get_grade_item_id($itemname);
return "//table[@id='user-grades']//*[@data-id='" . $itemid . "']";
return "//table[@id='user-grades']//*[@data-type='item'][@data-id='" . $itemid . "']";
}
/**
@@ -200,7 +200,7 @@ class behat_gradereport_grader extends behat_base {
protected function get_course_grade_category_selector(string $coursename) {
$itemid = $this->get_course_grade_category_id($coursename);
return "//table[@id='user-grades']//*[@data-id='" . $itemid . "']";
return "//table[@id='user-grades']//*[@data-type='category'][@data-id='" . $itemid . "']";
}
/**
@@ -213,7 +213,7 @@ class behat_gradereport_grader extends behat_base {
protected function get_grade_category_selector(string $categoryname) : string {
$itemid = $this->get_grade_category_id($categoryname);
return "//table[@id='user-grades']//*[@data-id='" . $itemid . "']";
return "//table[@id='user-grades']//*[@data-type='category'][@data-id='" . $itemid . "']";
}
/**
@@ -239,7 +239,7 @@ class behat_gradereport_grader extends behat_base {
protected function get_user_selector(string $student) : string {
$userid = $this->get_user_id($student);
return "//table[@id='user-grades']//*[@data-id='" . $userid . "']";
return "//table[@id='user-grades']//*[@data-type='user'][@data-id='" . $userid . "']";
}
/**
@@ -250,7 +250,7 @@ class behat_gradereport_grader extends behat_base {
*/
public function i_click_on_user_profile_field_menu(string $field) {
$xpath = "//table[@id='user-grades']//*[@data-id='" . $field . "']";
$xpath = "//table[@id='user-grades']//*[@data-type='" . $field . "']";
$this->execute("behat_general::i_click_on", array($this->escape($xpath), "xpath_element"));
}