prefix; // gets moodle tables prefix, not everyone uses mdl_
$sql = "
SELECT gf.id gf_id,
gf.grade,
gf.comment gf_comment,
gf.contextid gf_contextid,
gf.fileid gf_fileid,
gf.name gf_name,
gs.name gs_name,
gs.description gs_description,
gst.name gst_name,
gst.description gst_description,
fileid
FROM ".$tp."gradeimporter_feedback gf
JOIN ".$tp."gradeimporter_submission gs
ON gf.submissionid = gs.id
JOIN ".$tp."gradeimporter_submissiontype gst
ON gs.type = gst.id
WHERE gf.studentid = ?";
$records = $DB->get_records_sql($sql, array('studentid' => $USER->id));
$data = array();
if (count($records)) {
foreach ($records as $value) {
if (!array_key_exists($value->gst_name, $data)) $data[$value->gst_name] = array();
$fileurl = buildurl($cmid, $value->gf_id, $value->gf_name);
$data[$value->gst_name][] = array($value->gs_name, $value->grade, $value->gf_comment, $fileurl);
}
}
return $data;
}
function get_teacher_view($cmid, $gradeimporterid, $enrolledusers){
global $DB, $CFG;
$tp = $CFG->prefix; // gets moodle tables prefix, not everyone uses mdl_
$table = new html_table();
$table->attributes['class'] = 'generaltable mod_index';
$table->align = array();
//creates table head
/*$subrow = new html_table_row();
$subrow->cells[] = new html_table_cell(get_string('nameCol', 'gradeimporter'));
*/
$subrow = array(get_string('nameCol', 'gradeimporter'));
$table->align[] = 'center';
$submissionsSQL = "SELECT id, name
FROM mdl_gradeimporter_submission
WHERE gradeimporterid = 1
ORDER BY id";
$submissions = $DB->get_records_sql($submissionsSQL);
foreach ($submissions as $submission){
$subrow[] = $submission->name;
$table->align[] = 'center';
}
$table->head = $subrow;
//all submissions names are on the table
$sql = " SELECT gs.id gs_id,
gs.gradeimporterid gs_gradeimporterid,
gs.type gs_type,
gs.name gs_name,
gst.name gst_name,
gf.id gf_id,
gf.studentid gf_studentid,
gf.grade gf_grade,
gf.fileid gf_fileid,
gf.contextid gf_contextid,
gf.name gf_name,
user.firstname user_firstname,
user.lastname user_lastname
FROM ".$tp."gradeimporter_feedback gf
JOIN ".$tp."user user
ON user.id = gf.studentid
JOIN ".$tp."gradeimporter_submission gs
ON gs.id = gf.submissionid
JOIN ".$tp."gradeimporter_submissiontype gst
ON gst.id = gs.type
WHERE gs.gradeimporterid = $gradeimporterid
ORDER BY user.firstname, user.lastname, gs.id, gf.id";
$records = $DB->get_recordset_sql($sql);
$usersList = array();
foreach ($enrolledusers as $user){
$usersList[$user->id] = array('name'=>$user->firstname." ".$user->lastname);
}
ksort($usersList);
foreach ($records as $record){
echo "passou userid $record->gf_studentid fileid $record->gf_fileid
";
$url = buildurl($cmid, $record->gf_id, $record->gf_name);
$usersList[$record->gf_studentid][$record->gs_id] = array('grade'=>$record->gf_grade, 'file'=>$url);
}
foreach($usersList as $user){
$row = new html_table_row();
$cell = new html_table_cell($user['name']);
$row->cells[] = $cell;
foreach ($submissions as $submission){
if (array_key_exists($submission->id, $user)){
$url = $user[$submission->id]['file'];
$grade = $user[$submission->id]['grade'];
} else{
$url = '-';
$grade = '-';
}
$cell = new html_table_cell ($grade);
$row->cells[] = $cell;
$cell = new html_table_cell ($url);
$row->cells[] = $cell;
}
$table->data[] = $row;
}
//gets all submission types relative to the gradeimporter instance
/*$subtype_array = $DB->get_records("gradeimporter_submissiontype", array('gradeimporterid' => $gradeimporterid), 'id', '*');
foreach ($subtype_array as $subtype) {
//gets all submissions from a subtype;
$submission_array = $DB->get_records("gradeimporter_submission", array('type' => $subtype->id), 'id', '*');
foreach ($submission_array as $submission) {
//gets all feedbacks from a submission
$feedback_array = $DB->get_records("gradeimporter_feedback", array('submissionid' => $submission->id), 'id', '*');
$cell = new html_table_cell($submission->name);
$cell->colspan = 2;
$subrow->cells[] = $cell;
foreach ($feedback_array as $feedback) {
//for each feedback add it to the correspondent user list in $enrolledusers
}
}
$table->data[] = $subrow;
}*/
echo html_writer::table($table);
}
require_once($CFG->libdir . '/filelib.php');
require_once("$CFG->libdir/csvlib.class.php");
function buildurl($cmid, $fileid, $filename){
$fileurl = new moodle_url("/mod/gradeimporter/view.php", array('id' => $cmid, 'fileid' => $fileid, 'filename' => $filename, 'action' => 1));
return " $filename";
}
function exportCSV($context){
$enrolledusers = get_enrolled_users($context, 'mod/gradeimporter:student');
$header = array('id', 'name', 'email', 'grade', 'comment', 'file');
$csvexport = new csv_export_writer();
$csvexport->set_filename('config');
$csvexport->add_data($header);
foreach ($enrolledusers as $value) {
$name = $value->firstname . ' ' . $value->lastname;
$studententry = array($value->id, $name, $value->email, '', '', '');
$csvexport->add_data($studententry);
}
$csvexport->download_file();
//$dlfile = $csvexporter->download_array('config', $data);
}