|
@@ -1,13 +1,10 @@
|
|
<?php
|
|
<?php
|
|
|
|
|
|
-namespace gradeimporter{
|
|
|
|
|
|
+function get_comments($cmid, $id){
|
|
|
|
+ global $DB, $USER, $CFG;
|
|
|
|
+ $tp = $CFG->prefix; // gets moodle tables prefix, not everyone uses mdl_
|
|
|
|
|
|
- class feedback {
|
|
|
|
- public static function get_comments($cmid, $id) {
|
|
|
|
- global $DB, $USER, $CFG;
|
|
|
|
- $tp = $CFG->prefix; // gets moodle tables prefix, not everyone uses mdl_
|
|
|
|
-
|
|
|
|
- $sql = "
|
|
|
|
|
|
+ $sql = "
|
|
SELECT gf.id gf_id,
|
|
SELECT gf.id gf_id,
|
|
gf.grade,
|
|
gf.grade,
|
|
gf.comment gf_comment,
|
|
gf.comment gf_comment,
|
|
@@ -25,61 +22,159 @@ namespace gradeimporter{
|
|
JOIN ".$tp."gradeimporter_submissiontype gst
|
|
JOIN ".$tp."gradeimporter_submissiontype gst
|
|
ON gs.type = gst.id
|
|
ON gs.type = gst.id
|
|
WHERE gf.studentid = ?";
|
|
WHERE gf.studentid = ?";
|
|
- $comments = array();
|
|
|
|
- $records = $DB->get_records_sql($sql, array('studentid'=>$USER->id));
|
|
|
|
-
|
|
|
|
- $data = array();
|
|
|
|
- if (count($records)) {
|
|
|
|
- foreach ($records as $key => $value) {
|
|
|
|
- if (!array_key_exists($value->gst_name, $data)) $data[$value->gst_name] = array();
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- $fileurl = buildurl ($cmid, $id, $value->gf_id, $value->gf_name);
|
|
|
|
-
|
|
|
|
- $data[$value->gst_name][] = array($value->gs_name, $value->grade, $value->gf_comment, $fileurl);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return $data;
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
|
+ $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;
|
|
}
|
|
}
|
|
|
|
|
|
-namespace{
|
|
|
|
- require_once($CFG->libdir.'/filelib.php');
|
|
|
|
- require_once("$CFG->libdir/csvlib.class.php");
|
|
|
|
|
|
+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);
|
|
|
|
|
|
- function buildurl($cmid, $id, $fileid, $filename){
|
|
|
|
|
|
+ foreach ($records as $record){
|
|
|
|
+ echo "passou userid $record->gf_studentid fileid $record->gf_fileid <br>";
|
|
|
|
+ $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;
|
|
|
|
|
|
- $fileurl = new moodle_url("/mod/gradeimporter/view.php", array('cmid'=>$cmid, 'id'=>$id, 'fileid'=>$fileid, 'filename'=>$filename, 'action'=>1));
|
|
|
|
- return "<a href=$fileurl> $filename</a>";
|
|
|
|
- /*$fs = get_file_storage();
|
|
|
|
- $file = $fs->get_file($contextid, 'mod_gradeimporter', 'gradeimporter_feedback', $fileid, '/', $filename);
|
|
|
|
- if ($file){
|
|
|
|
- send_stored_file($file, 86400, 0, true);
|
|
|
|
|
|
+ $cell = new html_table_cell ($url);
|
|
|
|
+ $row->cells[] = $cell;
|
|
}
|
|
}
|
|
- return moodle_url::make_pluginfile_url($contextid, 'mod_gradeimporter', 'gradeimporter_feedback', $fileid, '/', $filename, $forcedownload);*/
|
|
|
|
|
|
+ $table->data[] = $row;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ //gets all submission types relative to the gradeimporter instance
|
|
|
|
+ /*$subtype_array = $DB->get_records("gradeimporter_submissiontype", array('gradeimporterid' => $gradeimporterid), 'id', '*');
|
|
|
|
|
|
- function exportCSV($context){
|
|
|
|
- $enrolledusers = get_enrolled_users ($context, 'mod/gradeimporter:student');
|
|
|
|
- $data = array();
|
|
|
|
- $header = array('id', 'name', 'email', 'grade', 'comment', 'file');
|
|
|
|
|
|
+ foreach ($subtype_array as $subtype) {
|
|
|
|
+ //gets all submissions from a subtype;
|
|
|
|
+ $submission_array = $DB->get_records("gradeimporter_submission", array('type' => $subtype->id), 'id', '*');
|
|
|
|
|
|
- $csvexport = new csv_export_writer();
|
|
|
|
- $csvexport->set_filename('config');
|
|
|
|
- $csvexport->add_data($header);
|
|
|
|
|
|
+ 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 ($enrolledusers as $value){
|
|
|
|
- $name = $value->firstname.' '.$value->lastname;
|
|
|
|
- $studententry = array($value->id, $name, $value->email,'','','');
|
|
|
|
- $csvexport->add_data($studententry);
|
|
|
|
|
|
+ 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){
|
|
|
|
|
|
- $csvexport->download_file();
|
|
|
|
- //$dlfile = $csvexporter->download_array('config', $data);
|
|
|
|
|
|
+ $fileurl = new moodle_url("/mod/gradeimporter/view.php", array('id' => $cmid, 'fileid' => $fileid, 'filename' => $filename, 'action' => 1));
|
|
|
|
+ return "<a href=$fileurl> $filename</a>";
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+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);
|
|
|
|
+
|
|
|
|
+}
|