From 16a2a2530322ad3cddb01a098b5fad625d8495b0 Mon Sep 17 00:00:00 2001
From: Thomas Fradet <t.fradet8@gmail.com>
Date: Fri, 31 May 2019 18:13:37 +0200
Subject: [PATCH] work on user x cpts vue and block himself

---
 CHANGELOG.md                              | 13 ++++--
 block_competency_iena.php                 | 12 +++--
 competency_iena_competencies_2.php        | 54 +++++++++--------------
 competency_iena_competency_students_2.php | 42 ++++++++++++++++++
 styles.css                                |  5 +++
 5 files changed, 84 insertions(+), 42 deletions(-)
 create mode 100644 competency_iena_competency_students_2.php

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 821116c..673c792 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -85,15 +85,16 @@ Ne pas utiliser de méthodes root, quitte à abandonner des fonctionnalités. Tr
 
 [x] Lister les compétences de l'utilisateur
 
-[ ] Générer un tableau ou une liste propre
+[x] Générer un tableau ou une liste propre
 
 [x] Pouvoir changer d'utilisateur via un champ de recherche dynamique
 
 [x] Pouvoir changer d'utilisateur via des boutons précédent, suivant
 
-[ ] Permettre de filtrer par proficiency et par grade
+[0] Permettre de filtrer par proficiency et par grade => pas la peine, c'est lisible et on voir bien avec les couleurs. 
 
-[ ] Générer un lien vers la page cpt x user
+[ ] Générer un lien vers la page cpt x users 
+- (quelques éléments dans le lien)
 
 ### Page statut des utilisateurs pour une compétence
 
@@ -111,6 +112,10 @@ Ne pas utiliser de méthodes root, quitte à abandonner des fonctionnalités. Tr
 
 ### Page cpt x user
 
-[ ] Récupérer toutes les données (ne marchera sûrement )
+[ ] Récupérer toutes les données (ne marchera sûrement pas)
+
+### Block en lui-même
 
+Changement de l'ordre et de l'apparence des boutons. 
 
+Ajout d'un bouton pour aller à la vue cpt x users en plus de celui pour aller vers la vue user x cpts. Nommage : "tableaux de bord" => "par étudiant" (user x cpts) et "par compétence" (cpt x users). Ces deux listes mèneront vers le cpt x user. 
diff --git a/block_competency_iena.php b/block_competency_iena.php
index 5754b04..ffbc814 100644
--- a/block_competency_iena.php
+++ b/block_competency_iena.php
@@ -53,12 +53,16 @@ class block_competency_iena extends block_base
 			$this->content = new stdClass;
 			$this->content->text = "";
 			if (has_capability('moodle/course:update', $context = context_course::instance($COURSE->id), $USER->id)) {
-				$this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competencies.php?courseid=' . $COURSE->id . '"  class="btn btn-primary w-100 mb-3" style="white-space: normal;">Acquisition des compétences</a>';
-				$this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competencies_2.php?courseid=' . $COURSE->id . '"  class="btn btn-warning w-100 mb-3" style="white-space: normal;">Acquisition des compétences 2</a>';
-				$this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competencies_mgmt.php?courseid=' . $COURSE->id . '" type="button " class="btn btn-success w-100 mb-3" style="white-space: normal;">Gérer les compétences</a>';
+				$this->content->text .= '<h4>Tableaux de bord</h4>';
+				$this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competencies_2.php?courseid=' . $COURSE->id . '"  class="btn btn-primary w-100 mb-3" style="white-space: normal;">Par étudiant</a>';
+				$this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competency_students_2.php?courseid=' . $COURSE->id . '"  class="btn btn-primary w-100" style="white-space: normal;">Par compétence</a>';
+				// marche plus
+				// $this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competencies.php?courseid=' . $COURSE->id . '"  class="btn btn-primary w-100 mb-3" style="white-space: normal;">Acquisition des compétences</a>';
+				$this->content->text .= '<hr>';
+				$this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competencies_mgmt.php?courseid=' . $COURSE->id . '" type="button " class="btn btn-secondary w-100 mb-3" style="white-space: normal;">Gérer les compétences</a>';
 				$this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competency_mgmt.php?courseid=' . $COURSE->id . '" type="button " class="btn btn-secondary w-100 mb-3" style="white-space: normal;">Informations sur l\'APC</a>';
 			} else {
-				$this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competencies.php?courseid=' . $COURSE->id . '"  class="btn btn-primary w-100 mb-3">Mes Compétences</a>';
+				$this->content->text .= '<a href="' . $CFG->wwwroot . '/blocks/competency_iena/competency_iena_competencies_2.php?courseid=' . $COURSE->id . '"  class="btn btn-primary w-100 mb-3" style="white-space: normal;">Mes compétences</a>';
 			}
 
 			// $competenceI = new block_competency_iena_competency();
diff --git a/competency_iena_competencies_2.php b/competency_iena_competencies_2.php
index 72134e4..9a30ade 100644
--- a/competency_iena_competencies_2.php
+++ b/competency_iena_competencies_2.php
@@ -33,33 +33,16 @@ echo $OUTPUT->header();
 // Les étudiants. 
 $student = new block_competency_iena_student();
 $students = $student->get_all_students_by_course($COURSE->id);
-// var_dump($students);
 
 // L'étudiant
 $student->get_student_by_id($studentid);
 
 // Les compétences du cours. 
