// Las instancias que almacenará dependerá de la configuración de la actividad (agrupamientos) $activities = array(); // Array de dos dimensiones [usuario][actividad]; // Contendrá código HTML que se mostrará en las celdas de la tabla de calificaciones. // Su contenido dependerá de los privilegios del usuario. $content_cells = array(); $evalcomix = evalcomix::fetch(array('courseid' => $courseid)); $showmessage = false; //////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////// Se comprueba si hay que pasar notas al libro ///////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////// // prints paging bar at top for large pages $studentsperpage = $report_evalcomix->studentsperpage; $numusers = $report_evalcomix->get_numusers(); include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tasks.php'; $tasks = evalcomix_tasks::get_tasks_by_courseid($courseid); //if (has_capability('block/evalcomix:edit',$context, $USER->id) && ($grd == 1 || $grd == 2 || $grd == 3)){ if (has_capability('moodle/block:edit', $context, $USER->id) && ($grd == 1 || $grd == 2 || $grd == 3)) { $blockdb = $DB->get_records('modules', array()); $cmdb = $DB->get_records('course_modules', array('course' => $courseid)); foreach ($blockdb as $b) { $mod = $b->id; $blocks[$mod] = $b->name; } foreach ($cmdb as $cm) { $mod = $cm->module; $module = $blocks[$mod]; $instance = $cm->instance; $cms[$module][$instance] = $cm->id; } include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_grades.php';
/** * @param int $courseid * @return mixed array of moodle activities configurated by evalcomix. * Array key is evalcomix_tasks ID and Array value is activity name */ public static function get_moodle_course_tasks($courseid) { global $DB; $evalcomix_tasks = evalcomix_tasks::get_tasks_by_courseid($courseid); //get_course_tasks($courseid); lo he cambiado por el tema de la duplicacion de funciones, probar si va bien $result = array(); foreach ($evalcomix_tasks as $task) { $cm = $DB->get_record('course_modules', array('id' => $task->instanceid)); if ($cm) { $module = evalcomix_tasks::get_type_task($cm->id); $task_moodle = $DB->get_record($module, array('id' => $cm->instance)); $result[] = array('id' => $task->id, 'nombre' => $task_moodle->name); } } return $result; }
$this->taskid = 0; } //Por si queremos crear una instancia vacía (para usar evalcomix_object::fetch_all_helper es necesario) if (is_numeric($assessorid) && !is_float($assessorid) && $assessorid > '0') { //if($assessorid != '0'){ $assessor = $DB->get_record('user', array('id' => $assessorid), '*', MUST_EXIST); $this->assessorid = $assessor->id; } else { $this->assessorid = 0; } //Por si queremos crear una instancia vacía (para usar evalcomix_object::fetch_all_helper es necesario) if (is_numeric($studentid) && !is_float($studentid) && $studentid > '0') { //if($studentid != '0'){ $student = $DB->get_record('user', array('id' => $studentid), '*', MUST_EXIST); $this->studentid = $student->id; } else { $this->studentid = 0; } } /** * Updates this object in the Database, based on its object variables. ID must be set. * @param string $source from where was the object updated (mod/forum, manual, etc.) * @return boolean success */ public function update() { global $DB; if (empty($this->id)) { debugging('Can not update assessment object, no id!'); return false; } $this->timemodified = time(); $data = $this->get_record_data(); $DB->update_record($this->table, $data); $this->notify_changed(false); return true; } /** * Updates this object in the Database, based on its object variables. ID must be set. * @param string $source from where was the object updated (mod/forum, manual, etc.) * @return boolean success */ /*public function delete(){ global $DB; if (empty($this->id)) { debugging('Can not delete assessment object, no id!'); return false; } //$data = $this->get_record_data(); $DB->delete_records($this->table, array('id' => $this->id)); $this->notify_changed(false); return true; }*/ /** * Calculate evalcomix final grade. * @static abstract * @param array $users * @param int $courseid * @return array $finalgrades with two dimensions [$taskinstance][$userid] that contains the finalgrades. */ public static function get_final_grade($courseid, $users) { global $CFG, $COURSE; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tasks.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix.php'; //$coursecontext = get_context_instance(CONTEXT_COURSE, $courseid); $coursecontext = context_course::instance($courseid); $finalgrades = array(); $tasks = evalcomix_tasks::get_tasks_by_courseid($courseid); $now = time(); foreach ($tasks as $task) { $teacherweight = 0; $selfweight = 0; $peerweight = 0; $params = array('taskid' => $task->id); $modes = evalcomix_modes::fetch_all($params); if ($modes) { //Obtains activity´s weights foreach ($modes as $mode) { switch ($mode->modality) { case 'teacher': $teacherweight = $mode->weighing; break; case 'self': $selfweight = $mode->weighing; break; case 'peer': $peerweight = $mode->weighing; break; default: }
/** * Get tasks from a not existing course */ public function test_gettasksbycourseid_fail() { $result = evalcomix_tasks::get_tasks_by_courseid('30'); $zero = sizeof($result); $this->assertEqual($zero, '0'); unset($result, $zero); }