Skip to content
Snippets Groups Projects
Commit 2d37c3a3 authored by DELARUELLE Myriam's avatar DELARUELLE Myriam
Browse files

fixes for cpt: notifications, chart css, history, filter

parent ca1269bd
No related branches found
No related tags found
No related merge requests found
......@@ -16,6 +16,13 @@ class block_competency_iena_observer {
public static function course_module_created(\core\event\course_module_created $event) {
$cmid = $event->contextinstanceid;
duplicate_matrix_competencies($cmid, );
duplicate_matrix_competencies($cmid);
}
public static function user_competency_review_requested(\core\event\competency_user_competency_review_requested $event){
save_review_request($event->objectid, $event->userid);
}
public static function user_competency_review_cancelled(\core\event\competency_user_competency_review_request_cancelled $event){
delete_review_request($event->objectid, $event->userid);
}
}
......@@ -50,8 +50,9 @@ if(isset($_POST) && !empty($_POST)){
$competencyid = required_param('competencyid', PARAM_INT);
$sql_rev = "SELECT * FROM {competency_usercomp} WHERE userid = ? AND competencyid = ? AND status = ?";
$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
//$sql_rev = "SELECT * FROM {competency_usercomp} WHERE userid = ? AND competencyid = ? AND status = ?";
//$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
$reviews_data=fetch_reviews_asked($courseid, $competencyid);
$review_asked = count($reviews_data) > 0 ? true : false;
......@@ -59,14 +60,15 @@ if(isset($_POST) && !empty($_POST)){
/* POST EVALUATION */
if ( isset($_POST['grade']) ) {
if ( isset($_POST['gradeform']) ) {
$note = $_POST['note'];
\core_competency\api::grade_competency_in_course($courseid, $studentid, $competencyid, $_POST['grade'], $note);
\core_competency\api::grade_competency_in_course($courseid, $studentid, $competencyid, $_POST['gradeform'], $note);
if ( $review_asked ) {
\core_competency\api::user_competency_start_review($studentid, $competencyid);
\core_competency\api::user_competency_stop_review($studentid, $competencyid);
/* Refresh review data */
$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
//$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
$reviews_data=fetch_reviews_asked($courseid, $competencyid);
$review_asked = count($reviews_data) > 0 ? true : false;
}
}
......@@ -80,7 +82,8 @@ if(isset($_POST) && !empty($_POST)){
\core_competency\api::user_competency_cancel_review_request($studentid, $competencyid);
}
/* Refresh review data */
$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
//$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
$reviews_data=fetch_reviews_asked($courseid, $competencyid);
$review_asked = count($reviews_data) > 0 ? true : false;
}
......@@ -117,7 +120,8 @@ if($course_cpts){
$params_rev = array_merge($params_rev, $params_cpts_ids);
$params_rev[] = $student->studentid;
$params_rev[] = 1;
$reviews_data = $DB->get_records_sql($sql, $params_rev);
//$reviews_data = $DB->get_records_sql($sql, $params_rev);
$reviews_data=fetch_reviews_asked($courseid);
$reviews_count = count($reviews_data);
/* <<< DASHBORD >>> */
......
......@@ -33,9 +33,10 @@ require_login($course, false, NULL);
$PAGE->set_title(get_string('title_plugin', 'block_competency_iena'));
$PAGE->set_heading($OUTPUT->heading($COURSE->fullname, 2, 'headingblock header outline'));
$coursenode = $PAGE->navigation->find($course->id, navigation_node::TYPE_COURSE);
/*$coursenode = $PAGE->navigation->find($course->id, navigation_node::TYPE_COURSE);
$thingnode = $coursenode->add(get_string('dashboard_competencies', 'block_competency_iena'));
$thingnode->make_active();
$thingnode->make_active();*/
/* Liste des compétences du cours */
$course_cpts = \core_competency\course_competency::list_competencies($COURSE->id);
......@@ -60,8 +61,8 @@ if(isset($_POST) && !empty($_POST)){
$sql_rev = "SELECT * FROM {competency_usercomp} WHERE userid = ? AND competencyid = ? AND status = ?";
$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
//$reviews_data=fetch_reviews_asked($courseid, $competencyid);
//$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
$reviews_data=fetch_reviews_asked($courseid, $competencyid);
$review_asked = count($reviews_data) > 0 ? true : false;
......@@ -69,14 +70,15 @@ if(isset($_POST) && !empty($_POST)){
/* POST EVALUATION */
if ( isset($_POST['grade']) ) {
if ( isset($_POST['gradeform']) ) {
$note = $_POST['note'];
\core_competency\api::grade_competency_in_course($courseid, $studentid, $competencyid, $_POST['grade'], $note);
\core_competency\api::grade_competency_in_course($courseid, $studentid, $competencyid, $_POST['gradeform'], $note);
if ( $review_asked ) {
\core_competency\api::user_competency_start_review($studentid, $competencyid);
\core_competency\api::user_competency_stop_review($studentid, $competencyid);
/* Refresh review data */
$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
//$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
$reviews_data=fetch_reviews_asked($courseid, $competencyid);
$review_asked = count($reviews_data) > 0 ? true : false;
}
}
......@@ -90,7 +92,8 @@ if(isset($_POST) && !empty($_POST)){
\core_competency\api::user_competency_cancel_review_request($studentid, $competencyid);
}
/* Refresh review data */
$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
//$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
$reviews_data=fetch_reviews_asked($courseid, $competencyid);
$review_asked = count($reviews_data) > 0 ? true : false;
}
......@@ -174,21 +177,33 @@ if (count($course_cpts) > 0) {
$chart_assess->set_labels($scale_for_labels);
list($in_sql_stud_ids, $params_stud_ids) = $DB->get_in_or_equal($student_ids);
$sql = "SELECT * FROM {competency_usercomp}
WHERE userid {$in_sql_stud_ids} AND competencyid = ? AND status = ?";
$params_rev = array();
$params_rev = array_merge($params_rev, $params_stud_ids);
$params_rev[] = $current_cpt->id;
$params_rev[] = 1;
//$reviews_data = fetch_reviews_asked($courseid, $current_cpt->id);
$sql_rev = "SELECT * FROM {competency_usercomp} WHERE userid = ? AND competencyid = ? AND status = ?";
/*$sql_rev = "SELECT * FROM {competency_usercomp} WHERE userid = ? AND competencyid = ? AND status = ?";
$reviews_data = $DB->get_records_sql($sql, $params_rev);
$reviews_count = count($reviews_data);*/
$reviews_data=fetch_reviews_asked($COURSE->id, $current_cpt->id);
list($in_sql_stud_ids, $params_stud_ids) = $DB->get_in_or_equal($student_ids);
//Compatibilité avant version 20240220
if(empty($reviews_data)){
$sql = "SELECT * FROM {competency_usercomp}
WHERE userid {$in_sql_stud_ids} AND competencyid = ? AND status = ?";
$params_rev = array();
$params_rev = array_merge($params_rev, $params_stud_ids);
$params_rev[] = $current_cpt->id;
$params_rev[] = 1;
$reviews_data = $DB->get_records_sql($sql, $params_rev);
$old_reviews_data=true;
}
$review_asked = count($reviews_data) > 0 ? true : false;
$reviews_count = count($reviews_data);
$options_grade=array();
$form_grade = isset($_GET['grade']) ? $_GET['grade'] : 'all';
$form_grade = (isset($_GET['grade']) && !empty($_GET['grade'])) ? $_GET['grade'] : 'all';
$option=new stdClass();
$option->value='all';
$option->label=get_string('all');
......@@ -259,8 +274,7 @@ if (count($course_cpts) > 0) {
$option->label=get_string('yes');
if ( $form_review == 'yes' ) { $option->selected="selected"; }
array_push($options_review, $option);
$reviews_data=fetch_reviews_asked($courseid, $current_cpt->id);
var_dump($reviews_data);
/* NB : un étudiant n'existe pas en base competency_usercompcourse tant que personne n'a accédé à une page de compétence le concernant. */
......@@ -287,6 +301,7 @@ if (count($course_cpts) > 0) {
$cpt_stud->proficiency = NULL;
$cpt_stud->grade = NULL;
//$cpt_stud->review_asked = array_column($reviews_data, null, 'userid')[$student->id]->status ?? false;;
$cpt_stud->review_asked = array_column($reviews_data, null, 'userid')[$student->id]->status ?? false;
......@@ -305,14 +320,16 @@ if (count($course_cpts) > 0) {
}
}
foreach ($reviews_data as $review) {
if(isset($old_reviews_data)){
foreach ($reviews_data as $review) {
if ( $review->userid == $student->id ) {
$cpt_stud->review_asked = $review->status;
break;
}
}
break;
}
}
else{
$cpt_stud->scale=array();
......@@ -368,14 +385,14 @@ if (count($course_cpts) > 0) {
$cpt_stud->link_cpt=$CFG->wwwroot."/blocks/competency_iena/course_competency.php?courseid=".$courseid."&studentid=".$cpt_stud->id."&competencyid=".$current_cpt->id.'&from=competency';
$cpt_stud->link_assess=$CFG->wwwroot."/blocks/competency_iena/competency_iena_competency_students_2.php?courseid=".$courseid."&studentid=".$cpt_stud->id."&competencyid=".$current_cpt->id;
if(isset($cpt_stud->grade)){
$cpt_stud->link_assess.="&grade=".$cpt_stud->grade;
if(isset($_GET['grade'])){
$cpt_stud->link_assess.="&grade=".$_GET['grade'];
}
if(isset($cpt_stud->proficiency)){
$cpt_stud->link_assess.="&grade=".$cpt_stud->proficiency;
if(isset($_GET['proficiency'])){
$cpt_stud->link_assess.="&proficiency=".$_GET['proficiency'];
}
if(isset($cpt_stud->review_asked)){
$cpt_stud->link_assess.="&grade=".$cpt_stud->review_asked;
if(isset($_GET['review'])){
$cpt_stud->link_assess.="&review=".$_GET['review'];
}
......
<?php
require_once('../../config.php');
require_once('lib.php');
global $USER, $COURSE;
......@@ -23,19 +24,18 @@ $PAGE->requires->js("/blocks/competency_iena/js/cpt-stud-course.js");
/* <<< GESTION DROITS D'ACCÈS >>> */
$context = context_course::instance($courseid);
$coursenode = $PAGE->navigation->find($courseid, navigation_node::TYPE_COURSE);
if($from=="students"){
$thingnode = $coursenode->add(get_string('dashboard_students', 'block_competency_iena'), new moodle_url('/blocks/competency_iena/competency_iena_competencies_2.php', array('courseid' => $courseid, 'studentid' => $studentid)));
$thingnode = $thingnode->add(get_string('details_competency', 'block_competency_iena'));
}
elseif($from=="competency"){
else{
$thingnode = $coursenode->add(get_string('dashboard_competencies', 'block_competency_iena'), new moodle_url('/blocks/competency_iena/competency_iena_competency_students_2.php', array('courseid' => $courseid, 'competencyid' => $competencyid)));
$thingnode = $thingnode->add(get_string('details_competency', 'block_competency_iena'));
}
else{
$thingnode = $coursenode->add(get_string('details_competency', 'block_competency_iena'));
}
$thingnode->make_active();
/* Check if studentid is a course participant */
......@@ -70,13 +70,15 @@ $review_asked = count($reviews_data) > 0 ? true : false;
/* POST EVALUATION */
if ( isset($_POST['grade']) ) {
$note = $_POST['note'];
\core_competency\api::grade_competency_in_course($courseid, $studentid, $competencyid, $_POST['grade'], $note);
if ( $review_asked ) {
\core_competency\api::user_competency_start_review($studentid, $competencyid);
\core_competency\api::user_competency_stop_review($studentid, $competencyid);
/* Refresh review data */
$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
//$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, 1]);
$reviews_data=fetch_reviews_asked($courseid, $competencyid, $studentid);
$review_asked = count($reviews_data) > 0 ? true : false;
}
}
......@@ -84,13 +86,30 @@ if ( isset($_POST['grade']) ) {
/* POST REVIEW */
if ( isset($_POST['review']) ) {
$coursenode = $PAGE->navigation->find($courseid, navigation_node::TYPE_COURSE);
if($from=="students"){
$thingnode = $coursenode->add(get_string('dashboard_students', 'block_competency_iena'), new moodle_url('/blocks/competency_iena/competency_iena_competencies_2.php', array('courseid' => $courseid, 'studentid' => $studentid)));
$thingnode = $thingnode->add(get_string('details_competency', 'block_competency_iena'));
}
elseif($from=="competency"){
$thingnode = $coursenode->add(get_string('dashboard_competencies', 'block_competency_iena'), new moodle_url('/blocks/competency_iena/competency_iena_competency_students_2.php', array('courseid' => $courseid, 'competencyid' => $competencyid)));
$thingnode = $thingnode->add(get_string('details_competency', 'block_competency_iena'));
}
else{
$thingnode = $coursenode->add(get_string('details_competency', 'block_competency_iena'));
}
$thingnode->make_active();
if ( $_POST['review'] == 'request' ) {
\core_competency\api::user_competency_request_review($studentid, $competencyid);
} elseif ( $_POST['review'] == 'cancel' ) {
\core_competency\api::user_competency_cancel_review_request($studentid, $competencyid);
}
/* Refresh review data */
$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, $courseid]);
//$reviews_data = $DB->get_records_sql($sql_rev, [$studentid, $competencyid, $courseid]);
$reviews_data=fetch_reviews_asked($courseid, $competencyid, $studentid);
$review_asked = count($reviews_data) > 0 ? true : false;
}
......@@ -215,12 +234,14 @@ if ($user_competency) {
$sql = 'SELECT e.*, u.firstname, u.lastname, u.firstnamephonetic, u.lastnamephonetic, u.middlename, u.alternatename
FROM {competency_evidence} e
JOIN {context} c ON c.id = e.contextid
JOIN {user} u ON u.id=e.actionuserid
LEFT JOIN {user} u ON u.id=e.actionuserid
WHERE e.usercompetencyid = :usercompid
ORDER BY e.timemodified DESC
';
$all_evidences = $DB->get_records_sql($sql, $params);
}
//Pour récupérer l'user : user_summary_exporter::read_properties_definition()
/*$user_cpt_all_data = new \tool_lp\output\user_competency_summary($user_competency);
......@@ -237,13 +258,16 @@ foreach($all_evidences as $evidence){
//$all_evidences=$tool_lp_renderer->render_user_competency_summary($user_cpt_all_data);
$is_evidence_course=true;
$is_evidence_other=true;
$data=array();
if ( count($all_evidences) != 0 ) {
$user_cpt_course_data = new \tool_lp\output\user_competency_summary_in_course($studentid, $competencyid, $courseid);
$user_cpt_course_data = $user_cpt_course_data->export_for_template($tool_lp_renderer);
$course_evidences = $user_cpt_course_data->usercompetencysummary->evidence;
$course_evidences_ids = array();
$course_evidences_ids=array();
//$course_evidences_ids = array_keys($all_evidences);
foreach ($course_evidences as $course_evidence) {
$course_evidences_ids[] = $course_evidence->id;
......@@ -255,7 +279,6 @@ if ( count($all_evidences) != 0 ) {
$series_data_all = array();
$series_data_course = array();
$series_data_other = array();
foreach ($all_evidences as $key => $ev) {
//partie chart
if ( isset($ev->grade) ) {
......@@ -272,13 +295,19 @@ if ( count($all_evidences) != 0 ) {
//fin partie chart
/* mark difference between this course evidences in html for JS filter with tabs */
if ( in_array($ev->id, $course_evidences_ids) ) {
if ( in_array($ev->id, $course_evidences_ids)) {
$ev->is_course_evidence = " data-evidenceorigin=course";
$is_evidence_course=false;
if($ev->descidentifier != "evidence_coursemodulecompleted" ){
$is_evidence_course=false;
}
} else {
} else{
$ev->is_course_evidence = " data-evidenceorigin=other";
$is_evidence_other=false;
if($ev->descidentifier != "evidence_coursemodulecompleted" ){
$is_evidence_other=false;
}
}
if ( $ev->action === "0" ) {
$ev->grade_make_proficient = ' list-group-item-light';
......@@ -298,18 +327,28 @@ if ( count($all_evidences) != 0 ) {
}
/* $chart = new core\chart_line(); */
$chart = new core\chart_bar();
if(!$is_evidence_course || !$is_evidence_other){
$chart = new core\chart_bar();
$axis_labels = $cpt_scale;
array_unshift($axis_labels, "");
$chart->get_yaxis(0, true)->set_labels($axis_labels);
$series_all = new core\chart_series("Complet", array_reverse($series_data_all));
$series_course = new core\chart_series('Dans ce cours', array_reverse($series_data_course));
$series_other = new core\chart_series('Hors de ce cours', array_reverse($series_data_other));
// $chart->add_series($series_all);
$chart->add_series($series_course);
$chart->add_series($series_other);
$chart->set_labels(array_reverse($labels));
$series_all = new core\chart_series("Complet", array_reverse($series_data_all));
$series_course = new core\chart_series('Dans ce cours', array_reverse($series_data_course));
$series_other = new core\chart_series('Hors de ce cours', array_reverse($series_data_other));
$chart->add_series($series_course);
$chart->add_series($series_other);
$chart->set_labels(array_reverse($labels));
$data['count_all_evidences']=count($all_evidences);
}
else{
$data['count_all_evidences']=0;
}
......@@ -321,8 +360,6 @@ if ( count($all_evidences) != 0 ) {
} /* END IF count all evidences (course and outside) == 0 */
/*
TODO :
......@@ -353,7 +390,7 @@ if ( count($cm_ids) !== 0 ) {
}
$data=array();
$data['review_asked']=$review_asked;
$data['is_enrolled']=$is_enrolled;
$data['link_switch']=$CFG->wwwroot."/blocks/competency_iena/course_competency.php";
......@@ -371,7 +408,6 @@ $data['is_me']=$is_me;
$data['link_review']=$CFG->wwwroot."/blocks/competency_iena/course_competency.php?courseid=".$courseid."&studentid=".$studentid."&competencyid=".$competencyid;
$data['scale']=$scale;
$data['all_evidences']=array_values($all_evidences);
$data['count_all_evidences']=count($all_evidences);
if(isset($chart)){
$data['chart']=$OUTPUT->render($chart);
}
......@@ -386,6 +422,7 @@ if(isset($modules)){
$data['proficiency']=$proficiency;
$data['proficiency_class']=$proficiency_class;
$data['eval']=$eval;
$data['from']=$from;
$renderer = $PAGE->get_renderer('block_competency_iena');
......
......@@ -9,6 +9,14 @@ $observers = array(
array(
'eventname' => '\core\event\course_module_created',
'callback' => 'block_competency_iena_observer::course_module_created',
),
array(
'eventname' => '\core\event\competency_user_competency_review_requested',
'callback' => 'block_competency_iena_observer::user_competency_review_requested',
),
array(
'eventname' => '\core\event\competency_user_competency_review_request_cancelled',
'callback' => 'block_competency_iena_observer::user_competency_review_cancelled',
)
);
......
<?xml version="1.0" encoding="UTF-8" ?>
<XMLDB PATH="blocks/competency_iena/db" VERSION="20210705" COMMENT="XMLDB file for Moodle blocks/competency_iena"
<XMLDB PATH="blocks/competency_iena/db" VERSION="20240220" COMMENT="XMLDB file for Moodle blocks/competency_iena"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"
>
......@@ -16,5 +16,18 @@
<KEY NAME="sectionid" TYPE="foreign" FIELDS="sectionid" REFTABLE="course_sections" REFFIELDS="id"/>
</KEYS>
</TABLE>
<TABLE NAME="block_competency_iena_review" COMMENT="Store user competency requests linked to a course">
<FIELDS>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
<FIELD NAME="reviewid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/>
<FIELD NAME="courseid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/>
<FIELD NAME="userid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/>
<FIELD NAME="timecreated" TYPE="int" LENGTH="16" NOTNULL="true" SEQUENCE="false"/>
</FIELDS>
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="id"/>
<KEY NAME="reviewid" TYPE="foreign" FIELDS="reviewid" REFTABLE="competency_usercomp" REFFIELDS="id"/>
</KEYS>
</TABLE>
</TABLES>
</XMLDB>
\ No newline at end of file
</XMLDB>
......@@ -7,7 +7,7 @@ function xmldb_block_competency_iena_upgrade($oldversion) {
$dbman = $DB->get_manager();
$result = TRUE;
if ($oldversion < 2021240903) {
if ($oldversion < 2021240903) {
// Define field id to be added to block_competency_iena.
$table = new xmldb_table('block_competency_iena');
......@@ -57,6 +57,24 @@ function xmldb_block_competency_iena_upgrade($oldversion) {
// Competency_iena savepoint reached.
upgrade_block_savepoint(true, 2021240903, 'competency_iena');
}
if ($oldversion < 2024022000) {
$table = new xmldb_table('block_competency_iena_review');
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null);
$table->add_field('reviewid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'id');
$table->add_field('courseid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'reviewid');
$table->add_field('userid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'courseid');
$table->add_field('timecreated', XMLDB_TYPE_INTEGER, '16', null, XMLDB_NOTNULL, null, null, 'userid');
$table->add_key('primary', XMLDB_KEY_PRIMARY, ['id']);
$table->add_key('reviewid', XMLDB_KEY_FOREIGN, ['reviewid'], 'competency_usercomp', ['id']);
// Conditionally launch add field id.
if (!$dbman->table_exists($table)) {
$dbman->create_table($table);
}
upgrade_block_savepoint(true, 2024022000, 'competency_iena');
}
return $result;
}
......
......@@ -67,14 +67,52 @@ function fetch_linked_activities($competencyid, $courseid, $studentid){
return "false";
}
function fetch_reviews_asked($courseid, $competencyid = null){
function fetch_reviews_asked($courseid, $competencyid = null, $studentid=null){
global $DB;
$sql="SELECT uc.userid, uc.competencyid, mc.cmid, cmod.course, uc.status FROM {competency_usercomp} uc LEFT JOIN {competency_modulecomp} mc ON uc.competencyid = mc.competencyid LEFT JOIN {course_modules_completion} cmc ON mc.cmid = cmc.coursemoduleid LEFT JOIN {course_modules} cmod ON mc.cmid=cmod.id WHERE uc.status=? AND cmod.course=? AND cmc.completionstate=1";
/*$sql="SELECT uc.userid, uc.competencyid, mc.cmid, cmod.course, uc.status FROM {competency_usercomp} uc LEFT JOIN {competency_modulecomp} mc ON uc.competencyid = mc.competencyid LEFT JOIN {course_modules_completion} cmc ON mc.cmid = cmc.coursemoduleid LEFT JOIN {course_modules} cmod ON mc.cmid=cmod.id WHERE uc.status=? AND cmod.course=? AND cmc.completionstate=1";
if($competencyid != null){
$sql .= " AND uc.competencyid = ?";
}
$sql.=" GROUP BY uc.id";
var_dump($sql);
$results=$DB->get_records_sql($sql, [1, $courseid, $competencyid]);
$results=$DB->get_records_sql($sql, [1, $courseid, $competencyid]);*/
$sql="SELECT * FROM moodle4.mdl_competency_usercomp uc JOIN moodle4.mdl_block_competency_iena_review ir ON uc.id = ir.reviewid WHERE uc.status=1 AND ir.courseid=? ";
if($competencyid!=null){
$sql.="AND uc.competencyid=?";
}
if($studentid!=null){
$sql.="AND uc.userid=?";
}
$results=$DB->get_records_sql($sql, [$courseid, $competencyid, $studentid]);
return $results;
}
function save_review_request($reviewid, $userid){
global $COURSE;
global $DB;
$params=array();
$params["reviewid"]=$reviewid;
$params["courseid"]=$COURSE->id;
$params["userid"]=$userid;
if(!$DB->record_exists('block_competency_iena_review', $params)){
$params["timecreated"]=time();
$DB->insert_record('block_competency_iena_review', $params);
}
}
function delete_review_request($reviewid, $userid){
global $COURSE;
global $DB;
$params=array();
$params["reviewid"]=$reviewid;
$params["courseid"]=$COURSE->id;
$params["userid"]=$userid;
if($DB->record_exists('block_competency_iena_review', $params)){
$DB->delete_records('block_competency_iena_review', $params);
}
}
\ No newline at end of file
......@@ -113,7 +113,7 @@
}
.iena-history .list-group-item.otheronly p{
.iena-history .list-group-item.otheronly p, .iena-history .list-group-item.courseonly p{
margin-top: 20px;;
}
......@@ -352,11 +352,15 @@ table.dataTable{
}
.iena-chart-unique.big{
height: 90%!important;
}
.iena-chart-unique .chart-area{
display: flex;
flex-direction: row;
flex-wrap: nowrap;
height: 100%!important;
}
......@@ -371,6 +375,11 @@ table.dataTable{
.iena-chart-unique.big .chart-image{
max-width: 61%!important;
height: 100%;
}
.iena-chart-unique .chart-table{
overflow: auto;
}
.taxo-lvl1 small{
......@@ -431,7 +440,7 @@ table.dataTable{
.dashboard-chart{
grid-column: 2;
grid-row: 1 / 3;
overflow-y:auto;
}
.dashboard-chart .iena-chart{
......
......@@ -104,7 +104,7 @@
<form method='post' action='{{link_assess}}'>
<div class='form-group'><div class='form-group'>
<select name='grade' class='form-control'>
<select name='gradeform' class='form-control'>
{{#scale}}
<option value='{{value}}'{{selected}}>{{title}}</option>
{{/scale}}
......
......@@ -108,6 +108,7 @@
<div class='form-group'>
<textarea name='note' class='form-control' placeholder="Commentaire d'évaluation"></textarea>
</div>
<input hidden style='display: none;' type='text' name='from' value={{from}}>
<button type='submit' class='btn btn-primary'>Évaluer</button>
</form>
......@@ -172,21 +173,20 @@
</li>
{{/is_course_evidence}}
{{#is_evidence_course}}
<li class='list-group-item courseonly' data-evidenceorigin='course' data-evidencemessage="courseonly">
<p>La compétence n'a pas été évaluée dans ce contexte.</p>
{{/all_evidences}}
{{#is_evidence_course}}
<li class='list-group-item courseonly' data-evidenceorigin='course' data-evidencemessage="">
<p>La compétence n'a pas été évaluée dans ce cours.</p>
</li>
{{/is_evidence_course}}
{{#is_evidence_other}}
<li class='list-group-item otheronly' data-evidenceorigin='other' data-evidencemessage="courseonly" style="display: none;">
<p>La compétence n'a pas été évaluée dans ce contexte.</p>
<p>La compétence n'a pas été évaluée hors de ce cours.</p>
</li>
{{/is_evidence_other}}
{{/all_evidences}}
{{^all_evidences}}
<li class='list-group-item'><p><i>La compétence n'a pas encore été évaluée.</i></p></li>
{{/all_evidences}}
</ul>
</div>
</div>
......
......@@ -72,10 +72,10 @@
<button type='button' class='close' data-dismiss='modal' aria-label='Close'><span aria-hidden='true'>&times;</span></button>
</div>
<div class='modal-body'>
<form method='post' action='{{link_dashboard}}?courseid={{courseid}}&studentid={{student.studentid}}&competencyid={{id}}'>
<form method='post' action='{{link_dashboard}}?courseid={{courseid}}&studentid={{student.studentid}}&competencyid={{id}}?pouet'>
<div class='form-group'><div class='form-group'>
<select name='grade' class='form-control'>
<select name='gradeform' class='form-control'>
{{#scale}}
<option value='{{value}}'{{selected}}>{{title}}</option>
{{/scale}}
......
......@@ -28,7 +28,7 @@
*/
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2022062800;
$plugin->version = 2024022000;
$plugin->requires = 2014051200;
$plugin->component = 'block_competency_iena';
$plugin->release = 'v1.0';
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment