MDL-69690 mod_workshop: Fix fieldname for workshop.

This commit is contained in:
Ilya Tregubov
2023-01-12 15:01:11 +07:00
parent b8b905cd90
commit 93a70ba807
5 changed files with 130 additions and 6 deletions
+23 -1
View File
@@ -26,6 +26,8 @@ declare(strict_types = 1);
namespace mod_workshop\grades;
use core_grades\component_gradeitems;
use core_grades\local\gradeitem\fieldname_mapping;
use \core_grades\local\gradeitem\itemnumber_mapping;
/**
@@ -35,7 +37,7 @@ use \core_grades\local\gradeitem\itemnumber_mapping;
* @copyright Andrew Nicols <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class gradeitems implements itemnumber_mapping {
class gradeitems implements itemnumber_mapping, fieldname_mapping {
/**
* Return the list of grade item mappings for the workshop.
*
@@ -47,4 +49,24 @@ class gradeitems implements itemnumber_mapping {
1 => 'grading',
];
}
/**
* Get the suffixed field name for an activity field mapped from its itemnumber.
*
* For legacy reasons, the first itemnumber has no suffix on field names.
*
* @param string $component The component that the grade item belongs to
* @param int $itemnumber The grade itemnumber
* @param string $fieldname The name of the field to be rewritten
* @return string The translated field name
*/
public static function get_field_name_for_itemnumber(string $component, int $itemnumber, string $fieldname): string {
$itemname = component_gradeitems::get_itemname_from_itemnumber($component, $itemnumber);
if ($itemname) {
return "{$itemname}{$fieldname}";
}
return $fieldname;
}
}