| Línea 71... |
Línea 71... |
| 71 |
* and there is an area with the active grading method set to 'guide'.
|
71 |
* and there is an area with the active grading method set to 'guide'.
|
| 72 |
*
|
72 |
*
|
| 73 |
* @param settings_navigation $settingsnav {@link settings_navigation}
|
73 |
* @param settings_navigation $settingsnav {@link settings_navigation}
|
| 74 |
* @param navigation_node $node {@link navigation_node}
|
74 |
* @param navigation_node $node {@link navigation_node}
|
| 75 |
*/
|
75 |
*/
|
| 76 |
public function extend_settings_navigation(settings_navigation $settingsnav, navigation_node $node=null) {
|
76 |
public function extend_settings_navigation(settings_navigation $settingsnav, ?navigation_node $node=null) {
|
| 77 |
$node->add(get_string('definemarkingguide', 'gradingform_guide'),
|
77 |
$node->add(get_string('definemarkingguide', 'gradingform_guide'),
|
| 78 |
$this->get_editor_url(), settings_navigation::TYPE_CUSTOM,
|
78 |
$this->get_editor_url(), settings_navigation::TYPE_CUSTOM,
|
| 79 |
null, null, new pix_icon('icon', '', 'gradingform_guide'));
|
79 |
null, null, new pix_icon('icon', '', 'gradingform_guide'));
|
| 80 |
}
|
80 |
}
|
| Línea 87... |
Línea 87... |
| 87 |
*
|
87 |
*
|
| 88 |
* @param global_navigation $navigation {@link global_navigation}
|
88 |
* @param global_navigation $navigation {@link global_navigation}
|
| 89 |
* @param navigation_node $node {@link navigation_node}
|
89 |
* @param navigation_node $node {@link navigation_node}
|
| 90 |
* @return void
|
90 |
* @return void
|
| 91 |
*/
|
91 |
*/
|
| 92 |
public function extend_navigation(global_navigation $navigation, navigation_node $node=null) {
|
92 |
public function extend_navigation(global_navigation $navigation, ?navigation_node $node=null) {
|
| 93 |
if (has_capability('moodle/grade:managegradingforms', $this->get_context())) {
|
93 |
if (has_capability('moodle/grade:managegradingforms', $this->get_context())) {
|
| 94 |
// No need for preview if user can manage forms, he will have link to manage.php in settings instead.
|
94 |
// No need for preview if user can manage forms, he will have link to manage.php in settings instead.
|
| 95 |
return;
|
95 |
return;
|
| 96 |
}
|
96 |
}
|
| 97 |
if ($this->is_form_defined() && ($options = $this->get_options()) && !empty($options['alwaysshowdefinition'])) {
|
97 |
if ($this->is_form_defined() && ($options = $this->get_options()) && !empty($options['alwaysshowdefinition'])) {
|
| Línea 855... |
Línea 855... |
| 855 |
global $DB;
|
855 |
global $DB;
|
| 856 |
$currentgrade = $this->get_guide_filling();
|
856 |
$currentgrade = $this->get_guide_filling();
|
| 857 |
parent::update($data);
|
857 |
parent::update($data);
|
| Línea 858... |
Línea 858... |
| 858 |
|
858 |
|
| - |
|
859 |
foreach ($data['criteria'] as $criterionid => $record) {
|
| - |
|
860 |
// Hardcoding/defaulting to html format for new/existing record
|
| - |
|
861 |
$record['remarkformat'] = FORMAT_HTML;
|
| 859 |
foreach ($data['criteria'] as $criterionid => $record) {
|
862 |
|
| 860 |
if (!array_key_exists($criterionid, $currentgrade['criteria'])) {
|
863 |
if (!array_key_exists($criterionid, $currentgrade['criteria'])) {
|
| 861 |
$newrecord = array('instanceid' => $this->get_id(), 'criterionid' => $criterionid,
|
864 |
$newrecord = array('instanceid' => $this->get_id(), 'criterionid' => $criterionid,
|
| 862 |
'score' => $record['score'], 'remarkformat' => FORMAT_MOODLE);
|
865 |
'score' => $record['score'], 'remarkformat' => $record['remarkformat']);
|
| 863 |
if (isset($record['remark'])) {
|
866 |
if (isset($record['remark'])) {
|
| 864 |
$newrecord['remark'] = $record['remark'];
|
867 |
$newrecord['remark'] = $record['remark'];
|
| 865 |
}
|
868 |
}
|
| 866 |
$DB->insert_record('gradingform_guide_fillings', $newrecord);
|
869 |
$DB->insert_record('gradingform_guide_fillings', $newrecord);
|
| 867 |
} else {
|
870 |
} else {
|
| 868 |
$newrecord = array('id' => $currentgrade['criteria'][$criterionid]['id']);
|
871 |
$newrecord = array('id' => $currentgrade['criteria'][$criterionid]['id']);
|
| 869 |
foreach (array('score', 'remark'/*, 'remarkformat' TODO */) as $key) {
|
872 |
foreach (array('score', 'remark', 'remarkformat') as $key) {
|
| 870 |
if (isset($record[$key]) && $currentgrade['criteria'][$criterionid][$key] != $record[$key]) {
|
873 |
if (isset($record[$key]) && $currentgrade['criteria'][$criterionid][$key] != $record[$key]) {
|
| 871 |
$newrecord[$key] = $record[$key];
|
874 |
$newrecord[$key] = $record[$key];
|
| 872 |
}
|
875 |
}
|
| 873 |
}
|
876 |
}
|
| Línea 1014... |
Línea 1017... |
| 1014 |
*
|
1017 |
*
|
| 1015 |
* @return array
|
1018 |
* @return array
|
| 1016 |
*/
|
1019 |
*/
|
| 1017 |
function gradingform_guide_get_fontawesome_icon_map(): array {
|
1020 |
function gradingform_guide_get_fontawesome_icon_map(): array {
|
| 1018 |
return [
|
1021 |
return [
|
| 1019 |
'gradingform_guide:info' => 'fa-info-circle',
|
1022 |
'gradingform_guide:info' => 'fa-circle-info',
|
| 1020 |
'gradingform_guide:plus' => 'fa-plus',
|
1023 |
'gradingform_guide:plus' => 'fa-circle-plus',
|
| 1021 |
];
|
1024 |
];
|
| 1022 |
}
|
1025 |
}
|