Skip to content
Snippets Groups Projects
competency_iena_competencies_api.php 5.66 KiB
<?php
	/**
	 * Created by PhpStorm.
	 * User: softia
	 * Date: 04/04/18
	 * Time: 14:59
	 */
	require_once('../../config.php');

// ENLEVER SI NON NECESSAIRE :
	require_once('entity/block_competency_iena_competency.php');
	require_once('entity/block_competency_iena_module.php');
	require_once('entity/block_competency_iena_ressource.php');
	require_once('entity/block_competency_iena_section.php');
	require_once('entity/block_competency_iena_student.php');
	require_once('entity/block_competency_iena_cron_roles.php');
	require_once('entity/block_competency_iena_cron_competency.php');
	require_once('entity/block_competency_iena_referentiel.php');
	require_once('entity/block_competency_iena_matrix.php');
	
	require_once('view/view_competency_iena_competencies.php');
	
	
	global $COURSE, $DB, $USER;
	
	$courseid = required_param('courseid', PARAM_INT);
//$studentid = optional_param('studentid',$USER->id,PARAM_INT);
	$url = new moodle_url('/blocks/competency_iena/competency_iena_competencies_api.php', array('courseid' => $courseid));
	
	$PAGE->set_pagelayout('course');
	$PAGE->set_url($url);
	
	$course = $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST);
	require_login($course, false, NULL);

	if ($_POST) {
		//Donne les infos sur la comp
		if (isset($_POST["idcompetence"])) {
			$idcompetence = htmlspecialchars($_POST["idcompetence"]);
			$compI = new block_competency_iena_competency();
			$compI->get_competency_by_id($idcompetence);
			$tab['shortname'] = $compI->shortname;
			$tab['description'] = $compI->description;
			$tab['id'] = $compI->id;
			echo json_encode($tab);
		}
		//Ajoute un tableau d'id de compétences à la matrice
		if (isset($_POST["addcomp"])) {
			$value = $_POST["addcomp"];
			//return var_dump($value);
			
			$resultInsert="";
			$errorInsert=false;
			$refI = new block_competency_iena_referentiel();
			
			foreach($value[0] as $compid){
				//var_dump($comp);
				$is_insert = $refI->add_competency_in_course($compid, $value[1]);
				if (!$is_insert) {
					$resultInsert.=" ".$compid.",";
					$errorInsert=true;

				}
			}
			if($errorInsert==false){
				echo "true";
			}
			else{
				echo get_string('error_insert', 'block_competency_iena').$resultInsert;
			}
			
			
		}
		if (isset($_POST["addactivities"])) {
			$value = $_POST["addactivities"];
			$resultInsert="";
			$errorInsert=false;
			$moduleI = new block_competency_iena_module();
			
			foreach($value[0] as $activity){
				$is_insert = $moduleI->add_matrix_module($activity['id'], $activity['section_id']);
				if (!$is_insert) {
					$resultInsert.=" ".$activity['id'].",";
					$errorInsert=true;

				}
			}
			if($errorInsert==false){
				echo "true";
			}
			else{
				echo get_string('error_delete', 'block_competency_iena').$resultInsert;
			}
		}
		if (isset($_POST["delactivities"])) {
		
			$value = $_POST["delactivities"];
			$resultDelete="";
			$errorDelete=false;
			$matrix_instance=new block_competency_iena_matrix();
			$request=$matrix_instance->delete_competencies_link_matrix($value[0]);
			if($request){
				$matrix_instance->delete_activity_matrix($value[0]);
				echo "true";
			}
			else{
				echo "false";
			}
		}
//		updateTextRef
		if (isset($_POST["idref"])) {
			$idref = $_POST["idref"];
			$refI = new block_competency_iena_referentiel();
			$value = $refI->get_info_framework_by_id($idref);
			$tab['shortname'] = $value->shortname;
			$tab['description'] = $value->description;
			$tab['id'] = $value->id;
			echo json_encode($tab);
		}
		
		if (isset($_POST["delproof"])) {
			$idproof = htmlspecialchars($_POST["delproof"]);
			$DB->delete_records("competency_evidence", array('id' => $idproof));
			return 'true';
		}

		if (isset($_POST["askvalide"])) {
			$idcompetence = $_POST["askidcomp"];
			$iduser = $_POST["iduser"];
			$status = $_POST["askvalide"];
			$id_usercomp = $DB->get_record_sql('select id FROM {competency_usercomp} 
				WHERE competencyid = ? AND userid = ?', array($idcompetence,$iduser));
			if ( $id_usercomp->id == NULL ) {
				$record = new stdClass();
				$record->userid = $iduser;
				$record->competencyid = $idcompetence;
				$record->status = $status;
				$record->reviewerid = NULL;
				$record->proficiency = NULL;
				$record->grade = NULL;
				date_default_timezone_set('Europe/Paris');
				$record->timecreated = time();
				$record->timemodified = time();
				$record->usermodified = $iduser;
				$lastinsertid = $DB->insert_record('competency_usercomp', $record, false);
				var_dump($lastinsertid);
				die;
			} else {
				$record = new stdClass();
				$record->id = $id_usercomp->id;
				$record->status = $status;
				$DB->update_record("competency_usercomp", $record, false);
			}

		}

		if (isset($_POST["eval_comp"])){
			$eval_comp = $_POST["eval_comp"];
			$iduser = $_POST["userid"];
			$idcompetence = $_POST["compid"];

			$eval_comp_note = $_POST["eval_comp_note"];

			$eval_comp++;
			$api = new \core_competency\external();
            // var_dump($api::grade_competency_in_course($courseid,$iduser,$idcompetence,$eval_comp,null));
			$api::grade_competency_in_course($courseid,$iduser,$idcompetence,$eval_comp,$eval_comp_note);
			// si une demande d'évaluation est en cours sur cette compétence, il faut la retirer
			$id_usercomp = $DB->get_record_sql('select id, status FROM {competency_usercomp} 
				WHERE competencyid = ? AND userid = ?', array($idcompetence,$iduser));
			if ( $id_usercomp->status == 1 ) {
				$record = new stdClass();
				$record->id = $id_usercomp->id;
				$record->status = 0;
				$DB->update_record("competency_usercomp", $record, false);
			}
		}
	}