/** * Existing object insert in a DB */ public function test_insert_fail_2() { $objectnew = new evalcomix_tool('120', '1', 'titulo de la escala2', 'scale'); $id = $objectnew->insert(); $this->assertFalse($id); unset($objectnew); }
/** * Update object in the DB. Return false because the object is not in the DB */ public function testUpdateFail() { $objectnew = new evalcomix_tool('', '1', 'titulo de la escala2', 'list'); $id = $objectnew->update(); $this->assertTrue($id);
/** * Non-existing object insert in a DB */ public function testInsertOk() { $objectnew = new evalcomix_tool('', '1', 'titulo de la escala2', 'scale'); $id = $objectnew->insert(); $this->AssertEquals($id, $objectnew->id);
/** * Update object in the DB */ public function testUpdate() { $objectnew = new evalcomix_tool('169', '1', 'titulo de la escala2', 'list'); $id = $objectnew->update(); //Timemodified to 0 in the DB... why?? $this->assertTrue($id);
function get_datas_profile_attribute($idCurso, $id_tarea, $id_modality, $id_students) { global $CFG; include_once $CFG->dirroot . '/blocks/evalcomix/configeval.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/webservice_evalcomix_client.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tasks.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tool.php'; $task = evalcomix_tasks::fetch(array('id' => $id_tarea)); $module = evalcomix_tasks::get_type_task($task->instanceid); $modality = null; switch ($id_modality) { case 1: $modality = 'teacher'; break; case 2: $modality = 'self'; break; case 3: $modality = 'peer'; break; } $xml = webservice_evalcomix_client::get_ws_tool_assessed($idCurso, $module, $task->instanceid, $id_students, $modality, MOODLE_NAME); $attributes_grade = evalcomix_tool::get_attributes_grade($xml); return $attributes_grade; }
/** * Fetch all objects. Return an array with the required params */ public function testFetchAllOK() { $params = array('title' => 'hola'); $result = evalcomix_tool::fetch_all($params); //This assert fail... why?? Dont' recognize type 'array'... $this->assertType('array', $result);
// } //$this->assertTrue($var); //unset($objectnew2); } /** * Object construction without the required param 'type'. It should print error:'The type assessment tool is wrong' */ public function testParamMissingOne() {
/** * @return array of course tools by [taskid][modality] */ function load_tools() { $result = array(); if ($evalcomix = evalcomix::fetch(array('courseid' => $this->courseid))) { if ($tools = evalcomix_tool::fetch_all(array('evxid' => $evalcomix->id))) { foreach ($tools as $tool) { if ($modes = evalcomix_modes::fetch_all(array('toolid' => $tool->id))) { foreach ($modes as $mode) { $taskid = $mode->taskid; $modality = $mode->modality; $result[$taskid][$modality] = $tool; } } } } } return $result; }
} /** * Update a recently insert object in the DB. Param 'timemodified' change */ public function test_update_ok() { $objectnew = new evalcomix_assessments('', 5, 4, 5, 60); $objectnew->insert(); $id = $objectnew->update(); $this->assertTrue($id); $objectnew->delete(); unset($objectnew, $id);
*/ require_once '../../../config.php'; require_once 'lib.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tasks.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tool.php'; $courseid = required_param('id', PARAM_INT); // course id $id = required_param('a', PARAM_INT); require_login($courseid); if ($id) { $cm = get_coursemodule_from_id('', $id, 0, false, MUST_EXIST); if (!($course = $DB->get_record('course', array('id' => $courseid)))) { print_error('nocourseid'); } } $tools = evalcomix_tool::get_tools($courseid); $activity = get_activity_data($cm); $datas = get_evalcomix_activity_data($courseid, $cm); $toolEP = 0; if (isset($datas['toolEP'])) { $toolEP = $datas['toolEP']; } $weighingEP = 70; if (isset($datas['weighingEP'])) { $weighingEP = $datas['weighingEP']; } $disabledEP = ''; $toolAE = 0; if (isset($datas['toolAE'])) { $toolAE = $datas['toolAE']; }
<?php include_once '../../../config.php'; include_once '../classes/evalcomix_tool.php'; $params = array('title' => 'hola'); $object = new evalcomix_tool('27', '1', 'titulo de la escala2', 'scale'); $id = $object->insert(); echo $id; /* evalcomix_tool::set_properties($object, $params); print_r($object); if($object->update()) echo "actualizado"; else echo "no actualizado"; */ /* //$result = evalcomix_tool::fetch_all($params); //print_r($result); */ if ($object->delete()) { echo "borrado"; } else { echo "no borrado"; }
$response = $curl->get($serverurl); if ($response && $curl->getHttpCode() >= 200 && $curl->getHttpCode() < 400) { if ($xml = simplexml_load_string($response)) { if ((string) $xml->status == 'success') { return (string) $xml->description; } else { return 0; } } else { return 0; } } else { throw new Exception('SG: Bad Response'); } } public static function generate_token() { return md5(uniqid()); } /** * @param string $params['courseid'] * @param array $params['module'] module names * @param array $params['activity'] activity IDs * @param array $params['student'] student IDs * @param array $params['assessor'] assessor IDs * @param array $params['mode'] [teacher | self | peer] * @param string $params['lms'] lms name * @return xml document with data assessments */ public static function get_ws_xml_tools($params = array()) { defined('GET_TOOLS') || die('EvalCOMIX is not configured');
return evalcomix_object::fetch_all_helper('block_evalcomix_tools', 'evalcomix_tool', $params); } /** * Finds and returns a evalcomix_tool instance based on params. * @static * * @param array $params associative arrays varname=>value * @return object grade_item instance or false if none found. */ public static function fetch($params) { return evalcomix_object::fetch_helper('block_evalcomix_tools', 'evalcomix_tool', $params); } /** * Called immediately after the object data has been inserted, updated, or * deleted in the database. Default does nothing, can be overridden to * hook in special behaviour. * * @param bool $deleted */ function notify_changed($deleted) { } /** * @param int $courseid * @return array of tools. Key of array is 'id' and value of array is 'title' tool */ static function get_tools($courseid) { global $CFG; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tool.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix.php'; $result = array(); $params = array('courseid' => $courseid); if (!($environment = evalcomix::fetch($params))) { return $result; } $evxid = $environment->id; $params = array('evxid' => $evxid); $tools = evalcomix_tool::fetch_all($params); if (!is_array($tools)) { $tools = array();
include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tool.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_modes.php'; $courseid = required_param('id', PARAM_INT); // course id $toolid = required_param('t', PARAM_ALPHANUM); //toolid $perspective = required_param('mode', PARAM_ALPHA); $viewtemplate = optional_param('vt', '0', PARAM_INT); //It indicates what will be showed: ['1'] only the template tool or ['0'] tool filled with assessment require_login($courseid); $context = context_course::instance($courseid); $url = new moodle_url('/blocks/evalcomix/assessment/assessment_form.php', array('courseid' => $courseid, 't' => $toolid)); $PAGE->set_url($url); $PAGE->set_pagelayout('popup'); //echo $OUTPUT->header(); if (!($tool = evalcomix_tool::fetch(array('idtool' => $toolid)))) { print_error('EvalCOMIX: No tool enabled'); } if ($perspective != 'assess' && $perspective != 'view') { print_error('EvalCOMIX: the mode param is wrong'); } global $USER, $DB; $lang = current_language(); //To show tool used in a assessment if ($viewtemplate == '0') { $cmid = required_param('a', PARAM_INT); $studentid = required_param('s', PARAM_INT); require_capability('block/evalcomix:assessed', $context, $studentid); $lms = MOODLE_NAME; $module = evalcomix_tasks::get_type_task($cmid); //echo "$courseid - $module - $cmid - $studentid, - $assessor - $mode - $lms ";
public function after_restore() { global $DB, $COURSE, $CFG; include_once $CFG->dirroot . '/blocks/evalcomix/configeval.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tasks.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_modes.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_modes_time.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_modes_extra.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_assessments.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/webservice_evalcomix_client.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_grades.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_allowedusers.php'; $settings = $this->task->get_info()->root_settings; //$this->oldcontextid; busco en tabla mdl_context->instanceid es el courseid; con el courseid obtengo todos los cms antiguos y nuevos y voy copiando uno a uno //$this->basepath = $CFG->dataroot . '/temp/backup/' . $controller->get_tempdir(); //$blockid = $this->get_old_blockid(); //$xml = simplexml_load_file($this->get_basepath() . '/course/blocks/evalcomix_'. $blockid .'/evalcomix.xml'); $fullpath = $this->task->get_taskbasepath(); // We MUST have one fullpath here, else, error if (empty($fullpath)) { throw new restore_step_exception('restore_structure_step_undefined_fullpath'); } // Append the filename to the fullpath $fullpath = rtrim($fullpath, '/') . '/' . $this->filename; // And it MUST exist if (!file_exists($fullpath)) { // Shouldn't happen ever, but... throw new restore_step_exception('missing_moodle_backup_xml_file', $fullpath); } $xml = simplexml_load_file($fullpath); //echo $this->task->get_taskbasepath() . '/course/blocks/evalcomix_'. $blockid .'/evalcomix.xml'; $evxid_old = (int) $xml->evalcomix['id']; $viewmode_old = (string) $xml->evalcomix->viewmode; if (isset($xml->evalcomix->environment->courseid)) { $courseid_old = $xml->evalcomix->environment->courseid; } if (isset($xml->evalcomix->environment->moodlename)) { $moodlename_old = $xml->evalcomix->environment->moodlename; } include_once $CFG->dirroot . '/blocks/evalcomix/configeval.php'; //include_once($CFG->dirroot . '/backup/lib.php'); //$courseid_new = $this->plan->get_courseid(); $courseid_new = $this->get_courseid(); $moodlename_new = MOODLE_NAME; $block_evalcomix = $DB->get_record('block_evalcomix', array('courseid' => $courseid_new)); //$coursecontext = get_context_instance(CONTEXT_COURSE, $courseid_new); $coursecontext = context_course::instance($courseid_new); $tasksid = ''; if (isset($xml->evalcomix->tasks[0])) { $assessmentids = array(); foreach ($xml->evalcomix->tasks[0] as $task) { $task_id_old = (int) $task['id']; $task_instanceid_old = (int) $task->instanceid; $task_maxgrade_old = (string) $task->maxgrade; $task_weighing_old = (string) $task->weighing; $cm = $DB->get_record('block_evalcomix', array('courseid' => $courseid_new)); $cm_mapping = $this->get_mapping('course_module', $task_instanceid_old); $newcmid = $cm_mapping->newitemid; $visibletask = '1'; if (isset($task->visible)) { $visibletask = (string) $task->visible; } if (!($task_fetch = evalcomix_tasks::fetch(array('instanceid' => $newcmid)))) { $task_object = new evalcomix_tasks('', $newcmid, $task_maxgrade_old, $task_weighing_old, '', $visibletask); $newtaskid = $task_object->insert(); $tasksid .= $task_instanceid_old . '-' . $newcmid . ','; foreach ($task->modes[0] as $mode) { $mode_id_old = (int) $mode['id']; $mode_toolid_old = (string) $mode->toolid; $mode_modality_old = (string) $mode->modality; $mode_weighing_old = (string) $mode->weighing; $tool_mapping = $this->get_mapping('evalcomix_tool', $mode_toolid_old); if (!empty($tool_mapping) && ($newtoolid = $tool_mapping->newitemid)) { if (!($mode_object = evalcomix_modes::fetch(array('taskid' => $newtaskid, 'toolid' => $newtoolid, 'modality' => $mode_modality_old)))) { $mode_object = new evalcomix_modes('', $newtaskid, $newtoolid, $mode_modality_old, $mode_weighing_old); $newmodeid = $mode_object->insert(); if (isset($mode->mode_time['id'])) { $mode_time_id_old = (string) $mode->mode_time['id']; $mode_time_timeavailable_old = (string) $mode->mode_time->timeavailable; $mode_time_timedue_old = (string) $mode->mode_time->timedue; if (!evalcomix_modes_time::fetch(array('modeid' => $newmodeid))) { $mode_time_object = new evalcomix_modes_time('', $newmodeid, $mode_time_timeavailable_old, $mode_time_timedue_old); $mode_time_object->insert(); } } if (isset($mode->mode_extra)) { $mode_extra_id_old = (string) $mode->mode_extra['id']; $mode_extra_timeavailable_old = (string) $mode->mode_extra->anonymous; $mode_extra_visible = $mode->mode_extra->visible; $mode_extra_whoassesses = $mode->mode_extra->whoassesses; if (!($mode_extra_object = evalcomix_modes_extra::fetch(array('modeid' => $newmodeid)))) { $mode_extra_object = new evalcomix_modes_extra('', $newmodeid, $mode_extra_timeavailable_old, $mode_extra_visible, $mode_extra_whoassesses); $mode_extra_object->insert(); } } } } } } if ($settings['users'] == 1) { foreach ($task->assessments[0] as $assessment) { $assessment_id_old = (string) $assessment['id']; $assessment_assessorid_old = (string) $assessment->assessorid; $assessment_studentid_old = (string) $assessment->studentid; $assessment_grade_old = (string) $assessment->grade; $assessor_user = $this->get_mapping('user', $assessment_assessorid_old); $student_user = $this->get_mapping('user', $assessment_studentid_old); if (!isset($assessor_user->newitemid) || !isset($student_user->newitemid)) { continue; } if (!($assessment_object = evalcomix_assessments::fetch(array('taskid' => $newtaskid, 'assessorid' => $assessor_user->newitemid, 'studentid' => $student_user->newitemid)))) { $assessment_object = new evalcomix_assessments('', $newtaskid, $assessor_user->newitemid, $student_user->newitemid, $assessment_grade_old); $assessment_object->insert(); } //$modulename = get_module_type ($courseid_new, $newcmid); $modulename = evalcomix_tasks::get_type_task($newcmid); $mode = ''; if ($student_user->newitemid == $assessor_user->newitemid) { $mode = 'self'; } elseif (has_capability('moodle/grade:viewhidden', $coursecontext, $assessor_user->newitemid)) { $mode = 'teacher'; } else { $mode = 'peer'; } //$courseid_old, $modulename, $task_instanceid_old, $assessment_studentid_old, $assessment_assessorid_old, $mode, $moodlename_old $str = $courseid_old . '_' . $modulename . '_' . $task_instanceid_old . '_' . $assessment_studentid_old . '_' . $assessment_assessorid_old . '_' . $mode . '_' . $moodlename_old; $assessmentid_old = md5($str); $str = $courseid_new . '_' . $modulename . '_' . $newcmid . '_' . $student_user->newitemid . '_' . $assessor_user->newitemid . '_' . $mode . '_' . $moodlename_new; //echo $str . ' -- '; $assessmentid_new = md5($str); $object = new stdClass(); $object->oldid = $assessmentid_old; $object->newid = $assessmentid_new; $assessmentids[] = $object; } } } } if ($tasksid != '') { $tasksid = substr($tasksid, 0, -1); } if ($settings['users'] == 1) { if (isset($xml->evalcomix->grades[0])) { foreach ($xml->evalcomix->grades[0] as $grade) { $cm_mapping = $this->get_mapping('course_module', $grade->cmid); $newcmid = $cm_mapping->newitemid; $student = $this->get_mapping('user', (int) $grade->userid); if (!isset($student->newitemid)) { continue; } $params = array('finalgrade' => (double) $grade->finalgrade, 'courseid' => $courseid_new, 'cmid' => $newcmid, 'userid' => $student->newitemid); if (!($grade_object = evalcomix_grades::fetch(array('courseid' => $courseid_new, 'cmid' => $newcmid, 'userid' => $student->newitemid)))) { $grade_object = new evalcomix_grades($params); $newgradeid = $grade_object->insert(); } } } if (isset($xml->evalcomix->allowedusers[0])) { foreach ($xml->evalcomix->allowedusers[0] as $users) { $cm_mapping = $this->get_mapping('course_module', $users->cmid); $newcmid = $cm_mapping->newitemid; $assessor = $this->get_mapping('user', (int) $users->assessorid); $student = $this->get_mapping('user', (int) $users->studentid); if (!isset($student->newitemid) || !isset($assessor->newitemid)) { continue; } $params = array('assessorid' => (int) $assessor->newitemid, 'studentid' => $student->newitemid, 'cmid' => $newcmid); if (!($allowedusers_object = evalcomix_allowedusers::fetch($params))) { $allowedusers_object = new evalcomix_allowedusers($params); $newid = $allowedusers_object->insert(); } } } } if (isset($xml->evalcomix->tools[0])) { $hashtools = array(); foreach ($xml->evalcomix->tools[0] as $tool) { if ((string) $tool->type == 'tmp') { continue; } $idtoolold = (string) $tool->idtool; $tool_mapping = $this->get_mapping('evalcomix_tool', (string) $tool['id']); $toolnew = evalcomix_tool::fetch(array('id' => $tool_mapping->newitemid)); $idtoolnew = $toolnew->idtool; $object = new stdClass(); $object->oldid = $idtoolold; $object->newid = $idtoolnew; $hashtools[] = $object; } } if (isset($hashtools) && isset($assessmentids)) { $result = webservice_evalcomix_client::duplicate_course($assessmentids, $hashtools); } //$newtools = webservice_evalcomix_client::get_ws_list_tool($courseid_new, $moodlename_new); }
global $DB; $objectnew = new evalcomix_tool($this->evalcomix_tool[0]->id, $this->evalcomix_tool[0]->evxid, $this->evalcomix_tool[0]->title, $this->evalcomix_tool[0]->type, $this->evalcomix_tool[0]->idtool); $this->assertTrue(method_exists($objectnew, 'update')); $params = array('title' => 'helloeveryone', 'type' => 'rubric', 'idtool' => '12_plaSIMPLETEST'); evalcomix_tool::set_properties($objectnew, $params); $this->assertTrue($objectnew->update()); }
/** * Finds and returns all evalcomix_tool instances. * @static abstract * * @return array array of evalcomix_tool instances or false if none found. */ public static function fetch_all($params) { return evalcomix_tool::fetch_all_helper('block_evalcomix_modes_time', 'evalcomix_modes_time', $params); }
<script type="text/javascript"> function urledit(u, nombre, edit){ win2 = window.open(u, nombre, "menubar=0,location=0,scrollbars,resizable,width=780,height=500"); checkChildedit(edit); } function checkChildedit(edit) { if (win2.closed) { window.location.replace("' . $CFG->wwwroot . '/blocks/evalcomix/tool/index.php?id=' . $courseid . '&edit=" + edit); /*window.location.href = "' . $CFG->wwwroot . '/blocks/evalcomix/tool/index.php?id=' . $courseid . '&edit=" + edit;*/ } else setTimeout("checkChildedit(\'"+edit+"\')",1); } </script> '; include_once $CFG->dirroot . '/blocks/evalcomix/javascript/popup.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_tool.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/webservice_evalcomix_client.php'; if ($tid) { $tooldelete = evalcomix_tool::fetch(array('id' => $tid)); if ($tooldelete) { $response = webservice_evalcomix_client::get_ws_deletetool($tooldelete->idtool); $tooldelete->delete(); } } if (isset($edit) && $edit != '' && $edit != 'undefined') { $tool = evalcomix_tool::fetch(array('idtool' => $edit)); //llamada para obtener datos y actualizar. Por lo general $response = webservice_evalcomix_client::get_ws_list_tool($course->id, $tool->idtool); if ($response != false) {
/*if(is_siteadmin($USER) || has_capability('block/evalcomix:edit',$context)){ echo ' <form name="formulario" method="get" action="'. $CFG->wwwroot.'/blocks/evalcomix/assessment/index.php"> <input type=hidden name=id value=' . $COURSE->id .'> <SELECT NAME=select onchange="submit()"> <option value="0">Notas de EvalCOMIX con notas de Moodle <option value="1">Sólo notas de EvalCOMIX </SELECT> </form> <script language=javascript>document.formulario.select.options['.$selection.'].selected = true;</script> '; }*/ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////// Comprobamos si existen instrumentos modificados con evaluaciones asociadas ///////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($toollist = evalcomix_tool::fetch_all(array('evxid' => $environment->id))) { $newgrades = webservice_evalcomix_client::get_assessments_modified(array('tools' => $toollist)); if (!empty($newgrades)) { include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_assessments.php'; include_once $CFG->dirroot . '/blocks/evalcomix/classes/evalcomix_grades.php'; $toolids = array(); foreach ($tasks as $task) { if ($assessments = evalcomix_assessments::fetch_all(array('taskid' => $task->id))) { foreach ($assessments as $assessment) { $activity = $task->instanceid; $module = evalcomix_tasks::get_type_task($activity); $mode = grade_report_evalcomix::get_type_evaluation($assessment->studentid, $courseid, $assessment->assessorid); $str = $courseid . '_' . $module . '_' . $activity . '_' . $assessment->studentid . '_' . $assessment->assessorid . '_' . $mode . '_' . MOODLE_NAME; $assessmentid = md5($str); if (isset($newgrades[$assessmentid])) { $grade = $newgrades[$assessmentid]->grade;
/** * Fetch all objects. Return an array with the required params */ public function test_fetchall_ok() { $params = array('title' => 'hola'); $result = evalcomix_tool::fetch_all($params); $this->assertIsA($result, 'array'); }