+// Utiliser ça au cas où en appliquant un sort sur 'sortorder' dans la DB (voir params méthode) pour s'en servir pour trier les cpt dans l'ordre. Apparemment, ça trie dans l'ordre de base. Pour changer l'ordre : réordonner dans la page CPT native de moodle. 
 // $course_cpts = \core_competency\course_competency::list_competencies($COURSE->id);
-$course_cpts = \core_competency\course_competency::list_competencies($COURSE->id);
-// echo "<pre>";
-// foreach ($course_cpts as $course_cpt) {
-// 	var_dump($course_cpt);
-// 	echo "<hr>";
-// }
-// echo "</pre>";
 
 // L'état des compétences du cours pour un utilisateur
 $user_course_competencies = \core_competency\api::list_user_competencies_in_course($COURSE->id, $studentid);
-// echo "<pre>";
-// foreach ($user_course_competencies as $user_course_competency) {
-// 	var_dump($user_course_competency);
-// 	echo "<hr>";
-// 	$cpt = new \core_competency\competency($user_course_competency->get('id'));
-// 	var_dump($cpt->get_scale());
-// 	echo "<hr>";
-// 	echo "<hr>";
-// }
-// echo "</pre>";
 
 echo "<form action='{$CFG->wwwroot}/blocks/competency_iena/competency_iena_competencies_2.php' id='change_stud_form' class='form-inline m-b-1 alert alert-secondary'>";
 echo "<input type='text' hidden name='courseid' value='{$courseid}'>";
@@ -78,34 +61,37 @@ echo "</datalist>";
 
 $change_stud_url = $CFG->wwwroot."/blocks/competency_iena/competency_iena_competencies_2.php?courseid=".$courseid."&studentid=";
 
-// echo "<a href='{$change_stud_url}' class='btn btn-secondary m-l-1' id='prevStud'>Précédent</a>";
-// echo "<a href='{$change_stud_url}' class='btn btn-secondary m-l-1' id='nextStud'>Suivant</a>";
 echo "<button class='btn btn-secondary m-l-1' id='prevStud'>Précédent</button>";
 echo "<button class='btn btn-secondary m-l-1' id='nextStud'>Suivant</button>";
 
 echo "</form>";
 
 echo "<h2>{$student->firstname} {$student->lastname}</h2>";
+
+echo "<div class='list-group'>";
 foreach ($user_course_competencies as $user_course_competency) {
-	echo "<div class='alert alert-secondary'>";
+	// 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'));
-	echo "<h3 id='{$cpt->get('id')}'>{$cpt->get('shortname')}</h3>";
+	// Récupère les chaines de caractère de l'échelle d'évaluation
 	$cpt_scale = $cpt->get_scale()->scale_items;
-	if ( $user_course_competency->get('grade') == null ) {
-		$eval = "-";
-	} else {
+	$eval = "-";
+	if ( $user_course_competency->get('grade') != null ) {
 		$eval = $cpt_scale[$user_course_competency->get('grade') - 1];
 	}
-	echo "<p>Evaluation : {$eval}</p>";
-	$proficient = $user_course_competency->get('proficiency') == 1 ? "Oui" : "Non";
-	echo "<p>Validé : {$proficient}</p>";
-	echo "</div>";
+	$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='#?courseid={$courseid}&studentid={$studentid}&competencyid={$cpt->get('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->get('shortname')}</h3>
+	<!--<small class='text-muted'>3 days ago</small>-->
+	<!--<span class='badge badge-primary badge-pill'>3 days ago</span>-->
+	</div>
+	<p class='' style='margin-bottom: 0;'>Évaluation : <em>{$eval}</em></p>
+	<small class=''>Acquis : {$proficient_str}</small>
+	</a>";
 }
-
-
-
-
-
+echo "</div>";
 
 
 echo $OUTPUT->footer();
diff --git a/competency_iena_competency_students_2.php b/competency_iena_competency_students_2.php
new file mode 100644
index 0000000..3d5e2da
--- /dev/null
+++ b/competency_iena_competency_students_2.php
@@ -0,0 +1,42 @@
+<?php
+
+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');
+
+
+global $COURSE, $DB;
+
+$courseid = required_param('courseid', PARAM_INT);
+$competencyid = optional_param('competencyid', 0, PARAM_INT);
+$url = new moodle_url('/blocks/competency_iena/competency_iena_competency_students.php', array('courseid' => $courseid, 'competencyid' => $competencyid));
+//$requete = $DB->get_record_sql('SELECT course FROM {block_competency_iena} WHERE id = ?', array($courseid));
+
+$PAGE->set_pagelayout('course');
+$PAGE->set_url($url);
+
+if (!has_capability('moodle/course:update', $context = context_course::instance($courseid), $USER->id)) {
+	$link = $CFG->wwwroot . '/course/view.php?id=' . $courseid;
+	header("Location: {$link}");
+	exit;
+}
+
+$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();
+
+// require_once('view/view_competency_iena_competency_students.php');
+// $view = new view_competency_iena_competency_students();
+// echo $view->get_content($competencyid);
+
+echo "OYé";
+
+echo $OUTPUT->footer();
diff --git a/styles.css b/styles.css
index 2ea3b7f..cd37249 100644
--- a/styles.css
+++ b/styles.css
@@ -66,3 +66,8 @@
     bottom: 0
 }
 
+/* Page compétences d'un utilisateurs */
+
+.list-group-item-action:hover .iena-cpt-action-title {
+    text-decoration: underline;
+}
\ No newline at end of file
-- 
GitLab