Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 1441
Línea 21... Línea 21...
21
 * @package mod_feedback
21
 * @package mod_feedback
22
 * @copyright Andreas Grabs
22
 * @copyright Andreas Grabs
23
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24
 */
24
 */
Línea -... Línea 25...
-
 
25
 
-
 
26
use mod_feedback\manager;
25
 
27
 
Línea 26... Línea 28...
26
defined('MOODLE_INTERNAL') || die();
28
defined('MOODLE_INTERNAL') || die();
27
 
29
 
Línea 562... Línea 564...
562
function feedback_cron () {
564
function feedback_cron () {
563
    return true;
565
    return true;
564
}
566
}
Línea 565... Línea 567...
565
 
567
 
566
/**
-
 
567
 * @deprecated since Moodle 3.8
-
 
568
 */
-
 
569
function feedback_scale_used() {
-
 
570
    throw new coding_exception('feedback_scale_used() can not be used anymore. Plugins can implement ' .
-
 
571
        '<modname>_scale_used_anywhere, all implementations of <modname>_scale_used are now ignored');
-
 
572
}
-
 
573
 
-
 
574
/**
568
/**
575
 * Checks if scale is being used by any instance of feedback
569
 * Checks if scale is being used by any instance of feedback
576
 *
570
 *
577
 * This is used to find out if scale used anywhere
571
 * This is used to find out if scale used anywhere
578
 * @param $scaleid int
572
 * @param $scaleid int
Línea 623... Línea 617...
623
 * @return array status array
617
 * @return array status array
624
 */
618
 */
625
function feedback_reset_userdata($data) {
619
function feedback_reset_userdata($data) {
626
    global $CFG, $DB;
620
    global $CFG, $DB;
Línea 627... Línea 621...
627
 
621
 
628
    $resetfeedbacks = array();
622
    $resetfeedbacks = [];
629
    $dropfeedbacks = array();
623
    $dropfeedbacks = [];
630
    $status = array();
624
    $status = [];
Línea 631... Línea 625...
631
    $componentstr = get_string('modulenameplural', 'feedback');
625
    $componentstr = get_string('modulenameplural', 'feedback');
632
 
626
 
633
    //get the relevant entries from $data
627
    // Get the relevant entries from $data.
634
    foreach ($data as $key => $value) {
628
    foreach ($data as $key => $value) {
635
        switch(true) {
629
        switch(true) {
636
            case substr($key, 0, strlen(FEEDBACK_RESETFORM_RESET)) == FEEDBACK_RESETFORM_RESET:
630
            case substr($key, 0, strlen(FEEDBACK_RESETFORM_RESET)) == FEEDBACK_RESETFORM_RESET:
Línea 650... Línea 644...
650
                }
644
                }
651
            break;
645
            break;
652
        }
646
        }
653
    }
647
    }
Línea 654... Línea 648...
654
 
648
 
655
    //reset the selected feedbacks
649
    // Reset the selected feedbacks.
656
    foreach ($resetfeedbacks as $id) {
650
    foreach ($resetfeedbacks as $id) {
657
        $feedback = $DB->get_record('feedback', array('id'=>$id));
651
        $feedback = $DB->get_record('feedback', ['id' => $id]);
-
 
652
        feedback_delete_all_completeds($feedback);
658
        feedback_delete_all_completeds($feedback);
653
        $status[] = [
659
        $status[] = array('component'=>$componentstr.':'.$feedback->name,
654
            'component' => $componentstr.':'.$feedback->name,
660
                        'item'=>get_string('resetting_data', 'feedback'),
655
            'item' => get_string('resetting_data', 'feedback'),
-
 
656
            'error' => false,
661
                        'error'=>false);
657
        ];
Línea 662... Línea 658...
662
    }
658
    }
663
 
659
 
664
    // Updating dates - shift may be negative too.
660
    // Updating dates - shift may be negative too.
665
    if ($data->timeshift) {
661
    if ($data->timeshift) {
666
        // Any changes to the list of dates that needs to be rolled should be same during course restore and course reset.
662
        // Any changes to the list of dates that needs to be rolled should be same during course restore and course reset.
-
 
663
        // See MDL-9367.
-
 
664
        $shifterror = !shift_course_mod_dates('feedback', ['timeopen', 'timeclose'], $data->timeshift, $data->courseid);
667
        // See MDL-9367.
665
        $status[] = [
-
 
666
            'component' => $componentstr,
-
 
667
            'item' => get_string('date'),
668
        $shifterror = !shift_course_mod_dates('feedback', array('timeopen', 'timeclose'), $data->timeshift, $data->courseid);
668
            'error' => $shifterror,
Línea 669... Línea 669...
669
        $status[] = array('component' => $componentstr, 'item' => get_string('datechanged'), 'error' => $shifterror);
669
        ];
670
    }
670
    }
