| 
					
				 | 
			
			
				@@ -1,13 +1,10 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <?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, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 gf.grade, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 gf.comment gf_comment, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -25,61 +22,159 @@ namespace gradeimporter{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             JOIN ".$tp."gradeimporter_submissiontype gst 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               ON gs.type = gst.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |