diff --git a/competency_iena_competencies_2.php b/competency_iena_competencies_2.php
index 9c5d6609baaa25e9f6c94698ac2b44eeb1d56f1b..b883f819e3ee0f86144ef241a94e5f0e0e7fe755 100644
--- a/competency_iena_competencies_2.php
+++ b/competency_iena_competencies_2.php
@@ -45,8 +45,7 @@ if ($count_course_cpts === 0) {
 	$student->get_student_by_id($studentid);
 
 	$PAGE->set_heading($OUTPUT->heading($student->firstname . " " . $student->lastname, 2, 'headingblock header outline'));
-	$PAGE->requires->js("/blocks/competency_iena/js/datalist-polyfill.min.js");
-	$PAGE->requires->js("/blocks/competency_iena/js/stud-x-cpts.js");
+	$PAGE->requires->js("/blocks/competency_iena/js/dropdown.js");
 	echo $OUTPUT->header();
 
 	/* Les demandes de validation de compétence (review) prises dans le cptuser car n'existent pas dans le contexte restreint à un cours. */
@@ -81,19 +80,20 @@ if ($count_course_cpts === 0) {
 	echo "<h2 class='h3'>{$student->firstname} {$student->lastname}</h2>";
 
 	if ( !$is_student ) {
-		echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/competency_iena_competencies_2.php' id='change_stud_form' class='form-inline'>";
+		echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/competency_iena_competencies_2.php' id='change_stud_form' class='form-inline' autocomplete='off' style='display: block;height: 1.5rem;'>";
 		echo "<input type='text' hidden name='courseid' value='{$courseid}'>";
 		echo "<span hidden id='studentid'>{$studentid}</span>";
-		/* https://github.com/mfranzke/datalist-polyfill */
-		echo "<label class='m-y-1 m-r-1' for='studentid_sel' style='color: black;'>Etudiant</label>";
-		echo "<input type='text' name='studentid' id='studentid_sel' value='' list='student_list' class='form-control m-r-1'>";
-		echo "<datalist id='student_list' title='Select student'>";
+		
+		echo "<div id='student_dropdown' class='iena-dropdown' style='z-index: 10;'>";
+		echo "<input type='text' hidden name='studentid' id='studentid_sel' class='iena-drop-input-value' value=''>";
+		echo "<input type='text' value='' class='form-control iena-drop-input' style='font-size: .7rem; line-height: 1; width: 300px;' placeholder='{$student->firstname} {$student->lastname}'><button class='btn btn-secondary' id='prevStud' style='font-size: .8rem;line-height: 1.09; margin-left: 0.5rem;'>Précédent</button><button class='btn btn-secondary' id='nextStud' style='font-size: .8rem;line-height: 1.09; margin-left: 0.5rem;'>Suivant</button>";
+		echo "<div class='iena-droplist' id='student_list'>";
 		foreach ($students as $stud) {
-			echo "<option value='{$stud->firstname} {$stud->lastname} ({$stud->id})' data-value='{$stud->id}'>{$stud->firstname} {$stud->lastname} ({$stud->id})</option>";
+			echo "<a href='#' data-value='{$stud->id}' class='iena-drop-item' style='display: none;'>{$stud->firstname} {$stud->lastname}</a>";
 		}
-		echo "</datalist>";
-		echo "<div><button class='btn btn-secondary' id='prevStud'>Précédent</button>";
-		echo "<button class='btn btn-secondary m-l-1' id='nextStud'>Suivant</button></div>";
+		echo "</div>";
+		echo "</div>";
+		
 		echo "</form>";
 	}
 
@@ -124,6 +124,9 @@ if ($count_course_cpts === 0) {
 	foreach ($user_course_competencies as $user_course_competency) {
 		// Crée un obj cpt à partir de l'ID. Attention, id de compétence et course_competency sont différents. 
 		$cpt = new \core_competency\competency($user_course_competency->get('competencyid'));
+		/* Visuel indentation to reflect levels in cpt framework */
+		$cpt_level_in_framework = substr_count($cpt->get('path'), '/') - 1; /* start at 1 */
+		$level_indentation = $cpt_level_in_framework * 1.5;
 		// Récupère les chaines de caractère de l'échelle d'évaluation
 		$cpt_scale = $cpt->get_scale()->scale_items;
 		$eval = "-";
@@ -133,9 +136,9 @@ if ($count_course_cpts === 0) {
 		$proficient_class = $user_course_competency->get('proficiency') == 1 ? " list-group-item-success" : "";
 		$proficient_str = $user_course_competency->get('proficiency') == 1 ? "Oui" : "Non";
 		echo "
-		<a href='{$CFG->wwwroot}/blocks/competency_iena/course_competency.php?courseid={$courseid}&studentid={$studentid}&competencyid={$cpt->get('id')}' class='list-group-item list-group-item-action{$proficient_class}'>
+		<a href='{$CFG->wwwroot}/blocks/competency_iena/course_competency.php?courseid={$courseid}&studentid={$studentid}&competencyid={$cpt->get('id')}' class='list-group-item list-group-item-action{$proficient_class}' style='padding-left: {$level_indentation}rem;'>
 		<div class='d-flex w-100 justify-content-between'>
-		<h3 class='mb-1 iena-cpt-action-title'>{$cpt->get('shortname')}</h3>";
+		<h3 class='mb-1 iena-cpt-action-title h5'>{$cpt->get('shortname')}</h3>";
 		foreach ($reviews_data as $review) {
 			if ( $review->competencyid == $cpt->get('id') ) {
 				echo "<div><small class='review-badge'>Évaluation demandée</small></div>";
@@ -143,8 +146,7 @@ if ($count_course_cpts === 0) {
 			}
 		}
 		echo "</div>
-		<p class='' style='margin-bottom: 0;'>Évaluation : <em>{$eval}</em></p>
-		<small class=''>Acquis : {$proficient_str}</small>
+		<p class='small' style='margin-bottom: 0;'>Évaluation : {$eval} / Acquis : {$proficient_str}</p>
 		</a>";
 	}
 	echo "</div>";
diff --git a/competency_iena_competencies_mgmt.php b/competency_iena_competencies_mgmt.php
index f89ec084aaf3eee32003e5330b99ef73c422b1b5..ee25f276de03566130a0e4ec76415d73610e0b10 100644
--- a/competency_iena_competencies_mgmt.php
+++ b/competency_iena_competencies_mgmt.php
@@ -14,20 +14,12 @@
 	
 	global $COURSE, $DB, $CFG;
 
-	try {
-		$courseid = required_param('courseid', PARAM_INT);
-	} catch (coding_exception $e) {
-	}
-	try {
-		$url = new moodle_url('/blocks/competency_iena/competency_iena_competencies_mgmt.php', array('courseid' => $courseid));
-	} catch (moodle_exception $e) {
-	}
+	$courseid = required_param('courseid', PARAM_INT);
+
+	$url = new moodle_url('/blocks/competency_iena/competency_iena_competencies_mgmt.php', array('courseid' => $courseid));
 //$requete = $DB->get_record_sql('SELECT course FROM {block_competency_iena} WHERE id = ?', array($courseid));
 
-	try {
-		$PAGE->set_url($url);
-	} catch (coding_exception $e) {
-	}
+	$PAGE->set_url($url);
 	
 	if ($_POST) {
 
@@ -129,40 +121,17 @@
 		exit;
 	}
 	
-	try {
-		$course = $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST);
-	} catch (dml_exception $e) {
-	}
-	try {
-		require_login($course, false, NULL);
-	} catch (coding_exception $e) {
-	} catch (require_login_exception $e) {
-	} catch (moodle_exception $e) {
-	}
-	
-	try {
-		$PAGE->set_title(get_string('title_plugin', 'block_competency_iena'));
-	} catch (coding_exception $e) {
-	}
-	try {
-		$PAGE->set_heading($OUTPUT->heading($COURSE->fullname, 2, 'headingblock header outline'));
-	} catch (coding_exception $e) {
-	}
-	
-	
-	try {
-		echo $OUTPUT->header();
-	} catch (coding_exception $e) {
-	}
-//$PAGE->requires->js("/blocks/competency_iena/js/jquery.min.js");
+	$course = $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST);
+	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'));
+	echo $OUTPUT->header();
+
 	$PAGE->requires->js("/blocks/competency_iena/js/file.js");
 	echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"styles.css\">";
 	
 	$view = new view_competency_iena_competencies_mgmt();
 	echo $view->get_content(htmlspecialchars($courseid));
-	
-	
-	try {
-		echo $OUTPUT->footer();
-	} catch (coding_exception $e) {
-	}
+
+	echo $OUTPUT->footer();
diff --git a/competency_iena_competency_students_2.php b/competency_iena_competency_students_2.php
index d9776a18c73d844f5ded4984e6637baa6e06083f..d96adac6da89decf89b13c34b6632ba683d8dc50 100644
--- a/competency_iena_competency_students_2.php
+++ b/competency_iena_competency_students_2.php
@@ -52,8 +52,7 @@ if (count($course_cpts) === 0) {
 	}
 	
 	$PAGE->set_heading($OUTPUT->heading($current_cpt->shortname, 2, 'headingblock header outline'));
-	$PAGE->requires->js("/blocks/competency_iena/js/datalist-polyfill.min.js");
-	$PAGE->requires->js("/blocks/competency_iena/js/cpt-x-studs.js");
+	$PAGE->requires->js("/blocks/competency_iena/js/dropdown.js");
 	echo $OUTPUT->header();
 
 	/* Les étudiants. */
@@ -72,7 +71,7 @@ if (count($course_cpts) === 0) {
 
 	echo "<div class='alert row' style='padding: 0; background-color: inherit; color: inherit;'>"; /* Début change competency. */
 	echo "<div class='col-12' style='padding-left: 0;'>";
-	echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/competency_iena_competency_students_2.php' id='change_cpt_form' class='form-inline'>";
+	echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/competency_iena_competency_students_2.php' id='change_cpt_form' class='form-inline' autocomplete='off' style='display: block;height: 1.5rem;'>";
 	echo "<input type='text' hidden name='courseid' value='{$COURSE->id}'>";
 	if ( isset($_GET['grade']) ) {
 		echo "<input type='text' hidden name='grade' value='{$_GET['grade']}'>";
@@ -84,15 +83,26 @@ if (count($course_cpts) === 0) {
 		echo "<input type='text' hidden name='review' value='{$_GET['review']}'>";
 	}
 	echo "<span hidden id='competencyid'>{$current_cpt->id}</span>";
-	echo "<label class='m-r-1' for='competencyid_sel' style=''>Changer de compétence</label>";
-	echo "<input type='text' name='competencyid' id='competencyid_sel' value='' list='competency_list' class='form-control'>";
-	echo "<datalist id='competency_list' title='Select competency'>";
+	
+	// echo "<input type='text' name='competencyid' id='competencyid_sel' value='' list='competency_list' class='form-control'>";
+	// echo "<datalist id='competency_list' title='Select competency'>";
+	// foreach ($course_cpts as $course_cpt) {
+	// 	echo "<option value='{$course_cpt->get('shortname')} ({$course_cpt->get('id')})' data-value='{$course_cpt->get('id')}'>{$course_cpt->get('shortname')} ({$course_cpt->get('id')})</option>";
+	// }
+	// echo "</datalist>";
+	// echo "<button class='btn btn-secondary m-l-1' id='prevCpt'>Précédent</button>";
+	// echo "<button class='btn btn-secondary m-l-1' id='nextCpt'>Suivant</button>";
+
+	echo "<div id='student_dropdown' class='iena-dropdown' style='z-index: 1;'>";
+	echo "<input type='text' hidden name='competencyid' id='competencyid_sel' class='iena-drop-input-value' value=''>";
+	echo "<input type='text' value='' class='form-control iena-drop-input' style='font-size: .7rem; line-height: 1; width: 300px;' placeholder='{$current_cpt->shortname}' autocomplete='nope'><button class='btn btn-secondary' id='prevCpt' style='font-size: .8rem;line-height: 1.09; margin-left: 0.5rem;'>Précédent</button><button class='btn btn-secondary' id='nextCpt' style='font-size: .8rem;line-height: 1.09; margin-left: 0.5rem;'>Suivant</button>";
+	echo "<div class='iena-droplist' id='competency_list'>";
 	foreach ($course_cpts as $course_cpt) {
-		echo "<option value='{$course_cpt->get('shortname')} ({$course_cpt->get('id')})' data-value='{$course_cpt->get('id')}'>{$course_cpt->get('shortname')} ({$course_cpt->get('id')})</option>";
+		echo "<a href='#' data-value='{$course_cpt->get('id')}' class='iena-drop-item' style='display: none;'>{$course_cpt->get('shortname')}</a>";
 	}
-	echo "</datalist>";
-	echo "<button class='btn btn-secondary m-l-1' id='prevCpt'>Précédent</button>";
-	echo "<button class='btn btn-secondary m-l-1' id='nextCpt'>Suivant</button>";
+	echo "</div>";
+	echo "</div>";
+	
 	echo "</form>";
 	echo "</div>";
 	echo "</div>"; /* Fin change competency. */
@@ -312,13 +322,12 @@ if (count($course_cpts) === 0) {
 				echo "
 				<a href='{$CFG->wwwroot}/blocks/competency_iena/course_competency.php?courseid={$courseid}&studentid={$cpt_stud->id}&competencyid={$current_cpt->id}' class='list-group-item list-group-item-action{$proficient_class}'>
 				<div class='d-flex w-100 justify-content-between'>
-				<h3 class='mb-1 iena-cpt-action-title'>{$cpt_stud->firstname} {$cpt_stud->lastname}</h3>";
+				<h3 class='mb-1 iena-cpt-action-title h5'>{$cpt_stud->firstname} {$cpt_stud->lastname}</h3>";
 				if ($cpt_stud->review == 1) {
 					echo "<div><small class='review-badge'>Évaluation demandée</small></div>";
 				}
 				echo "</div>
-				<p class='' style='margin-bottom: 0;'>Évaluation : <em>{$grade_d}</em></p>
-				<small class=''>Acquis : {$proficiency_d}</small>
+				<p class='small' style='margin-bottom: 0;'>Évaluation : {$grade_d} / Acquis : {$proficiency_d}</p>
 				</a>";
 			}
 		}
diff --git a/course_competency.php b/course_competency.php
index 16054c0c6508175464ea9d8d2655397a956e3d73..5d286ae817cf4bbccbfedffd22bccc912ffd7062 100644
--- a/course_competency.php
+++ b/course_competency.php
@@ -16,9 +16,7 @@ require_login($courseid, false, NULL);
 $PAGE->set_pagelayout('course');
 $PAGE->set_title(get_string('title_plugin', 'block_competency_iena'));
 $PAGE->set_heading($OUTPUT->heading($COURSE->fullname, 2, 'headingblock header outline'));
-$PAGE->requires->js("/blocks/competency_iena/js/datalist-polyfill.min.js");
-$PAGE->requires->js("/blocks/competency_iena/js/stud-x-cpts.js");
-$PAGE->requires->js("/blocks/competency_iena/js/cpt-x-studs.js");
+$PAGE->requires->js("/blocks/competency_iena/js/dropdown.js");
 $PAGE->requires->js("/blocks/competency_iena/js/cpt-stud-course.js");
 
 /* <<< GESTION DROITS D'ACCÈS >>> */
@@ -133,10 +131,6 @@ $course_cpts = \core_competency\course_competency::list_competencies($COURSE->id
 
 /* <<< PAGE >>> */
 
-// echo "<pre>";
-// var_dump($cpt_scale);
-// echo "</pre>";
-
 /* STUDENT NAME */
 
 _html("h2", $student->firstname . " " . $student->lastname, "h3' style='margin-bottom: 0.3rem;'");
@@ -144,19 +138,21 @@ _html("h2", $student->firstname . " " . $student->lastname, "h3' style='margin-b
 /* SWITCH STUDENT FORM */
 
 if ( $is_teacher && $students != NULL && count($students) != 0 ) {
-	echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/course_competency.php' id='change_stud_form' class='form-inline m-b-1'>";
+	echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/course_competency.php' id='change_student' class='form-inline m-b-1' autocomplete='off' style='display: block;height: 1.5rem;'>";
 	echo "<input type='text' hidden name='courseid' value='{$courseid}'>";
 	echo "<input type='text' hidden name='competencyid' value='{$competencyid}'>";
 	echo "<span hidden id='studentid'>{$studentid}</span>";
-	/*echo "<label class='m-y-1 m-r-1' for='studentid_sel' style='color: black;'>Etudiant</label>";*/
-	echo "<input type='text' name='studentid' id='studentid_sel' value='' list='student_list' class='form-control' style='font-size: .7rem; line-height: 1;'>";
-	echo "<datalist id='student_list' title='Select student'>";
+
+	echo "<div id='student_dropdown' class='iena-dropdown' style='z-index: 10;'>";
+	echo "<input type='text' hidden name='studentid' id='studentid_sel' class='iena-drop-input-value' value=''>";
+	echo "<input type='text' value='' class='form-control iena-drop-input' style='font-size: .7rem; line-height: 1; width: 300px;' placeholder='{$student->firstname} {$student->lastname}'><button class='btn btn-secondary' id='prevStud' style='font-size: .8rem;line-height: 1.09; margin-left: 0.5rem;'>Précédent</button><button class='btn btn-secondary' id='nextStud' style='font-size: .8rem;line-height: 1.09; margin-left: 0.5rem;'>Suivant</button>";
+	echo "<div class='iena-droplist' id='student_list'>";
 	foreach ($students as $stud) {
-		echo "<option value='{$stud->firstname} {$stud->lastname} ({$stud->id})' data-value='{$stud->id}'>{$stud->firstname} {$stud->lastname} ({$stud->id})</option>";
+		echo "<a href='#' data-value='{$stud->id}' class='iena-drop-item' style='display: none;'>{$stud->firstname} {$stud->lastname}</a>";
 	}
-	echo "</datalist>";
-	echo "<div><button class='btn btn-secondary' id='prevStud' style='font-size: .8rem;line-height: 1.09; margin-left: 0.5rem;'>Précédent</button>";
-	echo "<button class='btn btn-secondary' id='nextStud' style='font-size: .8rem;line-height: 1.09; margin-left: 0.5rem;'>Suivant</button></div>";
+	echo "</div>";
+	echo "</div>";
+	
 	echo "</form>";
 }
 
@@ -184,19 +180,21 @@ echo "<div style='margin-bottom: 0.7rem;'>" . $cpt_path_link . "</div>";
 
 /* SWITCH COMPETENCY FORM */
 
-echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/course_competency.php' id='change_cpt_form' class='form-inline m-b-1'>";
+echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/course_competency.php' id='change_cpt_form' class='form-inline m-b-1' autocomplete='off' style='display: block;height: 1.5rem;'>";
 echo "<input type='text' hidden name='courseid' value='{$courseid}'>";
 echo "<input type='text' hidden name='studentid' value='{$studentid}'>";
 echo "<span hidden id='competencyid'>{$competencyid}</span>";
-/*echo "<label class='m-r-1' for='competencyid_sel' style=''>Changer de compétence</label>";*/
-echo "<input type='text' name='competencyid' id='competencyid_sel' value='' list='competency_list' class='form-control' style='font-size: .7rem; line-height: 1;'>";
-echo "<datalist id='competency_list' title='Select competency'>";
+
+echo "<div id='student_dropdown' class='iena-dropdown' style='z-index: 1;'>";
+echo "<input type='text' hidden name='competencyid' id='competencyid_sel' class='iena-drop-input-value' value=''>";
+echo "<input type='text' value='' class='form-control iena-drop-input' style='font-size: .7rem; line-height: 1; width: 300px;' placeholder='{$cpt->get('shortname')}' autocomplete='nope'><button class='btn btn-secondary' id='prevCpt' style='font-size: .8rem;line-height: 1.09; margin-left: 0.5rem;'>Précédent</button><button class='btn btn-secondary' id='nextCpt' style='font-size: .8rem;line-height: 1.09; margin-left: 0.5rem;'>Suivant</button>";
+echo "<div class='iena-droplist' id='competency_list'>";
 foreach ($course_cpts as $course_cpt) {
-	echo "<option value='{$course_cpt->get('shortname')} ({$course_cpt->get('id')})' data-value='{$course_cpt->get('id')}'>{$course_cpt->get('shortname')} ({$course_cpt->get('id')})</option>";
+	echo "<a href='#' data-value='{$course_cpt->get('id')}' class='iena-drop-item' style='display: none;'>{$course_cpt->get('shortname')}</a>";
 }
-echo "</datalist>";
-echo "<button class='btn btn-secondary' id='prevCpt' style='font-size: .8rem;line-height: 1.09; margin-left: 0.5rem;'>Précédent</button>";
-echo "<button class='btn btn-secondary' id='nextCpt' style='font-size: .8rem;line-height: 1.09; margin-left: 0.5rem;'>Suivant</button>";
+echo "</div>";
+echo "</div>";
+
 echo "</form>";
 /* END switch competency form */
 
@@ -398,7 +396,12 @@ if ( count($cm_ids) !== 0 ) {
 	$modinfo = get_fast_modinfo($courseid);
 	echo "<div class='list-group'>";
 	foreach ($cm_ids as $cm_id) {
-		echo "<a href='{$modinfo->cms[$cm_id]->url->out()}' target='_blank' class='list-group-item list-group-item-action'><img src='$CFG->wwwroot/theme/image.php/boost/{$modinfo->cms[$cm_id]->modname}/1/icon>' style='height: 1.3rem;'><span class='align-middle'> {$modinfo->cms[$cm_id]->name}</span></a>";
+		$url = $modinfo->cms[$cm_id]->url->out();
+		$is_assign = strpos($url, '/mod/assign') !== false;
+		if ($is_teacher && $is_assign) {
+			$url = $url . "&rownum=0&action=grader&userid=" . $studentid;
+		}
+		echo "<a href='{$url}' target='_blank' class='list-group-item list-group-item-action'><img src='$CFG->wwwroot/theme/image.php/boost/{$modinfo->cms[$cm_id]->modname}/1/icon>' style='height: 1.3rem;'><span class='align-middle'> {$modinfo->cms[$cm_id]->name}</span></a>";
 	}
 	echo "</div>";
 } else {
diff --git a/js/cpt-x-studs.js b/js/cpt-x-studs.js
deleted file mode 100644
index 57c32c91e98556086604597f402c174fc01b3215..0000000000000000000000000000000000000000
--- a/js/cpt-x-studs.js
+++ /dev/null
@@ -1,44 +0,0 @@
-(function() {
-
-	/* Submit datalist selector to change current competency 
-	on the dashboard listing avery student status regarding a particular competency. */
-	window.addEventListener('load', function () {
-		var opts = document.getElementById('competency_list').childNodes;
-		var competencyid = document.getElementById('competencyid').innerHTML;
-		for (var i = 0; i < opts.length; i++) {
-			if (opts[i].dataset.value === competencyid) {
-				var prev = opts[i - 1] === undefined ? false : opts[i - 1].dataset.value;
-				var next = opts[i + 1] === undefined ? false : opts[i + 1].dataset.value;
-				if (prev === false) {
-					document.getElementById('prevCpt').setAttribute('disabled', 'disabled');
-				} else {
-					// document.getElementById('prevCpt').href += prev;
-					document.getElementById('prevCpt').dataset.prev = prev;
-					document.getElementById('prevCpt').onclick = function () {
-						document.getElementById('competencyid_sel').value = document.getElementById('prevCpt').dataset.prev;
-					}
-				}
-				if (next === false) {
-					document.getElementById('nextCpt').setAttribute('disabled', 'disabled');
-				} else {
-					// document.getElementById('nextCpt').href += next;
-					document.getElementById('nextCpt').dataset.next = next;
-					document.getElementById('nextCpt').onclick = function () {
-						document.getElementById('competencyid_sel').value = document.getElementById('nextCpt').dataset.next;
-					}
-				}
-			}
-		}
-		/* remplace le nom de l'étu par son id dans la valeur de l'input puis soumet le formulaire */
-		document.getElementById('competencyid_sel').oninput = function (e) {
-			var val = document.getElementById('competencyid_sel').value;
-			var opts = document.getElementById('competency_list').childNodes;
-			for (var i = 0; i < opts.length; i++) {
-				if (opts[i].value === val) {
-					document.getElementById('competencyid_sel').value = opts[i].dataset.value;
-					document.getElementById('change_cpt_form').submit();
-				}
-			}
-		};
-	});
-})()
\ No newline at end of file
diff --git a/js/dropdown.js b/js/dropdown.js
new file mode 100644
index 0000000000000000000000000000000000000000..5a39ad62363cef6546994e6099b23b0a8cab0710
--- /dev/null
+++ b/js/dropdown.js
@@ -0,0 +1,119 @@
+(function() {
+	function filter (e) {
+		let filter = e.target.value.toUpperCase();
+		let a = e.target.parentNode.querySelectorAll('a');
+		for (let k = 0; k < a.length; k++) {
+			let txtValue = a[k].textContent || a[k].innerText;
+			if (txtValue.toUpperCase().indexOf(filter) > -1) {
+				a[k].style.display = "block";
+			} else {
+				a[k].style.display = "none";
+			}
+		}
+	}
+	window.addEventListener('load', function () {
+
+		/* Activation of dropdowns in the page */
+
+		let drops = document.querySelectorAll('.iena-dropdown');
+		
+		for (var i = 0; i < drops.length; i++) {
+
+			drops[i].querySelector('.iena-drop-input').addEventListener('focus', function(e) {
+				let a = e.target.parentNode.querySelectorAll('a');
+				for (var i = 0; i < a.length; i++) {
+					a[i].style.display = "block";
+				}
+				filter(e);
+			});
+			
+			let a = drops[i].querySelectorAll('a');
+			
+			for (var j = 0; j < a.length; j++) {
+				a[j].onmousedown = function(e) {
+					e.preventDefault();
+					let true_input = e.target.parentNode.parentNode.querySelector('.iena-drop-input-value');
+					let value = e.target.dataset.value;
+					true_input.value = value;
+					let input = e.target.parentNode.parentNode.querySelector('.iena-drop-input')
+					input.value = e.target.innerText;
+					let a = e.target.parentNode.querySelectorAll('a');
+					for (var i = 0; i < a.length; i++) {
+						a[i].style.display = "none";
+					}
+					e.target.parentNode.parentNode.parentNode.submit();
+				};
+			}
+			
+			drops[i].querySelector('.iena-drop-input').addEventListener('blur', function(e) {
+				let a = e.target.parentNode.querySelectorAll('a');
+				for (var i = 0; i < a.length; i++) {
+					a[i].style.display = "none";
+				}
+			});
+			
+			drops[i].querySelector('.iena-drop-input').addEventListener('keyup', function(e) {
+				filter(e);
+			});
+
+		}
+
+		/* Activation of previous and next buttons for dropdowns */
+
+		if (document.getElementById('student_list') !== null) {
+			var opts = document.getElementById('student_list').childNodes;
+			var studentid = document.getElementById('studentid').innerHTML;
+			for (var i = 0; i < opts.length; i++) {
+				if (opts[i].dataset.value === studentid) {
+					var prev = opts[i - 1] === undefined ? false : opts[i - 1].dataset.value;
+					var next = opts[i + 1] === undefined ? false : opts[i + 1].dataset.value;
+					if (prev === false) {
+						document.getElementById('prevStud').setAttribute('disabled', 'disabled');
+					} else {
+						document.getElementById('prevStud').dataset.prev = prev;
+						document.getElementById('prevStud').onclick = function () {
+							document.getElementById('studentid_sel').value = document.getElementById('prevStud').dataset.prev;
+						}
+					}
+					if (next === false) {
+						document.getElementById('nextStud').setAttribute('disabled', 'disabled');
+					} else {
+						document.getElementById('nextStud').dataset.next = next;
+						document.getElementById('nextStud').onclick = function () {
+							document.getElementById('studentid_sel').value = document.getElementById('nextStud').dataset.next;
+						}
+					}
+				}
+			}
+		}
+
+		if (document.getElementById('competency_list') !== null) {
+			var opts = document.getElementById('competency_list').childNodes;
+			var competencyid = document.getElementById('competencyid').innerHTML;
+			for (var i = 0; i < opts.length; i++) {
+				if (opts[i].dataset.value === competencyid) {
+					var prev = opts[i - 1] === undefined ? false : opts[i - 1].dataset.value;
+					var next = opts[i + 1] === undefined ? false : opts[i + 1].dataset.value;
+					if (prev === false) {
+						document.getElementById('prevCpt').setAttribute('disabled', 'disabled');
+					} else {
+						document.getElementById('prevCpt').dataset.prev = prev;
+						document.getElementById('prevCpt').onclick = function () {
+							document.getElementById('competencyid_sel').value = document.getElementById('prevCpt').dataset.prev;
+						}
+					}
+					if (next === false) {
+						document.getElementById('nextCpt').setAttribute('disabled', 'disabled');
+					} else {
+						document.getElementById('nextCpt').dataset.next = next;
+						document.getElementById('nextCpt').onclick = function () {
+							document.getElementById('competencyid_sel').value = document.getElementById('nextCpt').dataset.next;
+						}
+					}
+				}
+			}
+		}
+
+	});
+
+})()
\ No newline at end of file
diff --git a/js/stud-x-cpts.js b/js/stud-x-cpts.js
deleted file mode 100644
index 6c3ad428038795fd5323b847596e303ee14e7d60..0000000000000000000000000000000000000000
--- a/js/stud-x-cpts.js
+++ /dev/null
@@ -1,42 +0,0 @@
-(function() {
-	window.addEventListener('load', function () {
-		var opts = document.getElementById('student_list').childNodes;
-		var studentid = document.getElementById('studentid').innerHTML;
-		for (var i = 0; i < opts.length; i++) {
-			if (opts[i].dataset.value === studentid) {
-				var prev = opts[i - 1] === undefined ? false : opts[i - 1].dataset.value;
-				var next = opts[i + 1] === undefined ? false : opts[i + 1].dataset.value;
-				if (prev === false) {
-					document.getElementById('prevStud').setAttribute('disabled', 'disabled');
-				} else {
-					// document.getElementById('prevStud').href += prev;
-					document.getElementById('prevStud').dataset.prev = prev;
-					document.getElementById('prevStud').onclick = function () {
-						document.getElementById('studentid_sel').value = document.getElementById('prevStud').dataset.prev;
-					}
-				}
-				if (next === false) {
-					document.getElementById('nextStud').setAttribute('disabled', 'disabled');
-				} else {
-					// document.getElementById('nextStud').href += next;
-					document.getElementById('nextStud').dataset.next = next;
-					document.getElementById('nextStud').onclick = function () {
-						document.getElementById('studentid_sel').value = document.getElementById('nextStud').dataset.next;
-					}
-				}
-			}
-		}
-		/* remplace le nom de l'étu par son id dans la valeur de l'input puis soumet le formulaire */
-		document.getElementById('studentid_sel').oninput = function (e) {
-			var val = document.getElementById('studentid_sel').value;
-			var opts = document.getElementById('student_list').childNodes;
-			for (var i = 0; i < opts.length; i++) {
-				if (opts[i].value === val) {
-					document.getElementById('studentid_sel').value = opts[i].dataset.value;
-					document.getElementById('change_stud_form').submit();
-				}
-			}
-		};
-	});
-
-})()
\ No newline at end of file
diff --git a/styles.css b/styles.css
index 8abf7d728143df6e0ada1e911e0bc5322d949605..0ef22f3cce6d3598009f18da1ee5076cf8cb55d0 100644
--- a/styles.css
+++ b/styles.css
@@ -77,4 +77,24 @@
     padding: 0.12rem 0.35rem;
     background-color: #008090;
     color: white;
-}
\ No newline at end of file
+}
+
+/* Dropdown selectors */
+
+.iena-dropdown {
+    position: absolute;
+}
+
+.iena-dropdown a:hover { background-color: #ddd; }
+
+.iena-droplist {
+    max-height: 250px;
+    overflow:scroll;
+    width: 300px;
+    background-color: #f6f6f6;
+}
+
+.iena-drop-item {
+    text-decoration: none !important;
+    padding: 0.25rem 0.5rem;
+}
diff --git a/version.php b/version.php
index 59481fecb8b5ee301f5e78d3087de45f1f20dd97..c8826b28ad75c7992527568fa838ecdd8284b003 100644
--- a/version.php
+++ b/version.php
@@ -28,7 +28,7 @@
  */
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2019072200;
+$plugin->version = 2019102400;
 $plugin->requires = 2014051200;
 $plugin->component = 'block_competency_iena';
 $plugin->release = 'v1.0';