Línea 686... Línea 686...
686
 
686
 
687
    if (!$feedbacks = $DB->get_records('feedback', array('course'=>$COURSE->id), 'name')) {
687
    if (!$feedbacks = $DB->get_records('feedback', array('course'=>$COURSE->id), 'name')) {
688
        return;
688
        return;
Línea 689... Línea 689...
689
    }
689
    }
690
 
690
 
691
    $mform->addElement('static', 'hint', get_string('resetting_data', 'feedback'));
691
    $mform->addElement('static', 'hint', get_string('resetting_delete', 'feedback'));
692
    foreach ($feedbacks as $feedback) {
692
    foreach ($feedbacks as $feedback) {
693
        $mform->addElement('checkbox', FEEDBACK_RESETFORM_RESET.$feedback->id, $feedback->name);
693
        $mform->addElement('checkbox', FEEDBACK_RESETFORM_RESET.$feedback->id, $feedback->name);
Línea 729... Línea 729...
729
 */
729
 */
730
function feedback_reset_course_form($course) {
730
function feedback_reset_course_form($course) {
731
    global $DB, $OUTPUT;
731
    global $DB, $OUTPUT;
Línea 732... Línea 732...
732
 
732
 
733
    echo get_string('resetting_feedbacks', 'feedback'); echo ':<br />';
733
    echo get_string('resetting_feedbacks', 'feedback'); echo ':<br />';
734
    if (!$feedbacks = $DB->get_records('feedback', array('course'=>$course->id), 'name')) {
734
    if (!$feedbacks = $DB->get_records('feedback', ['course' => $course->id], 'name')) {
735
        return;
735
        return;
Línea 736... Línea 736...
736
    }
736
    }
737
 
737
 
Línea 912... Línea 912...
912
////////////////////////////////////////////////
912
////////////////////////////////////////////////
913
//functions to handle capabilities
913
//functions to handle capabilities
914
////////////////////////////////////////////////
914
////////////////////////////////////////////////
Línea 915... Línea 915...
915
 
915
 
916
/**
-
 
917
 * @deprecated since 3.1
-
 
918
 */
-
 
919
function feedback_get_context() {
-
 
920
    throw new coding_exception('feedback_get_context() can not be used anymore.');
-
 
921
}
-
 
922
 
-
 
923
/**
-
 
924
 *  returns true if the current role is faked by switching role feature
-
 
925
 *
-
 
926
 * @global object
-
 
927
 * @return boolean
-
 
928
 */
-
 
929
function feedback_check_is_switchrole() {
-
 
930
    global $USER;
-
 
931
    if (isset($USER->switchrole) AND
-
 
932
            is_array($USER->switchrole) AND
-
 
933
            count($USER->switchrole) > 0) {
-
 
934
 
-
 
935
        return true;
-
 
936
    }
-
 
937
    return false;
-
 
938
}
-
 
939
 
-
 
940
/**
916
/**
941
 * count users which have not completed the feedback
917
 * count users which have not completed the feedback
942
 *
918
 *
943
 * @global object
919
 * @global object
944
 * @uses CONTEXT_MODULE
920
 * @uses CONTEXT_MODULE
Línea 973... Línea 949...
973
                                            '',
949
                                            '',
974
                                            '',
950
                                            '',
975
                                            $group,
951
                                            $group,
976
                                            '',
952
                                            '',
977
                                            true)) {
953
                                            true)) {
978
        return false;
954
        return [];
979
    }
955
    }
980
    // Filter users that are not in the correct group/grouping.
956
    // Filter users that are not in the correct group/grouping.
981
    $info = new \core_availability\info_module($cm);
957
    $info = new \core_availability\info_module($cm);
982
    $allusersrecords = $info->filter_user_list($allusers);
958
    $allusersrecords = $info->filter_user_list($allusers);
Línea 1071... Línea 1047...
1071
 * @return object the userrecords
1047
 * @return object the userrecords
1072
 */
1048
 */
1073
function feedback_get_complete_users($cm,
1049
function feedback_get_complete_users($cm,
1074
                                     $group = false,
1050
                                     $group = false,
1075
                                     $where = '',
1051
                                     $where = '',
1076
                                     array $params = null,
1052
                                     ?array $params = null,
1077
                                     $sort = '',
1053
                                     $sort = '',
1078
                                     $startpage = false,
1054
                                     $startpage = false,
1079
                                     $pagecount = false) {
1055
                                     $pagecount = false) {
Línea 1080... Línea 1056...
1080
 
1056
 
Línea 1147... Línea 1123...
1147
 * get users which have the receivemail-capability
1123
 * get users which have the receivemail-capability
1148
 *
1124
 *
1149
 * @uses CONTEXT_MODULE
1125
 * @uses CONTEXT_MODULE
1150
 * @param int $cmid
1126
 * @param int $cmid
1151
 * @param mixed $groups single groupid or array of groupids - group(s) user is in
1127
 * @param mixed $groups single groupid or array of groupids - group(s) user is in
1152
 * @return object the userrecords
1128
 * @return stdClass[] the userrecords
1153
 */
1129
 */
1154
function feedback_get_receivemail_users($cmid, $groups = false) {
1130
function feedback_get_receivemail_users($cmid, $groups = false) {
1155
 
-
 
1156
    $context = context_module::instance($cmid);
1131
    $context = context_module::instance($cmid);
Línea 1157... Línea -...
1157
 
-
 
1158
    //description of the call below:
-
 
1159
    //get_users_by_capability($context, $capability, $fields='', $sort='', $limitfrom='',
-
 
1160
    //                          $limitnum='', $groups='', $exceptions='', $doanything=true)
1132
 
1161
    return get_users_by_capability($context,
1133
    $allusers = get_users_by_capability($context,
1162
                            'mod/feedback:receivemail',
1134
                            'mod/feedback:receivemail',
1163
                            '',
1135
                            '',
1164
                            'lastname',
1136
                            'lastname',
1165
                            '',
1137
                            '',
1166
                            '',
1138
                            '',
1167
                            $groups,
1139
                            $groups,
1168
                            '',
1140
                            '',
-
 
1141
                            false);
-
 
1142
    if (empty($groups)) {
-
 
1143
        // Here the user that has submitted the feedback is not in any group.
-
 
1144
        [$course, $cm]  = get_course_and_cm_from_cmid($cmid);
-
 
1145
        $groupmode = groups_get_activity_groupmode($cm, $course);
-
 
1146
        if ($groupmode == SEPARATEGROUPS) {
-
 
1147
            // In separate group mode, only the user who can see all groups can see the feedback, so
-
 
1148
            // in turn can receive the notification.
-
 
1149
            $viewallgroupsusers = get_users_by_capability(
-
 
1150
                $context,
-
 
1151
                'moodle/site:accessallgroups',
-
 
1152
                'u.id, u.id'
-
 
1153
            );
-
 
1154
            // Remove users cannot access all groups.
-
 
1155
            $allusers = array_intersect_key($allusers, $viewallgroupsusers);
-
 
1156
        }
-
 
1157
    }
1169
                            false);
1158
    return $allusers;
Línea 1170... Línea 1159...
1170
}
1159
}
1171
 
1160
 
1172
////////////////////////////////////////////////
1161
////////////////////////////////////////////////
Línea 1559... Línea 1548...
1559
    }
1548
    }
1560
    return $dependitems;
1549
    return $dependitems;
1561
}
1550
}
Línea 1562... Línea 1551...
1562
 
1551
 
1563
/**
-
 
1564
 * @deprecated since 3.1
-
 
1565
 */
-
 
1566
function feedback_create_item() {
-
 
1567
    throw new coding_exception('feedback_create_item() can not be used anymore.');
-
 
1568
}
-
 
1569
 
-
 
1570
/**
1552
/**
1571
 * save the changes of a given item.
1553
 * save the changes of a given item.
1572
 *
1554
 *
1573
 * @global object
1555
 * @global object
1574
 * @param object $item
1556
 * @param object $item
Línea 1829... Línea 1811...
1829
    }
1811
    }
1830
    return false;
1812
    return false;
1831
}
1813
}
Línea 1832... Línea 1814...
1832
 
1814
 
1833
/**
-
 
1834
 * @deprecated since Moodle 3.1
-
 
1835
 */
-
 
1836
function feedback_print_item_preview() {
-
 
1837
    throw new coding_exception('feedback_print_item_preview() can not be used anymore. '
-
 
1838
            . 'Items must implement complete_form_element().');
-
 
1839
}
-
 
1840
 
-
 
1841
/**
-
 
1842
 * @deprecated since Moodle 3.1
-
 
1843
 */
-
 
1844
function feedback_print_item_complete() {
-
 
1845
    throw new coding_exception('feedback_print_item_complete() can not be used anymore. '
-
 
1846
        . 'Items must implement complete_form_element().');
-
 
1847
}
-
 
1848
 
-
 
1849
/**
-
 
1850
 * @deprecated since Moodle 3.1
-
 
1851
 */
-
 
1852
function feedback_print_item_show_value() {
-
 
1853
    throw new coding_exception('feedback_print_item_show_value() can not be used anymore. '
-
 
1854
        . 'Items must implement complete_form_element().');
-
 
1855
}
-
 
1856
 
-
 
1857
/**
1815
/**
1858
 * if the user completes a feedback and there is a pagebreak so the values are saved temporary.
1816
 * if the user completes a feedback and there is a pagebreak so the values are saved temporary.
1859
 * the values are not saved permanently until the user click on save button
1817
 * the values are not saved permanently until the user click on save button
1860
 *
1818
 *
1861
 * @global object
1819
 * @global object
Línea 1956... Línea 1914...
1956
    $event->trigger();
1914
    $event->trigger();
1957
    return $feedbackcompleted->id;
1915
    return $feedbackcompleted->id;
Línea 1958... Línea 1916...
1958
 
1916
 
Línea 1959... Línea -...
1959
}
-
 
1960
 
-
 
1961
/**
-
 
1962
 * @deprecated since Moodle 3.1
-
 
1963
 */
-
 
1964
function feedback_delete_completedtmp() {
-
 
1965
    throw new coding_exception('feedback_delete_completedtmp() can not be used anymore.');
-
 
1966
 
-
 
1967
}
1917
}
1968
 
1918
 
1969
////////////////////////////////////////////////
1919
////////////////////////////////////////////////
1970
////////////////////////////////////////////////
1920
////////////////////////////////////////////////
1971
////////////////////////////////////////////////
1921
////////////////////////////////////////////////
Línea 1981... Línea 1931...
1981
 * @return int|false false if there already is a pagebreak on last position or the id of the pagebreak-item
1931
 * @return int|false false if there already is a pagebreak on last position or the id of the pagebreak-item
1982
 */
1932
 */
1983
function feedback_create_pagebreak($feedbackid) {
1933
function feedback_create_pagebreak($feedbackid) {
1984
    global $DB;
1934
    global $DB;
Línea 1985... Línea 1935...
1985
 
1935
 
1986
    //check if there already is a pagebreak on the last position
1936
    // Disallow pagebreak if there's already one present in last position, or the feedback has no items.
1987
    $lastposition = $DB->count_records('feedback_item', array('feedback'=>$feedbackid));
1937
    $lastposition = $DB->count_records('feedback_item', array('feedback'=>$feedbackid));
1988
    if ($lastposition == feedback_get_last_break_position($feedbackid)) {
1938
    if ($lastposition == feedback_get_last_break_position($feedbackid)) {
1989
        return false;
1939
        return false;
Línea 2036... Línea 1986...
2036
        return false;
1986
        return false;
2037
    }
1987
    }
2038
    return $allbreaks[count($allbreaks) - 1];
1988
    return $allbreaks[count($allbreaks) - 1];
2039
}
1989
}
Línea 2040... Línea -...
2040
 
-
 
2041
/**
-
 
2042
 * @deprecated since Moodle 3.1
-
 
2043
 */
-
 
2044
function feedback_get_page_to_continue() {
-
 
2045
    throw new coding_exception('feedback_get_page_to_continue() can not be used anymore.');
-
 
2046
}
-
 
2047
 
1990
 
2048
////////////////////////////////////////////////
1991
////////////////////////////////////////////////
2049
////////////////////////////////////////////////
1992
////////////////////////////////////////////////
2050
////////////////////////////////////////////////
1993
////////////////////////////////////////////////
2051
//functions to handle the values
1994
//functions to handle the values
Línea 2052... Línea -...
2052
////////////////////////////////////////////////
-
 
2053
 
-
 
2054
/**
-
 
2055
 * @deprecated since Moodle 3.1
-
 
2056
 */
-
 
2057
function feedback_clean_input_value() {
-
 
2058
    throw new coding_exception('feedback_clean_input_value() can not be used anymore. '
-
 
2059
        . 'Items must implement complete_form_element().');
-
 
2060
 
-
 
2061
}
-
 
2062
 
-
 
2063
/**
-
 
2064
 * @deprecated since Moodle 3.1
-
 
2065
 */
-
 
2066
function feedback_save_values() {
-
 
2067
    throw new coding_exception('feedback_save_values() can not be used anymore.');
-
 
2068
}
-
 
2069
 
-
 
2070
/**
-
 
2071
 * @deprecated since Moodle 3.1
-
 
2072
 */
-
 
2073
function feedback_save_guest_values() {
-
 
Línea 2074... Línea 1995...
2074
    throw new coding_exception('feedback_save_guest_values() can not be used anymore.');
1995
////////////////////////////////////////////////
2075
}
1996
 
2076
 
1997
 
2077
/**
1998
/**
Línea 2115... Línea 2036...
2115
    $itemobj = feedback_get_item_class($item->typ);
2036
    $itemobj = feedback_get_item_class($item->typ);
2116
    return $itemobj->compare_value($item, $dbvalue, $dependvalue); //true or false
2037
    return $itemobj->compare_value($item, $dbvalue, $dependvalue); //true or false
2117
}
2038
}
Línea 2118... Línea 2039...
2118
 
2039
 
2119
/**
-
 
2120
 * @deprecated since Moodle 3.1
-
 
2121
 */
-
 
2122
function feedback_check_values() {
-
 
2123
    throw new coding_exception('feedback_check_values() can not be used anymore. '
-
 
2124
        . 'Items must implement complete_form_element().');
-
 
2125
}
-
 
2126
 
-
 
2127
/**
-
 
2128
 * @deprecated since Moodle 3.1
-
 
2129
 */
-
 
2130
function feedback_create_values() {
-
 
2131
    throw new coding_exception('feedback_create_values() can not be used anymore.');
-
 
2132
}
-
 
2133
 
-
 
2134
/**
-
 
2135
 * @deprecated since Moodle 3.1
-
 
2136
 */
-
 
2137
function feedback_update_values() {
-
 
2138
    throw new coding_exception('feedback_update_values() can not be used anymore.');
-
 
2139
}
-
 
2140
 
-
 
2141
/**
2040
/**
2142
 * get the values of an item depending on the given groupid.
2041
 * get the values of an item depending on the given groupid.
2143
 * if the feedback is anonymous so the values are shuffled
2042
 * if the feedback is anonymous so the values are shuffled
2144
 *
2043
 *
2145
 * @global object
2044
 * @global object
Línea 2231... Línea 2130...
2231
    }
2130
    }
2232
    return $DB->record_exists('feedback_completed', $params);
2131
    return $DB->record_exists('feedback_completed', $params);
2233
}
2132
}
Línea 2234... Línea 2133...
2234
 
2133
 
2235
/**
-
 
2236
 * @deprecated since Moodle 3.1. Use feedback_get_current_completed_tmp() or feedback_get_last_completed.
-
 
2237
 */
-
 
2238
function feedback_get_current_completed() {
-
 
2239
    throw new coding_exception('feedback_get_current_completed() can not be used anymore. Please ' .
-
 
2240
            'use either feedback_get_current_completed_tmp() or feedback_get_last_completed()');
-
 
2241
}
-
 
2242
 
-
 
2243
/**
2134
/**
2244
 * get the completeds depending on the given groupid.
2135
 * get the completeds depending on the given groupid.
2245
 *
2136
 *
2246
 * @global object
2137
 * @global object
2247
 * @global object
2138
 * @global object
Línea 2406... Línea 2297...
2406
////////////////////////////////////////////////
2297
////////////////////////////////////////////////
2407
//functions to handle sitecourse mapping
2298
//functions to handle sitecourse mapping
2408
////////////////////////////////////////////////
2299
////////////////////////////////////////////////
Línea 2409... Línea 2300...
2409
 
2300
 
2410
/**
-
 
2411
 * @deprecated since 3.1
-
 
2412
 */
-
 
2413
function feedback_is_course_in_sitecourse_map() {
-
 
2414
    throw new coding_exception('feedback_is_course_in_sitecourse_map() can not be used anymore.');
-
 
2415
}
-
 
2416
 
-
 
2417
/**
-
 
2418
 * @deprecated since 3.1
-
 
2419
 */
-
 
2420
function feedback_is_feedback_in_sitecourse_map() {
-
 
2421
    throw new coding_exception('feedback_is_feedback_in_sitecourse_map() can not be used anymore.');
-
 
2422
}
-
 
2423
 
-
 
2424
/**
2301
/**
2425
 * gets the feedbacks from table feedback_sitecourse_map.
2302
 * gets the feedbacks from table feedback_sitecourse_map.
2426
 * this is used to show the global feedbacks on the feedback block
2303
 * this is used to show the global feedbacks on the feedback block
2427
 * all feedbacks with the following criteria will be selected:<br />
2304
 * all feedbacks with the following criteria will be selected:<br />
2428
 *
2305
 *
Línea 2521... Línea 2398...
2521
        $DB->delete_records('feedback_sitecourse_map', array('feedbackid' => $feedback->id, 'courseid' => $courseid));
2398
        $DB->delete_records('feedback_sitecourse_map', array('feedbackid' => $feedback->id, 'courseid' => $courseid));
2522
    }
2399
    }
2523
    // TODO MDL-53574 add events.
2400
    // TODO MDL-53574 add events.
2524
}
2401
}
Línea 2525... Línea -...
2525
 
-
 
2526
/**
-
 
2527
 * @deprecated since 3.1
-
 
2528
 */
-
 
2529
function feedback_clean_up_sitecourse_map() {
-
 
2530
    throw new coding_exception('feedback_clean_up_sitecourse_map() can not be used anymore.');
-
 
2531
}
-
 
2532
 
2402
 
2533
////////////////////////////////////////////////
2403
////////////////////////////////////////////////
2534
////////////////////////////////////////////////
2404
////////////////////////////////////////////////
2535
////////////////////////////////////////////////
2405
////////////////////////////////////////////////
2536
//not relatable functions
2406
//not relatable functions
Línea 2537... Línea -...
2537
////////////////////////////////////////////////
-
 
2538
 
-
 
2539
/**
-
 
2540
 * @deprecated since 3.1
-
 
2541
 */
-
 
2542
function feedback_print_numeric_option_list() {
-
 
Línea 2543... Línea 2407...
2543
    throw new coding_exception('feedback_print_numeric_option_list() can not be used anymore.');
2407
////////////////////////////////////////////////
2544
}
2408
 
2545
 
2409
 
2546
/**
2410
/**
Línea 2814... Línea 2678...
2814
    if (!$context = context_module::instance($settings->get_page()->cm->id, IGNORE_MISSING)) {
2678
    if (!$context = context_module::instance($settings->get_page()->cm->id, IGNORE_MISSING)) {
2815
        throw new \moodle_exception('badcontext');
2679
        throw new \moodle_exception('badcontext');
2816
    }
2680
    }
Línea 2817... Línea 2681...
2817
 
2681
 
2818
    if (has_capability('mod/feedback:edititems', $context)) {
2682
    if (has_capability('mod/feedback:edititems', $context)) {
-
 
2683
        $feedbacknode->add(get_string('questions', 'feedback'),
2819
        $questionnode = $feedbacknode->add(get_string('questions', 'feedback'), null,
2684
            new moodle_url('/mod/feedback/edit.php', ['id' => $settings->get_page()->cm->id]),
2820
            navigation_node::TYPE_CUSTOM, null, 'questionnode');
-
 
2821
        $questionnode->add(get_string('edit_items', 'feedback'),
-
 
2822
            new moodle_url('/mod/feedback/edit.php', ['id' => $settings->get_page()->cm->id]));
-
 
2823
 
-
 
2824
        $questionnode->add(get_string('export_questions', 'feedback'),
-
 
2825
            new moodle_url('/mod/feedback/export.php', ['id' => $settings->get_page()->cm->id, 'action' => 'exportfile']));
-
 
2826
 
-
 
2827
        $questionnode->add(get_string('import_questions', 'feedback'),
-
 
Línea 2828... Línea 2685...
2828
            new moodle_url('/mod/feedback/import.php', ['id' => $settings->get_page()->cm->id]));
2685
            navigation_node::TYPE_CUSTOM, null, 'questionnode');
2829
 
2686
 
2830
        $feedbacknode->add(get_string('templates', 'feedback'),
2687
        $feedbacknode->add(get_string('templates', 'feedback'),
2831
            new moodle_url('/mod/feedback/manage_templates.php', ['id' => $settings->get_page()->cm->id, 'mode' => 'manage']),
2688
            new moodle_url('/mod/feedback/manage_templates.php', ['id' => $settings->get_page()->cm->id]),
Línea 2832... Línea 2689...
2832
            navigation_node::TYPE_CUSTOM, null, 'templatenode');
2689
            navigation_node::TYPE_CUSTOM, null, 'templatenode');
2833
    }
2690
    }
Línea 2848... Línea 2705...
2848
            new moodle_url('/mod/feedback/analysis.php', ['id' => $settings->get_page()->cm->id]),
2705
            new moodle_url('/mod/feedback/analysis.php', ['id' => $settings->get_page()->cm->id]),
2849
            navigation_node::TYPE_CUSTOM, null, 'feedbackanalysis');
2706
            navigation_node::TYPE_CUSTOM, null, 'feedbackanalysis');
2850
    }
2707
    }
Línea 2851... Línea 2708...
2851
 
2708
 
-
 
2709
    if (has_capability('mod/feedback:viewreports', $context)) {
2852
    if (has_capability('mod/feedback:viewreports', $context)) {
2710
        if (manager::can_see_others_in_groups($settings->get_page()->cm)) {
2853
        $feedbacknode->add_node($analysisnode);
2711
            $feedbacknode->add_node($analysisnode);
2854
        $feedbacknode->add(get_string(($hassecondary ? 'responses' : 'show_entries'), 'feedback'),
2712
            $feedbacknode->add(get_string(($hassecondary ? 'responses' : 'show_entries'), 'feedback'),
2855
            new moodle_url('/mod/feedback/show_entries.php', ['id' => $settings->get_page()->cm->id]),
2713
                new moodle_url('/mod/feedback/show_entries.php', ['id' => $settings->get_page()->cm->id]),
-
 
2714
                navigation_node::TYPE_CUSTOM, null, 'responses');
2856
            navigation_node::TYPE_CUSTOM, null, 'responses');
2715
        }
2857
    } else {
2716
    } else {
2858
        $feedbackcompletion = new mod_feedback_completion($feedback, $context, $settings->get_page()->course->id);
2717
        $feedbackcompletion = new mod_feedback_completion($feedback, $context, $settings->get_page()->course->id);
2859
        if ($feedbackcompletion->can_view_analysis()) {
2718
        if ($feedbackcompletion->can_view_analysis()) {
2860
            $feedbacknode->add_node($analysisnode);
2719
            $feedbacknode->add_node($analysisnode);
Línea 2883... Línea 2742...
2883
    return $module_pagetype;
2742
    return $module_pagetype;
2884
}
2743
}
Línea 2885... Línea 2744...
2885
 
2744
 
2886
/**
2745
/**
2887
 * Move save the items of the given $feedback in the order of $itemlist.
2746
 * Move save the items of the given $feedback in the order of $itemlist.
2888
 * @param string $itemlist a comma separated list with item ids
2747
 * @param array $itemlist a list with item ids
2889
 * @param stdClass $feedback
2748
 * @param stdClass $feedback
2890
 * @return bool true if success
2749
 * @return bool true if success
2891
 */
2750
 */
2892
function feedback_ajax_saveitemorder($itemlist, $feedback) {
2751
function feedback_ajax_saveitemorder($itemlist, $feedback) {
Línea 2933... Línea 2792...
2933
/**
2792
/**
2934
 * Get icon mapping for font-awesome.
2793
 * Get icon mapping for font-awesome.
2935
 */
2794
 */
2936
function mod_feedback_get_fontawesome_icon_map() {
2795
function mod_feedback_get_fontawesome_icon_map() {
2937
    return [
2796
    return [
2938
        'mod_feedback:required' => 'fa-exclamation-circle',
2797
        'mod_feedback:notrequired' => 'fa-circle-question',
2939
        'mod_feedback:notrequired' => 'fa-question-circle-o',
2798
        'mod_feedback:required' => 'fa-circle-exclamation',
2940
    ];
2799
    ];
2941
}
2800
}
Línea 2942... Línea 2801...
2942
 
2801
 
2943
/**
2802
/**