Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
// This file is part of Moodle - http://moodle.org/
3
//
4
// Moodle is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// Moodle is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16
 
17
/**
18
 * print the single entries
19
 *
20
 * @author Andreas Grabs
21
 * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
22
 * @package mod_feedback
23
 */
24
 
25
require_once("../../config.php");
26
require_once("lib.php");
27
 
28
////////////////////////////////////////////////////////
29
//get the params
30
////////////////////////////////////////////////////////
31
$id = required_param('id', PARAM_INT);
32
$userid = optional_param('userid', false, PARAM_INT);
33
$showcompleted = optional_param('showcompleted', false, PARAM_INT);
34
$deleteid = optional_param('delete', null, PARAM_INT);
35
$courseid = optional_param('courseid', null, PARAM_INT);
36
 
37
////////////////////////////////////////////////////////
38
//get the objects
39
////////////////////////////////////////////////////////
40
 
41
list($course, $cm) = get_course_and_cm_from_cmid($id, 'feedback');
42
 
43
$baseurl = new moodle_url('/mod/feedback/show_entries.php', array('id' => $cm->id));
44
$PAGE->set_url(new moodle_url($baseurl, array('userid' => $userid, 'showcompleted' => $showcompleted,
45
        'delete' => $deleteid)));
46
$context = context_module::instance($cm->id);
47
 
48
require_login($course, true, $cm);
49
$feedback = $PAGE->activityrecord;
50
 
51
require_capability('mod/feedback:viewreports', $context);
52
 
53
$actionbar = new \mod_feedback\output\responses_action_bar($cm->id, $baseurl);
54
 
55
if ($deleteid) {
56
    // This is a request to delete a reponse.
57
    require_capability('mod/feedback:deletesubmissions', $context);
58
    require_sesskey();
59
    $feedbackstructure = new mod_feedback_completion($feedback, $cm, 0, true, $deleteid);
60
    feedback_delete_completed($feedbackstructure->get_completed(), $feedback, $cm);
61
    redirect($baseurl);
62
} else if ($showcompleted || $userid) {
63
    // Viewing individual response.
64
    $feedbackstructure = new mod_feedback_completion($feedback, $cm, 0, true, $showcompleted, $userid);
65
} else {
66
    // Viewing list of reponses.
67
    $feedbackstructure = new mod_feedback_structure($feedback, $cm, $courseid);
68
}
69
 
70
$responsestable = new mod_feedback_responses_table($feedbackstructure);
71
$anonresponsestable = new mod_feedback_responses_anon_table($feedbackstructure);
72
 
73
if ($responsestable->is_downloading()) {
74
    $responsestable->download();
75
}
76
if ($anonresponsestable->is_downloading()) {
77
    $anonresponsestable->download();
78
}
79
 
80
// Process course select form.
81
$courseselectform = new mod_feedback_course_select_form($baseurl, $feedbackstructure, $feedback->course == SITEID);
82
if ($data = $courseselectform->get_data()) {
83
    redirect(new moodle_url($baseurl, ['courseid' => $data->courseid]));
84
}
85
// Print the page header.
86
navigation_node::override_active_url($baseurl);
87
$PAGE->set_heading($course->fullname);
88
$PAGE->set_title($feedback->name);
89
$PAGE->activityheader->set_attrs([
90
    'hidecompletion' => true,
91
    'description' => ''
92
]);
93
$PAGE->add_body_class('limitedwidth');
94
echo $OUTPUT->header();
95
 
96
/** @var \mod_feedback\output\renderer $renderer */
97
$renderer = $PAGE->get_renderer('mod_feedback');
98
echo $renderer->main_action_bar($actionbar);
99
echo $OUTPUT->heading(get_string('show_entries', 'mod_feedback'), 3);
100
 
101
$current_tab = 'showentries';
102
 
103
/// Print the main part of the page
104
///////////////////////////////////////////////////////////////////////////
105
///////////////////////////////////////////////////////////////////////////
106
///////////////////////////////////////////////////////////////////////////
107
 
108
if ($userid || $showcompleted) {
109
    // Print the response of the given user.
110
    $completedrecord = $feedbackstructure->get_completed();
111
 
112
    if ($userid) {
113
        $usr = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST);
114
        $responsetitle = userdate($completedrecord->timemodified) . ' (' . fullname($usr) . ')';
115
    } else {
116
        $responsetitle = get_string('response_nr', 'feedback') . ': ' .
117
                $completedrecord->random_response . ' (' . get_string('anonymous', 'feedback') . ')';
118
    }
119
 
120
    echo $OUTPUT->heading($responsetitle, 4);
121
 
122
    $form = new mod_feedback_complete_form(mod_feedback_complete_form::MODE_VIEW_RESPONSE,
123
            $feedbackstructure, 'feedback_viewresponse_form');
124
    $form->display();
125
 
126
    list($prevresponseurl, $returnurl, $nextresponseurl) = $userid ?
127
            $responsestable->get_reponse_navigation_links($completedrecord) :
128
            $anonresponsestable->get_reponse_navigation_links($completedrecord);
129
 
130
    echo html_writer::start_div('response_navigation');
131
 
132
    $responsenavigation = [
133
        'col1content' => '',
134
        'col2content' => html_writer::link($returnurl, get_string('back'), ['class' => 'back_to_list']),
135
        'col3content' => '',
136
    ];
137
 
138
    if ($prevresponseurl) {
139
        $responsenavigation['col1content'] = html_writer::link($prevresponseurl, get_string('prev'), ['class' => 'prev_response']);
140
    }
141
 
142
    if ($nextresponseurl) {
143
        $responsenavigation['col3content'] = html_writer::link($nextresponseurl, get_string('next'), ['class' => 'next_response']);
144
    }
145
 
146
    echo $OUTPUT->render_from_template('core/columns-1to1to1', $responsenavigation);
147
    echo html_writer::end_div();
148
 
149
} else {
150
    // Print the list of responses.
151
    $courseselectform->display();
152
 
153
    // Show non-anonymous responses (always retrieve them even if current feedback is anonymous).
154
    $totalrows = $responsestable->get_total_responses_count();
155
    if (!$feedbackstructure->is_anonymous() || $totalrows) {
156
        echo $OUTPUT->heading(get_string('non_anonymous_entries', 'feedback', $totalrows), 4);
157
        $responsestable->display();
158
    }
159
 
160
    // Show anonymous responses (always retrieve them even if current feedback is not anonymous).
161
    $feedbackstructure->shuffle_anonym_responses();
162
    $totalrows = $anonresponsestable->get_total_responses_count();
163
    if ($feedbackstructure->is_anonymous() || $totalrows) {
164
        echo $OUTPUT->heading(get_string('anonymous_entries', 'feedback', $totalrows), 4);
165
        $anonresponsestable->display();
166
    }
167
 
168
}
169
 
170
// Finish the page.
171
echo $OUTPUT->footer();