27
27
require_once($CFG->libdir.'/eventslib.php');
28
28
/** Include calendar/lib.php */
29
29
require_once($CFG->dirroot.'/calendar/lib.php');
31
require_once($CFG->libdir.'/formslib.php');
31
33
define('FEEDBACK_ANONYMOUS_YES', 1);
32
34
define('FEEDBACK_ANONYMOUS_NO', 2);
384
386
$sqlargs = array();
386
//TODO: user user_picture::fields;
387
$sql = " SELECT fk . * , fc . * , u.firstname, u.lastname, u.email, u.picture, u.email
388
FROM {feedback_completed} fc
389
JOIN {feedback} fk ON fk.id = fc.feedback
390
JOIN {user} u ON u.id = fc.userid ";
388
$userfields = user_picture::fields('u', null, 'useridagain');
389
$sql = " SELECT fk . * , fc . * , $userfields
390
FROM {feedback_completed} fc
391
JOIN {feedback} fk ON fk.id = fc.feedback
392
JOIN {user} u ON u.id = fc.userid ";
393
395
$sql .= " JOIN {groups_members} gm ON gm.userid=u.id ";
421
423
$viewfullnames = has_capability('moodle/site:viewfullnames', $cm_context);
422
424
$groupmode = groups_get_activity_groupmode($cm, $course);
424
if (is_null($modinfo->groups)) {
425
// load all my groups and cache it in modinfo
426
$modinfo->groups = groups_get_user_groups($course->id);
429
426
$aname = format_string($cm->name, true);
430
427
foreach ($feedbackitems as $feedbackitem) {
431
428
if ($feedbackitem->userid != $USER->id) {
457
454
$tmpactivity->content->feedbackid = $feedbackitem->id;
458
455
$tmpactivity->content->feedbackuserid = $feedbackitem->userid;
460
$userfields = explode(',', user_picture::fields());
461
$tmpactivity->user = new stdClass();
462
foreach ($userfields as $userfield) {
463
if ($userfield == 'id') {
464
$tmpactivity->user->{$userfield} = $feedbackitem->userid; // aliased in SQL above
466
if (!empty($feedbackitem->{$userfield})) {
467
$tmpactivity->user->{$userfield} = $feedbackitem->{$userfield};
469
$tmpactivity->user->{$userfield} = null;
457
$tmpactivity->user = user_picture::unalias($feedbackitem, null, 'useridagain');
473
458
$tmpactivity->user->fullname = fullname($feedbackitem, $viewfullnames);
475
460
$activities[$index++] = $tmpactivity;
1127
1112
//if the template is public the files are in the system context
1128
1113
//files in the feedback_item are in the feedback_context of the feedback
1129
1114
if ($ispublic) {
1130
$s_context = get_system_context();
1115
$s_context = context_system::instance();
1132
1117
$s_context = context_course::instance($newtempl->course);
1232
1217
//files in the template_item are in the context of the current course
1233
1218
//files in the feedback_item are in the feedback_context of the feedback
1234
1219
if ($template->ispublic) {
1235
$s_context = get_system_context();
1220
$s_context = context_system::instance();
1237
1222
$s_context = context_course::instance($feedback->course);
1906
1891
//drop all the tmpvalues
1907
1892
$DB->delete_records('feedback_valuetmp', array('completed'=>$tmpcplid));
1908
1893
$DB->delete_records('feedback_completedtmp', array('id'=>$tmpcplid));
1895
// Trigger event for the delete action we performed.
1896
$cm = get_coursemodule_from_instance('feedback', $feedbackcompleted->feedback);
1897
$event = \mod_feedback\event\response_submitted::create(array(
1898
'relateduserid' => $userid,
1899
'objectid' => $feedbackcompleted->id,
1900
'context' => context_module::instance($cm->id),
1903
'instanceid' => $feedbackcompleted->feedback,
1904
'anonymous' => $feedbackcompleted->anonymous_response
1908
$event->add_record_snapshot('feedback_completed', $feedbackcompleted);
1909
1911
return $feedbackcompleted->id;
2391
2393
//if the groupid is given?
2392
2394
if (intval($groupid) > 0) {
2393
2396
if ($ignore_empty) {
2394
$ignore_empty_select = "AND fbv.value != '' AND fbv.value != '0'";
2397
$value = $DB->sql_compare_text('fbv.value');
2398
$ignore_empty_select = "AND $value != :emptyvalue AND $value != :zerovalue";
2399
$params += array('emptyvalue' => '', 'zerovalue' => '0');
2396
2401
$ignore_empty_select = "";
2399
2404
$query = 'SELECT fbv . *
2400
2405
FROM {feedback_value} fbv, {feedback_completed} fbc, {groups_members} gm
2406
WHERE fbv.item = :itemid
2402
2407
AND fbv.completed = fbc.id
2403
2408
AND fbc.userid = gm.userid
2404
2409
'.$ignore_empty_select.'
2410
AND gm.groupid = :groupid
2406
2411
ORDER BY fbc.timemodified';
2407
$values = $DB->get_records_sql($query, array($item->id, $groupid));
2412
$params += array('itemid' => $item->id, 'groupid' => $groupid);
2413
$values = $DB->get_records_sql($query, $params);
2410
2417
if ($ignore_empty) {
2411
$ignore_empty_select = "AND value != '' AND value != '0'";
2418
$value = $DB->sql_compare_text('value');
2419
$ignore_empty_select = "AND $value != :emptyvalue AND $value != :zerovalue";
2420
$params += array('emptyvalue' => '', 'zerovalue' => '0');
2413
2422
$ignore_empty_select = "";
2416
2425
if ($courseid) {
2417
$select = "item = ? AND course_id = ? ".$ignore_empty_select;
2418
$params = array($item->id, $courseid);
2426
$select = "item = :itemid AND course_id = :courseid ".$ignore_empty_select;
2427
$params += array('itemid' => $item->id, 'courseid' => $courseid);
2419
2428
$values = $DB->get_records_select('feedback_value', $select, $params);
2421
$select = "item = ? ".$ignore_empty_select;
2422
$params = array($item->id);
2430
$select = "item = :itemid ".$ignore_empty_select;
2431
$params += array('itemid' => $item->id);
2423
2432
$values = $DB->get_records_select('feedback_value', $select, $params);
2660
2669
if ($completion->is_enabled($cm) && $feedback->completionsubmit) {
2661
2670
$completion->update_state($cm, COMPLETION_INCOMPLETE, $completed->userid);
2663
//last we delete the completed-record
2664
return $DB->delete_records('feedback_completed', array('id'=>$completed->id));
2672
// Last we delete the completed-record.
2673
$return = $DB->delete_records('feedback_completed', array('id'=>$completed->id));
2675
// Trigger event for the delete action we performed.
2676
$event = \mod_feedback\event\response_deleted::create(array(
2677
'relateduserid' => $completed->userid,
2678
'objectid' => $completedid,
2679
'courseid' => $course->id,
2680
'context' => context_module::instance($cm->id),
2681
'other' => array('cmid' => $cm->id, 'instanceid' => $feedback->id, 'anonymous' => $completed->anonymous_response)
2684
$event->add_record_snapshot('feedback_completed', $completed);
2685
$event->add_record_snapshot('course', $course);
2686
$event->add_record_snapshot('feedback', $feedback);
2667
2693
////////////////////////////////////////////////