From 1be99fa195a696d0c52ced75c968c9ac5824095e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:11:08 -0500 Subject: [PATCH 01/24] Refactor render_results to simplify logic and add results cards --- block_learning_style.php | 136 +++++++++++++++++++-------------------- 1 file changed, 66 insertions(+), 70 deletions(-) diff --git a/block_learning_style.php b/block_learning_style.php index 0beae206df5..1d17d864124 100644 --- a/block_learning_style.php +++ b/block_learning_style.php @@ -173,83 +173,77 @@ private function get_student_content() { * Render results and chart */ private function render_results($entry) { - global $OUTPUT; - $final_style = []; - $sliders_data = []; - - $izq_title = get_string('active_recommendations', 'block_learning_style'); - $der_title = get_string('reflexive_recommendations', 'block_learning_style'); - - // Si Activo es mayor, el resultado es negativo y la barra se va a la izquierda. - $diff_active = $entry->ap_reflexivo - $entry->ap_active; - $final_style[abs($diff_active) . "ar"] = $this->my_slider($diff_active, get_string("active", 'block_learning_style'), get_string("reflexive", 'block_learning_style'),$izq_title,$der_title); - - $izq_title = get_string('sensorial_recommendations', 'block_learning_style'); - $der_title = get_string('intuitive_recommendations', 'block_learning_style'); - - // Intuitivo (der) - Sensorial (izq) - $diff_sensorial = $entry->ap_intuitivo - $entry->ap_sensorial; - $final_style[abs($diff_sensorial) . "si"] = $this->my_slider($diff_sensorial, get_string("sensorial", 'block_learning_style'), get_string("intuitive", 'block_learning_style'),$izq_title,$der_title); - - $izq_title = get_string('visual_recommendations', 'block_learning_style'); - $der_title = get_string('verbal_recommendations', 'block_learning_style'); - - // Verbal (der) - Visual (izq) - $diff_visual = $entry->ap_verbal - $entry->ap_visual; - $final_style[abs($diff_visual) . "vv"] = $this->my_slider($diff_visual, get_string("visual", 'block_learning_style'), get_string("verbal", 'block_learning_style'),$izq_title,$der_title); + global $COURSE, $OUTPUT; - $izq_title = get_string('sequential_recommendations', 'block_learning_style'); - $der_title = get_string('global_recommendations', 'block_learning_style'); - - // Global (der) - Secuencial (izq) - $diff_secuencial = $entry->ap_global - $entry->ap_secuencial; - $final_style[abs($diff_secuencial) . "sg"] = $this->my_slider($diff_secuencial, get_string("sequential", 'block_learning_style'), get_string("global", 'block_learning_style'),$izq_title,$der_title); - krsort($final_style); + $results_cards = []; - foreach ($final_style as $html) { - $sliders_data[] = ['html' => $html]; + // Definition of dimensions and icons + // Processing: Active vs Reflexive + if ($entry->ap_active >= $entry->ap_reflexivo) { + $results_cards[] = [ + 'dimension' => get_string('processing_dimension', 'block_learning_style'), + 'style' => get_string('active', 'block_learning_style'), + 'icon' => 'fa-bolt' + ]; + } else { + $results_cards[] = [ + 'dimension' => get_string('processing_dimension', 'block_learning_style'), + 'style' => get_string('reflexive', 'block_learning_style'), + 'icon' => 'fa-lightbulb-o' + ]; } - // Inicializar popovers de forma segura - $this->page->requires->js_call_amd('block_learning_style/popoverinit', 'init'); - - $json_style = [ - "act" => intval($entry->ap_active), - "ref" => intval($entry->ap_reflexivo), - "sen" => intval($entry->ap_sensorial), - "int" => intval($entry->ap_intuitivo), - "vis" => intval($entry->ap_visual), - "vrb" => intval($entry->ap_verbal), - "seq" => intval($entry->ap_secuencial), - "glo" => intval($entry->ap_global) - ]; - - $chart_labels = [ - get_string('chart_visual', 'block_learning_style'), - get_string('chart_sensorial', 'block_learning_style'), - get_string('chart_active', 'block_learning_style'), - get_string('chart_global', 'block_learning_style'), - get_string('chart_verbal', 'block_learning_style'), - get_string('chart_intuitive', 'block_learning_style'), - get_string('chart_reflexive', 'block_learning_style'), - get_string('chart_sequential', 'block_learning_style') - ]; - - $dataset_label = get_string('learning_style_label', 'block_learning_style'); + // Perception: Sensorial vs Intuitive + if ($entry->ap_sensorial >= $entry->ap_intuitivo) { + $results_cards[] = [ + 'dimension' => get_string('perception_dimension', 'block_learning_style'), + 'style' => get_string('sensorial', 'block_learning_style'), + 'icon' => 'fa-wrench' + ]; + } else { + $results_cards[] = [ + 'dimension' => get_string('perception_dimension', 'block_learning_style'), + 'style' => get_string('intuitive', 'block_learning_style'), + 'icon' => 'fa-puzzle-piece' + ]; + } - $params = [ - 'canvasId' => 'radarstyle', - 'data' => $json_style, - 'labels' => $chart_labels, - 'datasetLabel' => $dataset_label - ]; + // Understanding: Sequential vs Global + if ($entry->ap_secuencial >= $entry->ap_global) { + $results_cards[] = [ + 'dimension' => get_string('understanding_dimension', 'block_learning_style'), + 'style' => get_string('sequential', 'block_learning_style'), + 'icon' => 'fa-list-ol' + ]; + } else { + $results_cards[] = [ + 'dimension' => get_string('understanding_dimension', 'block_learning_style'), + 'style' => get_string('global', 'block_learning_style'), + 'icon' => 'fa-globe' + ]; + } - $this->page->requires->js_call_amd('block_learning_style/radar_handler', 'init', [$params]); + // Input: Visual vs Verbal + if ($entry->ap_visual >= $entry->ap_verbal) { + $results_cards[] = [ + 'dimension' => get_string('input_dimension', 'block_learning_style'), + 'style' => get_string('visual', 'block_learning_style'), + 'icon' => 'fa-eye' + ]; + } else { + $results_cards[] = [ + 'dimension' => get_string('input_dimension', 'block_learning_style'), + 'style' => get_string('verbal', 'block_learning_style'), + 'icon' => 'fa-comments-o' + ]; + } $template_data = [ 'icon' => $this->get_learning_style_icon('4em', 'display: block;', false), - 'sliders' => $sliders_data, - 'instanceid' => $this->instance->id + 'results_cards' => $results_cards, + 'summary_url' => (new moodle_url('/blocks/learning_style/view_individual.php', ['courseid' => $COURSE->id, 'userid' => $entry->user]))->out(false), + 'instanceid' => $this->instance->id, + 'showdescriptions' => !empty($this->config->showdescriptions) ]; return $OUTPUT->render_from_template('block_learning_style/results', $template_data); @@ -353,7 +347,8 @@ private function get_test_invitation() { $template_data = [ 'icon' => $this->get_learning_style_icon('4em', '', true), - 'url' => (new moodle_url('/blocks/learning_style/view.php', array('cid' => $COURSE->id)))->out() + 'url' => (new moodle_url('/blocks/learning_style/view.php', array('cid' => $COURSE->id)))->out(), + 'showdescriptions' => !empty($this->config->showdescriptions) ]; return $OUTPUT->render_from_template('block_learning_style/test_invitation', $template_data); @@ -399,7 +394,8 @@ private function get_continue_test_card($answered_count) { 'url' => $url->out(false), 'button_text' => $button_text, 'button_icon' => $button_icon, - 'button_class' => $button_class + 'button_class' => $button_class, + 'showdescriptions' => !empty($this->config->showdescriptions) ]; return $OUTPUT->render_from_template('block_learning_style/continue_test', $template_data); From bc1aa4f01aa4da9bbdad7c060fa3985897a35c88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:13:37 -0500 Subject: [PATCH 02/24] Add edit form for learning style block settings Implemented a form for editing learning style block settings, including a toggle for showing descriptions. --- edit_form.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 edit_form.php diff --git a/edit_form.php b/edit_form.php new file mode 100644 index 00000000000..e710b1a290d --- /dev/null +++ b/edit_form.php @@ -0,0 +1,13 @@ +addElement('header', 'config_header', get_string('blocksettings', 'block')); + + // Checkbox/Select for showing descriptions. Default is No (0). + $mform->addElement('selectyesno', 'config_showdescriptions', get_string('config_showdescriptions', 'block_learning_style')); + $mform->setDefault('config_showdescriptions', 0); + $mform->setType('config_showdescriptions', PARAM_BOOL); + $mform->addHelpButton('config_showdescriptions', 'config_showdescriptions', 'block_learning_style'); + } +} From 502f772d889206fa07df531caa4e93867fc715c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:15:52 -0500 Subject: [PATCH 03/24] Reduce auto-save delay from 2s to 400ms --- amd/src/view_handler.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/amd/src/view_handler.js b/amd/src/view_handler.js index 51ddfdb1a0b..76d756951de 100644 --- a/amd/src/view_handler.js +++ b/amd/src/view_handler.js @@ -55,8 +55,8 @@ define(['jquery', 'core/ajax'], function($, Ajax) { clearTimeout(autoSaveTimer); } - // Auto-save after 2 seconds of inactivity - autoSaveTimer = setTimeout(autoSaveProgress, 2000); + // Auto-save after 400ms of inactivity + autoSaveTimer = setTimeout(autoSaveProgress, 400); }); // Handle form submission for navigation From 12236ff14de3fa57fe872a237f05b3760949400b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:16:54 -0500 Subject: [PATCH 04/24] Modify timeout and error highlight styles in view_handler Updated the timeout duration for change event handling and adjusted the error highlight styling. --- amd/build/view_handler.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/amd/build/view_handler.min.js b/amd/build/view_handler.min.js index f02b6ea84f7..160575c03d2 100644 --- a/amd/build/view_handler.min.js +++ b/amd/build/view_handler.min.js @@ -1 +1 @@ -define(["jquery","core/ajax"],(function(o,e){"use strict";return{init:function(e){var t=null,r=!1,n=e.formUrl;function i(){if(!r){r=!0;var o=new FormData(document.getElementById("learningStyleForm"));o.set("action","autosave"),fetch(n,{method:"POST",body:o}).then((function(o){return o.json()})).then((function(o){r=!1})).catch((function(o){r=!1}))}}o(".select-q").on("change",(function(){var e=o(this).closest(".learning_style_item");e.hasClass("question-error-highlight")&&(e.css({border:"","background-color":"","border-radius":"",padding:"","margin-bottom":"","box-shadow":""}),e.removeClass("question-error-highlight")),t&&clearTimeout(t),t=setTimeout(i,2e3)})),o("#learningStyleForm").on("submit",(function(e){var t=e.originalEvent.submitter,r=t?t.value:"next";if("previous"===r)return!0;if("next"!==r&&"finish"!==r)return!0;var n=o(".select-q"),i=!0,s=null;return n.each((function(){if(""===o(this).val()){i=!1;var e=o(this).closest(".learning_style_item");e.length&&(e.css({border:"3px solid #d32f2f","background-color":"#ffebee","border-radius":"10px",padding:"24px 28px","margin-bottom":"1.5rem","box-shadow":"0 4px 8px rgba(211, 47, 47, 0.3)"}),e.addClass("question-error-highlight"),s||(s=e))}})),i?void 0:(e.preventDefault(),s&&s[0].scrollIntoView({behavior:"smooth",block:"center"}),!1)})),e.shouldAutoScroll&&setTimeout((function(){var e=!1;o(".select-q").each((function(){if(!e&&""===o(this).val()){var t=o(this).closest(".learning_style_item");t.length&&(t.css({border:"3px solid #28a745","background-color":"#d4edda","border-radius":"10px",padding:"24px 28px","margin-bottom":"1.5rem","box-shadow":"0 4px 8px rgba(40, 167, 69, 0.3)",transition:"all 0.3s ease"}),t[0].scrollIntoView({behavior:"smooth",block:"center"}),setTimeout((function(){t.css({border:"","background-color":"","border-radius":"",padding:"","margin-bottom":"","box-shadow":""})}),5e3)),e=!0}}))}),300),e.scrollToFinish&&setTimeout((function(){var e=o("#submitBtn");e.length&&(e[0].scrollIntoView({behavior:"smooth",block:"center"}),e.css({"box-shadow":"0 0 20px rgba(40, 167, 69, 0.8)",transition:"all 0.3s ease"}),setTimeout((function(){e.css("box-shadow","")}),5e3))}),300)}}})); +define(["jquery","core/ajax"],(function(o,e){"use strict";return{init:function(e){var t=null,r=!1,n=e.formUrl;function i(){if(!r){r=!0;var o=new FormData(document.getElementById("learningStyleForm"));o.set("action","autosave"),fetch(n,{method:"POST",body:o}).then((function(o){return o.json()})).then((function(o){r=!1})).catch((function(o){r=!1}))}}o(".select-q").on("change",(function(){var e=o(this).closest(".learning_style_item");e.hasClass("question-error-highlight")&&(e.css({border:"","background-color":"","border-radius":"",padding:"","margin-bottom":"","box-shadow":""}),e.removeClass("question-error-highlight")),t&&clearTimeout(t),t=setTimeout(i,400)})),o("#learningStyleForm").on("submit",(function(e){var t=e.originalEvent.submitter,r=t?t.value:"next";if("previous"===r)return!0;if("next"!==r&&"finish"!==r)return!0;var n=o(".select-q"),i=!0,s=null;return n.each((function(){if(""===o(this).val()){i=!1;var e=o(this).closest(".learning_style_item");e.length&&(e.css({border:"3px solid #d32f2f","background-color":"#ffebee","border-radius":"10px",padding:"24px 28px","margin-bottom":"1.5rem","box-shadow":"0 4px 8px rgba(211, 47, 47, 0.3)"}),e.addClass("question-error-highlight"),s||(s=e))}})),i?void 0:(e.preventDefault(),s&&s[0].scrollIntoView({behavior:"smooth",block:"center"}),!1)})),e.shouldAutoScroll&&setTimeout((function(){var e=!1;o(".select-q").each((function(){if(!e&&""===o(this).val()){var t=o(this).closest(".learning_style_item");t.length&&(t.css({border:"3px solid #28a745","background-color":"#d4edda","border-radius":"10px",padding:"24px 28px","margin-bottom":"1.5rem","box-shadow":"0 4px 8px rgba(40, 167, 69, 0.3)",transition:"all 0.3s ease"}),t[0].scrollIntoView({behavior:"smooth",block:"center"}),setTimeout((function(){t.css({border:"","background-color":"","border-radius":"",padding:"","margin-bottom":"","box-shadow":""})}),5e3)),e=!0}}))}),300),e.scrollToFinish&&setTimeout((function(){var e=o("#submitBtn");e.length&&(e[0].scrollIntoView({behavior:"smooth",block:"center"}),e.css({"box-shadow":"0 0 20px rgba(40, 167, 69, 0.8)",transition:"all 0.3s ease"}),setTimeout((function(){e.css("box-shadow","")}),5e3))}),300)}}})); From 4c64d43a67dd599299dae5a2187e9fe80f461909 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:18:26 -0500 Subject: [PATCH 05/24] Refactor strings for Learning Styles Exploration Updated various strings to reflect the change from 'Learning Style' to 'Learning Styles Exploration', ensuring consistency across the administration panel and user interface. --- lang/en/block_learning_style.php | 70 ++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/lang/en/block_learning_style.php b/lang/en/block_learning_style.php index 6d8aab537c1..dd3be8d7859 100644 --- a/lang/en/block_learning_style.php +++ b/lang/en/block_learning_style.php @@ -1,16 +1,16 @@ Lorem ipsum dolor.

'; $string['accept_code_honor_text'] = "Accept"; -$string['redirect_accept_success'] = "Congratulations, you can now view your results in the course sidebar."; -$string['redirect_accept_exist'] = "You have already completed the assessment, redirecting to the course"; +$string['redirect_accept_success'] = "Congratulations, you can now view your results here."; +$string['redirect_accept_exist'] = "You have already completed the exploration, redirecting to the results."; $string['accept_message'] = "Accepted"; $string['required_message'] = "Please accept to continue"; -$string['learning_style_actived'] = "Learning Style assessment enabled"; -$string['learning_style_configempty'] = "Assessment enabled but needs configuration. Please configure this block"; +$string['learning_style_actived'] = "Learning Styles Exploration enabled"; +$string['learning_style_configempty'] = "Exploration enabled but needs configuration. Please configure this block"; $string['submit_text'] = "Continue and go to the course"; $string['active'] = "Active"; @@ -18,6 +18,10 @@ $string['sensorial'] = "Sensorial"; $string['intuitive'] = "Intuitive"; $string['visual'] = "Visual"; + +$string['config_showdescriptions'] = 'Show descriptions'; +$string['config_showdescriptions_help'] = 'Show or hide the description banners in the block.'; + $string['verbal'] = "Verbal"; $string['sequential'] = "Sequential"; $string['global'] = "Global"; @@ -28,7 +32,7 @@ $string['download_results'] = 'Download Results'; $string['select_option'] = 'Select an option'; $string['progress_saved'] = 'Progress saved successfully'; -$string['all_questions_required'] = 'All questions must be answered before finishing the test'; +$string['all_questions_required'] = 'All questions must be answered before finishing the exploration.'; // Dashboard tooltips and labels $string['dashboard_surveyed'] = 'Surveyed'; @@ -222,7 +226,7 @@ $string["learning_style:q44_b"] = "think of possible consequences or applications of the solution in a wide range of areas."; // Administrative section strings -$string['admin_title'] = 'Learning Style Administration'; +$string['admin_title'] = 'Learning Styles Exploration Administration'; $string['admin_access_denied'] = 'Access denied. Only teachers and administrators can view this page.'; $string['admin_statistics'] = 'General Statistics'; $string['total_participants'] = 'Total Participants'; @@ -235,7 +239,7 @@ $string['learning_style_deleted'] = 'Participation has been successfully deleted.'; $string['no_participants'] = 'No results available yet'; $string['no_data_available'] = 'No Data Available'; -$string['no_participants_message'] = 'No students have started the test yet.'; +$string['no_participants_message'] = 'No students have started the exploration yet.'; $string['back_to_course'] = 'Back to Course'; $string['back_to_admin'] = 'Back to Admin Panel'; $string['teachers_redirect_message'] = 'Teachers are redirected to the admin panel.'; @@ -261,7 +265,7 @@ $string['profile_global'] = 'Global'; // Individual results page -$string['individual_results_title'] = 'Individual Learning Styles Results'; +$string['individual_results_title'] = 'Individual Learning Styles Exploration Results'; $string['learning_style_results_for'] = 'Learning Styles Results for'; $string['completed_on'] = 'Completed on'; $string['processing_dimension'] = 'Processing Dimension'; @@ -298,26 +302,24 @@ $string['view_admin_results'] = 'Go to Administration Panel'; // Test invitation -$string['test_title'] = 'Learning Styles Test'; $string['discover_your_style'] = 'Discover your learning styles'; $string['what_is_felder'] = 'What is the Felder-Soloman Model?'; $string['test_description'] = 'This model breaks down how your mind prefers to receive and process information for learning. It analyzes four cognitive dimensions to provide you with personalized study strategies that transform your way of learning, making the process more efficient and less exhausting.'; $string['feature_44_questions'] = '44 quick questions'; $string['feature_4_dimensions'] = '4 learning dimensions'; $string['feature_instant_results'] = 'Instant results with recommendations'; -$string['start_test'] = 'Start Test'; -$string['test_not_configured'] = 'Test is not configured. Please contact your instructor.'; -$string['test_completed'] = 'Test Completed'; -$string['your_learning_style'] = 'Your Learning Style'; +$string['start_test'] = 'Start Exploration'; +$string['test_not_configured'] = 'Exploration is not configured. Please contact your instructor.'; +$string['test_completed'] = 'Learning Styles Exploration Completed'; +$string['your_results_here'] = 'See your results here'; // Test page content -$string['test_page_title'] = 'Learning Styles Test'; -$string['test_intro_p1'] = 'This test is based on the Felder-Soloman Model, a tool that identifies your preferences in how you process and organize information for learning.'; +$string['test_intro_p1'] = 'This exploration is based on the Felder-Soloman Model, a tool that identifies your preferences in how you process and organize information for learning.'; $string['test_intro_p2'] = 'Knowing your learning styles will allow you to:'; $string['test_benefit_1'] = '• Identify the most effective study strategies for you'; $string['test_benefit_2'] = '• Better understand how you process information'; $string['test_benefit_3'] = '• Make the most of the resources available in the course'; -$string['test_intro_p3'] = 'The test consists of quick questions that evaluate 4 dimensions: Active/Reflective, Sensory/Intuitive, Visual/Verbal, and Sequential/Global. There are no right or wrong answers, just choose the option that best describes you.'; +$string['test_intro_p3'] = 'The exploration consists of quick questions that evaluate 4 dimensions: Active/Reflective, Sensory/Intuitive, Visual/Verbal, and Sequential/Global. There are no right or wrong answers, just choose the option that best describes you.'; $string['test_lets_begin'] = 'Let\'s begin!'; $string['test_note'] = 'Note:'; $string['test_all_required'] = 'All questions are required'; @@ -328,24 +330,24 @@ // Continue test strings $string['your_progress'] = 'Your progress'; $string['completed'] = 'completed'; -$string['continue_test'] = 'Continue Test'; +$string['continue_test'] = 'Continue Exploration'; // Dashboard strings $string['dominant_style'] = 'Dominant style'; $string['least_dominant_style'] = 'Least dominant style'; $string['teacher_recommendation'] = 'Teacher recommendations:'; -$string['no_completed_tests'] = 'No completed tests'; -$string['no_data_message'] = 'Charts and statistics will be displayed when students complete the learning styles test.'; +$string['no_completed_tests'] = 'No completed explorations'; +$string['no_data_message'] = 'Charts and statistics will be displayed when students complete the learning styles exploration.'; $string['chart_title'] = 'Learning styles distribution'; $string['na_label'] = 'N/A'; -$string['no_completed_tests_title'] = 'No completed tests'; -$string['no_completed_tests_message'] = 'Charts and statistics will be shown once students complete the learning styles test.'; +$string['no_completed_tests_title'] = 'No completed explorations'; +$string['no_completed_tests_message'] = 'Charts and statistics will be shown once students complete the learning styles exploration.'; // View individual strings -$string['test_in_progress'] = 'Test in progress'; +$string['test_in_progress'] = 'Exploration in progress'; $string['has_answered'] = 'has answered'; $string['of_44_questions'] = 'of 44 questions.'; -$string['results_available_when_complete'] = 'Full results will be available when {$a} finishes the test.'; +$string['results_available_when_complete'] = 'Full results will be available when {$a} finishes the exploration.'; // Admin view strings $string['in_progress'] = 'In progress'; @@ -377,15 +379,15 @@ $string['chart_distribution_title'] = 'Learning styles distribution'; // Test in progress and remind strings -$string['test_in_progress_message'] = '{$a} has started the test but has not completed it yet.'; -$string['remind_submit_test'] = 'Remind the student to click the "Finish Test" button to view the results.'; +$string['test_in_progress_message'] = '{$a} has started the exploration but has not completed it yet.'; +$string['remind_submit_test'] = 'Remind the student to click the "Finish Exploration" button to view the results.'; $string['questions'] = 'questions'; $string['all_answered_title'] = 'All Questions Answered!'; -$string['all_answered_message'] = 'You have answered all 44 questions. Don\'t forget to click "Finish Test" to submit your answers and see your learning style results!'; +$string['all_answered_message'] = 'You have answered all 44 questions. Don\'t forget to click "Finish Exploration" to submit your answers and see your learning style results!'; // Admin view strings (NEW - matching personality_test structure) $string['total_students'] = 'Total Students'; -$string['completed_tests'] = 'Completed Tests'; +$string['completed_tests'] = 'Completed Explorations'; $string['in_progress_tests'] = 'In Progress'; $string['completion_rate'] = 'Completion Rate'; $string['general_statistics'] = 'General Statistics'; @@ -425,7 +427,7 @@ // Navigation buttons for pagination $string['btn_previous'] = 'Previous'; $string['btn_next'] = 'Next'; -$string['btn_finish'] = 'Finish Test'; +$string['btn_finish'] = 'Finish Exploration'; $string['complete_previous_pages'] = 'Please complete previous pages before proceeding'; $string['questions_answered'] = '{$a->answered} of {$a->total} questions answered'; $string['option_a'] = 'A'; @@ -435,7 +437,7 @@ $string['learning_dimensions'] = 'Learning Dimensions'; // Alert messages for completed but not submitted test -$string['finish_test'] = 'Finish Test'; +$string['finish_test'] = 'Finish Exploration'; // Admin view UI $string['most_common_types'] = 'Most Common Learning Styles'; @@ -450,4 +452,10 @@ $string['result_act_ref'] = 'Result Act/Ref'; $string['result_sen_int'] = 'Result Sen/Int'; $string['result_vis_vrb'] = 'Result Vis/Vrb'; + +$string['scores'] = 'Dimension Scores'; +$string['radar_chart_title'] = 'Learning Profile Radar Chart'; +$string['see_full_results'] = 'See Detailed Results'; +$string['characteristics'] = 'Characteristics'; +$string['recommendations'] = 'Recommendations'; $string['result_seq_glo'] = 'Result Seq/Glo'; From c923fad1323614ecc1afb0ba90dccac7aa094ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:18:45 -0500 Subject: [PATCH 06/24] Revise Spanish strings for Learning Style Exploration Updated various strings for the Learning Style Exploration plugin to enhance clarity and consistency in Spanish. --- lang/es/block_learning_style.php | 66 ++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/lang/es/block_learning_style.php b/lang/es/block_learning_style.php index 399e79c4f66..e63bdf950b8 100644 --- a/lang/es/block_learning_style.php +++ b/lang/es/block_learning_style.php @@ -1,12 +1,12 @@ Lorem dictumst.

'; $string['accept_code_honor_text'] = "Acepto"; -$string['redirect_accept_success'] = "Enhorabuena, ahora puedes ver tus resultados en la barra lateral del curso."; -$string['redirect_accept_exist'] = "Ya has completado la evaluación, te redirigimos al curso"; +$string['redirect_accept_success'] = "Enhorabuena, ahora puedes ver tus resultados aquí."; +$string['redirect_accept_exist'] = "Ya has completado la evaluación, te redirigimos a los resultados."; $string['accept_message'] = "Estilo de aprendizaje detectado"; $string['required_message'] = "Por favor, realiza la evaluación de estilos de aprendizaje para continuar"; $string['learning_style_actived'] = "Evaluación de estilos de aprendizaje activada"; @@ -18,6 +18,10 @@ $string['sensorial'] = "Sensorial"; $string['intuitive'] = "Intuitivo"; $string['visual'] = "Visual"; + +$string['config_showdescriptions'] = 'Mostrar descripciones'; +$string['config_showdescriptions_help'] = 'Muestra u oculta los banners de descripción en el bloque.'; + $string['verbal'] = "Verbal"; $string['sequential'] = "Secuencial"; $string['global'] = "Global"; @@ -28,7 +32,7 @@ $string['download_results'] = 'Descargar Resultados'; $string['select_option'] = 'Seleccione una opción'; $string['progress_saved'] = 'Progreso guardado exitosamente'; -$string['all_questions_required'] = 'Todas las preguntas deben ser respondidas antes de finalizar el test'; +$string['all_questions_required'] = 'Todas las preguntas deben ser respondidas antes de finalizar la exploración.'; // Dashboard tooltips and labels $string['dashboard_surveyed'] = 'Encuestados'; @@ -235,7 +239,7 @@ $string['learning_style_deleted'] = 'Participación eliminada exitosamente.'; $string['no_participants'] = 'Aún no hay resultados disponibles'; $string['no_data_available'] = 'No hay datos disponibles'; -$string['no_participants_message'] = 'Ningún estudiante ha comenzado el test aún.'; +$string['no_participants_message'] = 'Ningún estudiante ha comenzado la exploración aún.'; $string['back_to_course'] = 'Volver al Curso'; $string['back_to_admin'] = 'Volver al Panel de Administración'; $string['teachers_redirect_message'] = 'Los profesores son redirigidos al panel de administración.'; @@ -261,7 +265,7 @@ $string['profile_global'] = 'Global'; // Página de resultados individuales -$string['individual_results_title'] = 'Resultados Individuales de Estilos de Aprendizaje'; +$string['individual_results_title'] = 'Resultados Individuales de la Exploración de Estilos de Aprendizaje'; $string['learning_style_results_for'] = 'Resultados de Estilos de Aprendizaje para'; $string['completed_on'] = 'Completado el'; $string['processing_dimension'] = 'Dimensión de Procesamiento'; @@ -298,26 +302,24 @@ $string['view_admin_results'] = 'Ir al Panel de Administración'; // Invitación al test -$string['test_title'] = 'Test de Estilos de Aprendizaje'; $string['discover_your_style'] = 'Descubre tus estilos de aprendizaje'; $string['what_is_felder'] = '¿Qué es el Modelo Felder-Soloman?'; $string['test_description'] = 'Este modelo desglosa cómo tu mente prefiere recibir y procesar información. Analiza cuatro dimensiones cognitivas para ofrecerte estrategias de estudio personalizadas que transforman tu manera de aprender, haciendo el proceso más eficiente y menos agotador.'; $string['feature_44_questions'] = '44 preguntas rápidas'; $string['feature_4_dimensions'] = '4 dimensiones de aprendizaje'; $string['feature_instant_results'] = 'Resultados instantáneos con recomendaciones'; -$string['start_test'] = 'Iniciar Test'; -$string['test_not_configured'] = 'El test no está configurado. Por favor contacta a tu instructor.'; -$string['test_completed'] = 'Test Completado'; -$string['your_learning_style'] = 'Tus Estilos de Aprendizaje'; +$string['start_test'] = 'Iniciar Exploración'; +$string['test_not_configured'] = 'La exploración no está configurada. Por favor contacta a tu instructor.'; +$string['test_completed'] = 'Exploración de Estilos de Aprendizaje Completada'; +$string['your_results_here'] = 'Mira tus resultados aquí'; // Contenido de la página del test -$string['test_page_title'] = 'Test de Estilos de Aprendizaje'; -$string['test_intro_p1'] = 'Este test está basado en el Modelo de Felder-Soloman, una herramienta que identifica tus preferencias en la forma de procesar y organizar la información para aprender.'; +$string['test_intro_p1'] = 'Esta exploración está basada en el Modelo de Felder-Soloman, una herramienta que identifica tus preferencias en la forma de procesar y organizar la información para aprender.'; $string['test_intro_p2'] = 'Conocer tus estilos de aprendizaje te permitirá:'; $string['test_benefit_1'] = '• Identificar las estrategias de estudio más efectivas para ti'; $string['test_benefit_2'] = '• Comprender mejor cómo procesas la información'; $string['test_benefit_3'] = '• Aprovechar al máximo los recursos disponibles en el curso'; -$string['test_intro_p3'] = 'El test consta de preguntas rápidas que evalúan 4 dimensiones: Activo/Reflexivo, Sensorial/Intuitivo, Visual/Verbal y Secuencial/Global. No hay respuestas correctas o incorrectas, solo elige la opción que mejor te describa.'; +$string['test_intro_p3'] = 'La exploración consta de preguntas rápidas que evalúan 4 dimensiones: Activo/Reflexivo, Sensorial/Intuitivo, Visual/Verbal y Secuencial/Global. No hay respuestas correctas o incorrectas, solo elige la opción que mejor te describa.'; $string['test_lets_begin'] = '¡Comencemos!'; $string['test_note'] = 'Nota:'; $string['test_all_required'] = 'Todas las preguntas son obligatorias'; @@ -328,24 +330,24 @@ // Continue test strings $string['your_progress'] = 'Tu progreso'; $string['completed'] = 'completado'; -$string['continue_test'] = 'Continuar Test'; +$string['continue_test'] = 'Continuar Exploración'; // Dashboard strings $string['dominant_style'] = 'Estilo dominante'; $string['least_dominant_style'] = 'Estilo menos dominante'; $string['teacher_recommendation'] = 'Se le recomienda al docente:'; -$string['no_completed_tests'] = 'No hay tests completados'; -$string['no_data_message'] = 'Los gráficos y estadísticas se mostrarán cuando los estudiantes completen el test de estilos de aprendizaje.'; +$string['no_completed_tests'] = 'No hay exploraciones completadas'; +$string['no_data_message'] = 'Los gráficos y estadísticas se mostrarán cuando los estudiantes completen la exploración de estilos de aprendizaje.'; $string['chart_title'] = 'Distribución de estilos de aprendizaje'; $string['na_label'] = 'N/A'; -$string['no_completed_tests_title'] = 'No hay tests completados'; -$string['no_completed_tests_message'] = 'Los gráficos y estadísticas se mostrarán una vez que los estudiantes completen el test de estilos de aprendizaje.'; +$string['no_completed_tests_title'] = 'No hay exploraciones completadas'; +$string['no_completed_tests_message'] = 'Los gráficos y estadísticas se mostrarán una vez que los estudiantes completen la exploración de estilos de aprendizaje.'; // View individual strings -$string['test_in_progress'] = 'Test en progreso'; +$string['test_in_progress'] = 'Exploración en progreso'; $string['has_answered'] = 'ha respondido'; $string['of_44_questions'] = 'de 44 preguntas.'; -$string['results_available_when_complete'] = 'Los resultados completos estarán disponibles cuando {$a} termine el test.'; +$string['results_available_when_complete'] = 'Los resultados completos estarán disponibles cuando {$a} termine la exploración.'; // Admin view strings $string['in_progress'] = 'En progreso'; @@ -377,15 +379,15 @@ $string['chart_distribution_title'] = 'Distribución de estilos de aprendizaje'; // Test in progress and remind strings -$string['test_in_progress_message'] = '{$a} ha comenzado el test pero aún no lo ha completado.'; -$string['remind_submit_test'] = 'Recuérdale al estudiante que haga clic en el botón "Finalizar Test" para ver los resultados.'; +$string['test_in_progress_message'] = '{$a} ha comenzado la exploración pero aún no la ha completado.'; +$string['remind_submit_test'] = 'Recuérdale al estudiante que haga clic en el botón "Finalizar Exploración" para ver los resultados.'; $string['questions'] = 'preguntas'; $string['all_answered_title'] = '¡Todas las preguntas respondidas!'; -$string['all_answered_message'] = 'Has respondido las 44 preguntas. ¡No olvides hacer clic en "Finalizar Test" para enviar tus respuestas y ver tus resultados de estilo de aprendizaje!'; +$string['all_answered_message'] = 'Has respondido las 44 preguntas. ¡No olvides hacer clic en "Finalizar Exploración" para enviar tus respuestas y ver tus resultados de estilo de aprendizaje!'; // Admin view strings (NEW - matching personality_test structure) $string['total_students'] = 'Total de Estudiantes'; -$string['completed_tests'] = 'Test Completados'; +$string['completed_tests'] = 'Exploraciones Completadas'; $string['in_progress_tests'] = 'En Progreso'; $string['completion_rate'] = 'Tasa de Finalización'; $string['general_statistics'] = 'Estadísticas Generales'; @@ -425,8 +427,8 @@ // Navigation buttons for pagination $string['btn_previous'] = 'Anterior'; $string['btn_next'] = 'Siguiente'; -$string['btn_finish'] = 'Finalizar Test'; -$string['complete_previous_pages'] = 'Por favor, completa las páginas anteriores antes de finalizar el test.'; +$string['btn_finish'] = 'Finalizar Exploración'; +$string['complete_previous_pages'] = 'Por favor, completa las páginas anteriores antes de finalizar la exploración.'; $string['questions_answered'] = '{$a->answered} de {$a->total} preguntas respondidas'; $string['option_a'] = 'A'; $string['option_b'] = 'B'; @@ -435,7 +437,7 @@ $string['learning_dimensions'] = 'Dimensiones de Aprendizaje'; // Alert messages for completed but not submitted test -$string['finish_test'] = 'Finalizar Test'; +$string['finish_test'] = 'Finalizar Exploración'; // Admin view UI $string['most_common_types'] = 'Estilos de Aprendizaje más comunes'; @@ -450,4 +452,10 @@ $string['result_act_ref'] = 'Resultado Act/Ref'; $string['result_sen_int'] = 'Resultado Sen/Int'; $string['result_vis_vrb'] = 'Resultado Vis/Vrb'; + +$string['scores'] = 'Puntajes de Dimensión'; +$string['radar_chart_title'] = 'Gráfico Radar del Perfil de Aprendizaje'; +$string['see_full_results'] = 'Ver Resultados Detallados'; +$string['characteristics'] = 'Características'; +$string['recommendations'] = 'Recomendaciones'; $string['result_seq_glo'] = 'Resultado Seq/Glo'; From 5c45d96a2ce15a29c4f79240d93adacb53ebc677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:19:10 -0500 Subject: [PATCH 07/24] Update test title and description in Mustache template --- templates/continue_test.mustache | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/templates/continue_test.mustache b/templates/continue_test.mustache index 188915c16e7..b546e003749 100644 --- a/templates/continue_test.mustache +++ b/templates/continue_test.mustache @@ -3,16 +3,18 @@
{{{icon}}}
-
{{#str}} test_title, block_learning_style {{/str}}
+
{{#str}} pluginname, block_learning_style {{/str}}
{{#str}} discover_your_style, block_learning_style {{/str}} + {{#showdescriptions}}
{{#str}} test_description, block_learning_style {{/str}}
+ {{/showdescriptions}} {{#all_answered}}
From 21896658ded9d7de6e6e56a77c2390d0a82a1372 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:19:37 -0500 Subject: [PATCH 08/24] Update results template with new structure and content --- templates/results.mustache | 53 +++++++++++++++----------------------- 1 file changed, 21 insertions(+), 32 deletions(-) diff --git a/templates/results.mustache b/templates/results.mustache index f77d5b942f9..1ab0c6d9a7d 100644 --- a/templates/results.mustache +++ b/templates/results.mustache @@ -5,46 +5,35 @@
{{#str}} test_completed, block_learning_style {{/str}}
- {{#str}} your_learning_style, block_learning_style {{/str}} + {{#str}} your_results_here, block_learning_style {{/str}} + {{#showdescriptions}}
{{#str}} test_description, block_learning_style {{/str}}
+ {{/showdescriptions}} -

{{#str}} felder_soloman_intro, block_learning_style {{/str}}

- - +
+ {{#results_cards}} +
+
+
+ {{dimension}} + +
{{style}}
+
+
+
+ {{/results_cards}} +
-

{{#str}} click_bold_for_recommendations, block_learning_style {{/str}}

- - +
+ + {{#str}} see_full_results, block_learning_style {{/str}} + +
-{{#js}} -require(['jquery'], function($) { - var instanceId = "{{instanceid}}"; - /* Check if instanceId is valid before proceeding */ - if (instanceId && window.location.hash) { - var targetHash = "#inst" + instanceId; - if (window.location.hash === targetHash) { - /* Add a small delay to ensure rendering is complete */ - setTimeout(function() { - var $target = $(targetHash); - if ($target.length) { - /* Scroll to element with some top offset (e.g. 100px for header) */ - $('html, body').animate({ - scrollTop: $target.offset().top - 100 - }, 500); - } - }, 300); - } - } -}); -{{/js}} From 6a12867d65fb22c89ccdfef66fad8a7b0a531547 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:20:21 -0500 Subject: [PATCH 09/24] Update test title in invitation template --- templates/test_invitation.mustache | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/templates/test_invitation.mustache b/templates/test_invitation.mustache index 4f0959d9f2c..e7431cf4a1a 100644 --- a/templates/test_invitation.mustache +++ b/templates/test_invitation.mustache @@ -3,10 +3,11 @@
{{{icon}}}
-
{{#str}} test_title, block_learning_style {{/str}}
+
{{#str}} pluginname, block_learning_style {{/str}}
{{#str}} discover_your_style, block_learning_style {{/str}} + {{#showdescriptions}}
@@ -23,6 +24,7 @@
+ {{/showdescriptions}}
From f62a6f993a840968a3f646e73a4bbfe283f70ed9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:20:46 -0500 Subject: [PATCH 10/24] Add conditional link for report viewing --- templates/view_individual_progress.mustache | 2 ++ 1 file changed, 2 insertions(+) diff --git a/templates/view_individual_progress.mustache b/templates/view_individual_progress.mustache index 70d85b061dc..25a7bf79986 100644 --- a/templates/view_individual_progress.mustache +++ b/templates/view_individual_progress.mustache @@ -23,9 +23,11 @@
+ {{#can_view_reports}} {{#str}} back_to_admin, block_learning_style {{/str}} + {{/can_view_reports}} {{#str}} back_to_course, block_learning_style {{/str}} From f2f86bb2fdb637d2e0e850eb2eed381069f9e72a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:21:10 -0500 Subject: [PATCH 11/24] Refactor profile summary and technical data layout --- templates/view_individual_results.mustache | 108 +++++++++++++-------- 1 file changed, 68 insertions(+), 40 deletions(-) diff --git a/templates/view_individual_results.mustache b/templates/view_individual_results.mustache index 1370f2054c9..ec65a26ef26 100644 --- a/templates/view_individual_results.mustache +++ b/templates/view_individual_results.mustache @@ -55,10 +55,12 @@
- -

{{#str}} learning_profile_summary, block_learning_style {{/str}}

+ +

{{#str}} learning_profile_summary, block_learning_style {{/str}}

-
@@ -74,55 +90,67 @@
{{#str}} technical_data, block_learning_style {{/str}}
-
- {{#technical_data}} -
-
{{#str}} dimension_active, block_learning_style {{/str}}
- {{active}} -
-
-
{{#str}} dimension_reflexive, block_learning_style {{/str}}
- {{reflexive}} -
-
-
{{#str}} dimension_sensorial, block_learning_style {{/str}}
- {{sensorial}} -
-
-
{{#str}} dimension_intuitive, block_learning_style {{/str}}
- {{intuitive}} +
+ +
+
{{#str}} scores, block_learning_style {{/str}}
+
+ {{#technical_data}} +
+
{{#str}} dimension_active, block_learning_style {{/str}}
+ {{active}} +
+
+
{{#str}} dimension_reflexive, block_learning_style {{/str}}
+ {{reflexive}} +
+
+
{{#str}} dimension_sensorial, block_learning_style {{/str}}
+ {{sensorial}} +
+
+
{{#str}} dimension_intuitive, block_learning_style {{/str}}
+ {{intuitive}} +
+
+
{{#str}} dimension_visual, block_learning_style {{/str}}
+ {{visual}} +
+
+
{{#str}} dimension_verbal, block_learning_style {{/str}}
+ {{verbal}} +
+
+
{{#str}} dimension_sequential, block_learning_style {{/str}}
+ {{sequential}} +
+
+
{{#str}} dimension_global, block_learning_style {{/str}}
+ {{global}} +
+ {{/technical_data}} +
- {{/technical_data}} -
-
- {{#technical_data}} -
-
{{#str}} dimension_visual, block_learning_style {{/str}}
- {{visual}} -
-
-
{{#str}} dimension_verbal, block_learning_style {{/str}}
- {{verbal}} -
-
-
{{#str}} dimension_sequential, block_learning_style {{/str}}
- {{sequential}} + +
+
+
{{#str}} radar_chart_title, block_learning_style {{/str}}
+ +
-
-
{{#str}} dimension_global, block_learning_style {{/str}}
- {{global}} -
- {{/technical_data}} +
+ {{#can_view_reports}} {{#str}} back_to_admin, block_learning_style {{/str}} + {{/can_view_reports}} {{#str}} back_to_course, block_learning_style {{/str}} From 3a2f277b63c0f0b3395f36d7516a974cfeef0f02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:22:09 -0500 Subject: [PATCH 12/24] Enhance security and permissions for individual results Updated permission checks for viewing individual results and added privacy safeguards for non-enrolled users. Improved security by ensuring only authorized users can access specific data. --- view_individual.php | 80 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 65 insertions(+), 15 deletions(-) diff --git a/view_individual.php b/view_individual.php index 20783ce973c..e8462f3e31d 100644 --- a/view_individual.php +++ b/view_individual.php @@ -24,20 +24,19 @@ redirect(new moodle_url('/course/view.php', array('id' => $course->id))); } -// Verificar permisos de administrador o profesor (redirect amigable al curso si no puede ver). -$canview = is_siteadmin() - || has_capability('block/learning_style:viewreports', $context) - || has_capability('moodle/course:viewhiddensections', $context); - -if (!$canview) { - $redirecturl = new moodle_url('/course/view.php', array('id' => $courseid)); - redirect($redirecturl); +// Security: Check permissions and enrollment +$is_own_results = ($USER->id == $userid); +$can_view_reports = has_capability('block/learning_style:viewreports', $context); +$is_siteadmin = is_siteadmin(); + +// Basic access check: If not owner, not teacher, and not admin -> Kick out +if (!$is_own_results && !$can_view_reports && !$is_siteadmin) { + redirect(new moodle_url('/course/view.php', array('id' => $course->id))); } -// PRIVACY: Teachers/managers in a course must not be able to view other (non-enrolled) users. -if (!is_siteadmin() && !is_enrolled($context, $user, 'block/learning_style:take_test', true)) { - $redirecturl = new moodle_url('/course/view.php', array('id' => $courseid)); - redirect($redirecturl); +// Cross-course privacy check: If teacher (not admin/owner), ensure target user is in this course +if (!$is_own_results && !$is_siteadmin && !is_enrolled($context, $user)) { + redirect(new moodle_url('/course/view.php', array('id' => $course->id))); } // Obtener datos del estilo de aprendizaje (en cualquier curso) @@ -47,6 +46,11 @@ throw new moodle_exception('learning_style_not_found', 'block_learning_style'); } +// Si está incompleto y es el estudiante, sacarlo antes de pintar nada +if (!$learning_style->is_completed && $is_own_results) { + redirect(new moodle_url('/course/view.php', array('id' => $course->id))); +} + $PAGE->set_url('/blocks/learning_style/view_individual.php', array('courseid' => $courseid, 'userid' => $userid)); $PAGE->set_context($context); $PAGE->set_course($course); @@ -75,7 +79,8 @@ 'answered_count' => $answered, 'all_answered' => ($answered == 44), 'admin_view_url' => (new moodle_url('/blocks/learning_style/admin_view.php', array('courseid' => $courseid)))->out(false), - 'course_url' => (new moodle_url('/course/view.php', array('id' => $courseid)))->out(false) + 'course_url' => (new moodle_url('/course/view.php', array('id' => $courseid)))->out(false), + 'can_view_reports' => $can_view_reports ]; echo $OUTPUT->render_from_template('block_learning_style/view_individual_progress', $template_data); @@ -144,35 +149,79 @@ ) ]; -// Profile Characteristics Strings +// Profile Characteristics Strings and Recommendations $profile_characteristics = []; +$recommendations = []; if ($learning_style->ap_active > $learning_style->ap_reflexivo) { $profile_characteristics[] = get_string('profile_active_description', 'block_learning_style'); + $recommendations[] = ['text' => get_string('active_recommendations', 'block_learning_style'), 'title' => get_string('active', 'block_learning_style')]; } else { $profile_characteristics[] = get_string('profile_reflexive_description', 'block_learning_style'); + $recommendations[] = ['text' => get_string('reflexive_recommendations', 'block_learning_style'), 'title' => get_string('reflexive', 'block_learning_style')]; } if ($learning_style->ap_sensorial > $learning_style->ap_intuitivo) { $profile_characteristics[] = get_string('profile_sensorial_description', 'block_learning_style'); + $recommendations[] = ['text' => get_string('sensorial_recommendations', 'block_learning_style'), 'title' => get_string('sensorial', 'block_learning_style')]; } else { $profile_characteristics[] = get_string('profile_intuitive_description', 'block_learning_style'); + $recommendations[] = ['text' => get_string('intuitive_recommendations', 'block_learning_style'), 'title' => get_string('intuitive', 'block_learning_style')]; } if ($learning_style->ap_visual > $learning_style->ap_verbal) { $profile_characteristics[] = get_string('profile_visual_description', 'block_learning_style'); + $recommendations[] = ['text' => get_string('visual_recommendations', 'block_learning_style'), 'title' => get_string('visual', 'block_learning_style')]; } else { $profile_characteristics[] = get_string('profile_verbal_description', 'block_learning_style'); + $recommendations[] = ['text' => get_string('verbal_recommendations', 'block_learning_style'), 'title' => get_string('verbal', 'block_learning_style')]; } if ($learning_style->ap_secuencial > $learning_style->ap_global) { $profile_characteristics[] = get_string('profile_sequential_description', 'block_learning_style'); + $recommendations[] = ['text' => get_string('sequential_recommendations', 'block_learning_style'), 'title' => get_string('sequential', 'block_learning_style')]; } else { $profile_characteristics[] = get_string('profile_global_description', 'block_learning_style'); + $recommendations[] = ['text' => get_string('global_recommendations', 'block_learning_style'), 'title' => get_string('global', 'block_learning_style')]; } +// Chart Data Preparation +$json_style = [ + "act" => intval($learning_style->ap_active), + "ref" => intval($learning_style->ap_reflexivo), + "sen" => intval($learning_style->ap_sensorial), + "int" => intval($learning_style->ap_intuitivo), + "vis" => intval($learning_style->ap_visual), + "vrb" => intval($learning_style->ap_verbal), + "seq" => intval($learning_style->ap_secuencial), + "glo" => intval($learning_style->ap_global) +]; + +$chart_labels = [ + get_string('chart_visual', 'block_learning_style'), + get_string('chart_sensorial', 'block_learning_style'), + get_string('chart_active', 'block_learning_style'), + get_string('chart_global', 'block_learning_style'), + get_string('chart_verbal', 'block_learning_style'), + get_string('chart_intuitive', 'block_learning_style'), + get_string('chart_reflexive', 'block_learning_style'), + get_string('chart_sequential', 'block_learning_style') +]; + +$dataset_label = get_string('learning_style_label', 'block_learning_style'); + +$params = [ + 'canvasId' => 'radarstyle', + 'data' => $json_style, + 'labels' => $chart_labels, + 'datasetLabel' => $dataset_label +]; + +$PAGE->requires->js_call_amd('block_learning_style/radar_handler', 'init', [$params]); + $template_data = [ 'fullname' => $fullname, 'completion_date' => $completion_date, 'dimensions' => $dimensions, 'profile_characteristics' => $profile_characteristics, + 'recommendations' => $recommendations, 'technical_data' => [ 'active' => $learning_style->ap_active, 'reflexive' => $learning_style->ap_reflexivo, @@ -184,7 +233,8 @@ 'global' => $learning_style->ap_global ], 'admin_view_url' => (new moodle_url('/blocks/learning_style/admin_view.php', array('courseid' => $courseid)))->out(false), - 'course_url' => (new moodle_url('/course/view.php', array('id' => $courseid)))->out(false) + 'course_url' => (new moodle_url('/course/view.php', array('id' => $courseid)))->out(false), + 'can_view_reports' => $can_view_reports ]; echo $OUTPUT->render_from_template('block_learning_style/view_individual_results', $template_data); From ea7f763a598458f291b0df5c8819fa8c396c55bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:22:49 -0500 Subject: [PATCH 13/24] Redirect to view_individual.php instead of view.php --- view.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/view.php b/view.php index e8b3ecd7fce..a3b62978188 100644 --- a/view.php +++ b/view.php @@ -42,9 +42,9 @@ // Check for existing response $existing_response = $DB->get_record('learning_style', array('user' => $USER->id)); -// If test is completed, redirect to results +// If test is completed, redirect to results (view_individual.php) if ($existing_response && $existing_response->is_completed) { - redirect(new moodle_url('/course/view.php', array('id' => $courseid)), + redirect(new moodle_url('/blocks/learning_style/view_individual.php', array('courseid' => $courseid, 'userid' => $USER->id)), get_string('redirect_accept_exist', 'block_learning_style'), null, \core\output\notification::NOTIFY_INFO); } @@ -87,7 +87,7 @@ function get_answers_from_post() { // If test already completed, block finishing again (cross-course). if ($existing_response && $existing_response->is_completed && $action === 'finish') { - $redirect_url = new moodle_url('/course/view.php', array('id' => $courseid)); + $redirect_url = new moodle_url('/blocks/learning_style/view_individual.php', array('courseid' => $courseid, 'userid' => $USER->id)); redirect($redirect_url, get_string('redirect_accept_exist', 'block_learning_style'), null, \core\output\notification::NOTIFY_INFO); } @@ -285,7 +285,7 @@ function get_answers_from_post() { $data->ap_secuencial = $seq_glo["a"]; $data->ap_global = $seq_glo["b"]; - $redirect_url = new moodle_url('/course/view.php', array('id' => $courseid)); + $redirect_url = new moodle_url('/blocks/learning_style/view_individual.php', array('courseid' => $courseid, 'userid' => $USER->id)); try { if ($existing_response) { From 8e2f900cf7e94906c80d29659aff8135f2c701ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Sat, 17 Jan 2026 00:03:59 -0500 Subject: [PATCH 14/24] Update CHANGELOG for version 2.0.2 Added version 2.0.2 changes including options for description visibility, radar chart addition, and title consistency. --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99de0908af7..44ed2b19a2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ Todas las modificaciones importantes del proyecto se documentarán en este archivo. +## [2.0.2] — 2026-01-16 +- Opción para mostrar/ocultar las descripciones en el bloque principal. +- Adición del gráfico radar en resultados detallados y acceso permitido a los estudiantes a esta vista. +- Se mantiene el titulo "Exploración de Estilos de Aprendizaje" en todas las vistas del bloque. +- Se ha eliminado las referencias a la palabra "Test". + ## [2.0.1] — 2026-01-08 - Paginación en la lista de estudiantes en el panel de administración. - Nueva forma de mostrar las estadísticas generales en el panel de administración. From 5786a362a52f5c5f5da742efbef66d3b52cb3a24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Sat, 17 Jan 2026 00:08:39 -0500 Subject: [PATCH 15/24] Update title in view.mustache template --- templates/view.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/view.mustache b/templates/view.mustache index 9e22a5f5370..c28f4e7b055 100644 --- a/templates/view.mustache +++ b/templates/view.mustache @@ -2,7 +2,7 @@ Learning Style Icon
-

{{#str}}test_page_title, block_learning_style{{/str}}

+

{{#str}}pluginname, block_learning_style{{/str}}

From 049a6a67016e2750fcbc5c87b3956014d7bbdfa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Sat, 17 Jan 2026 12:05:30 -0500 Subject: [PATCH 16/24] Refine card title styles in learning and results sections Removed pin indicators from card titles in learning and results sections for a cleaner appearance. --- styles.css | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/styles.css b/styles.css index b1a8bb0f998..90f19525312 100644 --- a/styles.css +++ b/styles.css @@ -302,14 +302,17 @@ position: relative !important; } -/* Eliminar solo el pin del título interior (h6.card-title dentro de .learning-description) */ +/* Eliminar solo el pin del título interior (h6 en el bloque) */ .block_learning_style .learning-description .card-title::before, -.block_learning_style .learning-description .card-title::after { +.block_learning_style .learning-description .card-title::after, +.block_learning_style .learning-results-block .card-title::before, +.block_learning_style .learning-results-block .card-title::after { content: none !important; display: none !important; } -.block_learning_style .learning-description .card-title { +.block_learning_style .learning-description .card-title, +.block_learning_style .learning-results-block .card-title { padding-left: 0 !important; margin-left: 0 !important; background: transparent !important; From 80cd15d0578ba68d99a068038e4e30340dfb53dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Sat, 17 Jan 2026 13:02:51 -0500 Subject: [PATCH 17/24] Add min-height style to card titles in block --- styles.css | 1 + 1 file changed, 1 insertion(+) diff --git a/styles.css b/styles.css index 90f19525312..fbecedaf6b7 100644 --- a/styles.css +++ b/styles.css @@ -315,6 +315,7 @@ .block_learning_style .learning-results-block .card-title { padding-left: 0 !important; margin-left: 0 !important; + min-height: 0px !important; background: transparent !important; background-color: transparent !important; border-bottom: none !important; From 15fe09dcfe7240a26990482a64378b0cabdf646d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Sat, 17 Jan 2026 13:09:11 -0500 Subject: [PATCH 18/24] Change 'See' to 'View' in result messages --- lang/en/block_learning_style.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lang/en/block_learning_style.php b/lang/en/block_learning_style.php index dd3be8d7859..af20dafbd9a 100644 --- a/lang/en/block_learning_style.php +++ b/lang/en/block_learning_style.php @@ -311,7 +311,7 @@ $string['start_test'] = 'Start Exploration'; $string['test_not_configured'] = 'Exploration is not configured. Please contact your instructor.'; $string['test_completed'] = 'Learning Styles Exploration Completed'; -$string['your_results_here'] = 'See your results here'; +$string['your_results_here'] = 'View your results here'; // Test page content $string['test_intro_p1'] = 'This exploration is based on the Felder-Soloman Model, a tool that identifies your preferences in how you process and organize information for learning.'; @@ -383,7 +383,7 @@ $string['remind_submit_test'] = 'Remind the student to click the "Finish Exploration" button to view the results.'; $string['questions'] = 'questions'; $string['all_answered_title'] = 'All Questions Answered!'; -$string['all_answered_message'] = 'You have answered all 44 questions. Don\'t forget to click "Finish Exploration" to submit your answers and see your learning style results!'; +$string['all_answered_message'] = 'You have answered all 44 questions. Don\'t forget to click "Finish Exploration" to submit your answers and view your learning style results!'; // Admin view strings (NEW - matching personality_test structure) $string['total_students'] = 'Total Students'; @@ -455,7 +455,7 @@ $string['scores'] = 'Dimension Scores'; $string['radar_chart_title'] = 'Learning Profile Radar Chart'; -$string['see_full_results'] = 'See Detailed Results'; +$string['see_full_results'] = 'View Detailed Results'; $string['characteristics'] = 'Characteristics'; $string['recommendations'] = 'Recommendations'; $string['result_seq_glo'] = 'Result Seq/Glo'; From 5c275f6594ce2a26032abc58d985ae510ab13d3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20valentina=20serna=20Gonz=C3=A1lez?= <162528525+serna0120@users.noreply.github.com> Date: Sat, 17 Jan 2026 23:22:00 -0500 Subject: [PATCH 19/24] Revise images and enhance content in README Updated image URLs and refined content for clarity and engagement. --- README.md | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 3c5c5677802..3144c69b0ae 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ Este repositorio incluye: - Acceso a **vista individual** por estudiante. - Posibilidad de **eliminación** de resultados individuales. - **Descarga CSV** de resultados completados. +- Opción para **mostrar/ocultar** las descripciones en el bloque principal. - **Controles de privacidad**: acceso restringido por capacidades y por matrícula en el curso. --- @@ -47,14 +48,14 @@ Este repositorio incluye: El recorrido comienza con una invitación clara y directa. Desde el bloque principal del curso, el estudiante puede visualizar su estado actual y acceder al test con un solo click, facilitando la participación sin fricciones.

- Invitación al Test + Invitación al Test

**Interfaz de Evaluación Optimizada** Se presenta un entorno de respuesta limpio y libre de distracciones. La interfaz ha sido diseñada para priorizar la legibilidad y la facilidad de uso, permitiendo que el estudiante se concentre totalmente en el proceso de autodescubrimiento.

- Formulario del Test + Formulario del Test

**Asistencia y Validación en Tiempo Real** @@ -70,7 +71,7 @@ Para garantizar la integridad de los datos, el sistema implementa una validació Entendemos que el tiempo es valioso. Si el estudiante debe interrumpir su sesión, el sistema guarda automáticamente su avance. Al regresar, el bloque muestra el porcentaje de progreso y permite reanudar el test exactamente donde se dejó, resaltando visualmente la siguiente pregunta a responder.

- Progreso del Test + Progreso del Test    Continuar Test

@@ -79,15 +80,19 @@ Entendemos que el tiempo es valioso. Si el estudiante debe interrumpir su sesió Si el estudiante ha completado las 44 preguntas pero aún no ha procesado el envío, el bloque muestra una notificación clara y amigable, invitándolo a formalizar la entrega y conocer su perfil de aprendizaje.

- Confirmación de Test Completado + Confirmación de Test Completado

**Análisis de Perfil y Recomendaciones Personalizadas** -Al concluir, el estudiante recibe un diagnóstico detallado de su estilo de aprendizaje. Más allá de un simple resultado, la plataforma ofrece interactividad: al pulsar sobre sus estilos predominantes, se despliegan estrategias de estudio personalizadas para potenciar su rendimiento académico. +Al finalizar, el estudiante recibe un resumen el bloque principal de sus estilos de aprendizaje predominantes, junto con un acceso directo a sus resultados detallados donde podrá ver gráficos y recomendaciones específicas.

- Resultados del Estudiante + Resultados del Estudiante +

+ +

+ Vista Detallada del Estudiante

### 2. Experiencia del Profesor @@ -97,7 +102,7 @@ Al concluir, el estudiante recibe un diagnóstico detallado de su estilo de apre El profesor cuenta con una vista ejecutiva desde el bloque, donde puede monitorizar métricas clave y gráficos de tendencia de forma inmediata, además de acceder a funciones avanzadas de exportación y administración.

- Bloque del Profesor + Bloque del Profesor

**Centro de Gestión y Analíticas** @@ -105,17 +110,14 @@ El profesor cuenta con una vista ejecutiva desde el bloque, donde puede monitori Un panel de administración que centraliza el seguimiento grupal. Permite visualizar quiénes han completado el proceso, quiénes están en curso y gestionar los resultados colectivos para adaptar la estrategia pedagógica del aula.

- Panel de Administración + Panel de Administración

**Seguimiento Individualizado y Detallado** El docente puede profundizar en el perfil específico de cada estudiante. Esta vista permite comprender las necesidades particulares de cada alumno y las recomendaciones sugeridas por el sistema para brindar un apoyo docente más humano y dirigido. -

- Vista Detallada del Estudiante -

- +- **Nota:** Esta vista es la misma que la del estudiante, pero accesible por el profesor para cualquier alumno del curso. --- ## Sección técnica From 150796f72ad6f9dc4535fc1f5873a55eca9beebe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Sat, 17 Jan 2026 23:30:51 -0500 Subject: [PATCH 20/24] Refactor: Adjust dimension display order Swapped the "Input" and "Understanding" dimensions to ensure the correct sequence in the user interface. --- block_learning_style.php | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/block_learning_style.php b/block_learning_style.php index 1d17d864124..7ffdc47d1b8 100644 --- a/block_learning_style.php +++ b/block_learning_style.php @@ -208,21 +208,6 @@ private function render_results($entry) { ]; } - // Understanding: Sequential vs Global - if ($entry->ap_secuencial >= $entry->ap_global) { - $results_cards[] = [ - 'dimension' => get_string('understanding_dimension', 'block_learning_style'), - 'style' => get_string('sequential', 'block_learning_style'), - 'icon' => 'fa-list-ol' - ]; - } else { - $results_cards[] = [ - 'dimension' => get_string('understanding_dimension', 'block_learning_style'), - 'style' => get_string('global', 'block_learning_style'), - 'icon' => 'fa-globe' - ]; - } - // Input: Visual vs Verbal if ($entry->ap_visual >= $entry->ap_verbal) { $results_cards[] = [ @@ -237,6 +222,21 @@ private function render_results($entry) { 'icon' => 'fa-comments-o' ]; } + + // Understanding: Sequential vs Global + if ($entry->ap_secuencial >= $entry->ap_global) { + $results_cards[] = [ + 'dimension' => get_string('understanding_dimension', 'block_learning_style'), + 'style' => get_string('sequential', 'block_learning_style'), + 'icon' => 'fa-list-ol' + ]; + } else { + $results_cards[] = [ + 'dimension' => get_string('understanding_dimension', 'block_learning_style'), + 'style' => get_string('global', 'block_learning_style'), + 'icon' => 'fa-globe' + ]; + } $template_data = [ 'icon' => $this->get_learning_style_icon('4em', 'display: block;', false), From 1b5b9f7160e43ade4183c44019c1deff73ef665a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20valentina=20serna=20Gonz=C3=A1lez?= <162528525+serna0120@users.noreply.github.com> Date: Sat, 17 Jan 2026 23:45:14 -0500 Subject: [PATCH 21/24] Update image links in README.md for accuracy --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3144c69b0ae..d4011c4e31a 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ Si el estudiante ha completado las 44 preguntas pero aún no ha procesado el env Al finalizar, el estudiante recibe un resumen el bloque principal de sus estilos de aprendizaje predominantes, junto con un acceso directo a sus resultados detallados donde podrá ver gráficos y recomendaciones específicas.

- Resultados del Estudiante + Resultados del Estudiante

@@ -102,7 +102,7 @@ Al finalizar, el estudiante recibe un resumen el bloque principal de sus estilos El profesor cuenta con una vista ejecutiva desde el bloque, donde puede monitorizar métricas clave y gráficos de tendencia de forma inmediata, además de acceder a funciones avanzadas de exportación y administración.

- Bloque del Profesor + Bloque del Profesor

**Centro de Gestión y Analíticas** @@ -183,7 +183,7 @@ Ejemplo (Activo/Reflexivo): El flujo del estudiante está diseñado para soportar progreso parcial: - Se crea/actualiza un registro con `is_completed = 0` mientras el test está en curso. -- El guardado automático se activa en cambios de respuesta y se ejecuta **2 segundos** después de la última interacción. +- El guardado automático se activa en cambios de respuesta y se ejecuta **400 milisegundos** después de la última interacción. - El guardado progresivo envía un `POST` con `action=autosave` y `sesskey`, y actualiza únicamente las respuestas presentes en la página actual. Reglas de integridad implementadas: From ff2e52c7509546c118256b53737cc489e4f00e1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20valentina=20serna=20Gonz=C3=A1lez?= <162528525+serna0120@users.noreply.github.com> Date: Sun, 18 Jan 2026 01:56:47 -0500 Subject: [PATCH 22/24] Clarify show/hide option and adjust image width Updated the README to clarify the default state of the show/hide descriptions option and adjusted the image width for better presentation. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d4011c4e31a..6413a0e26b9 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Este repositorio incluye: - Acceso a **vista individual** por estudiante. - Posibilidad de **eliminación** de resultados individuales. - **Descarga CSV** de resultados completados. -- Opción para **mostrar/ocultar** las descripciones en el bloque principal. +- Opción para **mostrar/ocultar** las descripciones en el bloque principal **(oculto por defecto)**. - **Controles de privacidad**: acceso restringido por capacidades y por matrícula en el curso. --- @@ -55,7 +55,7 @@ El recorrido comienza con una invitación clara y directa. Desde el bloque princ Se presenta un entorno de respuesta limpio y libre de distracciones. La interfaz ha sido diseñada para priorizar la legibilidad y la facilidad de uso, permitiendo que el estudiante se concentre totalmente en el proceso de autodescubrimiento.

- Formulario del Test + Formulario del Test

**Asistencia y Validación en Tiempo Real** From f9598f07588cd9b5fc6c3217ab0ac2b40ca9958a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Sun, 18 Jan 2026 02:09:11 -0500 Subject: [PATCH 23/24] Update release date for version 2.0.2 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44ed2b19a2f..9c2b127f59a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ Todas las modificaciones importantes del proyecto se documentarán en este archivo. -## [2.0.2] — 2026-01-16 +## [2.0.2] — 2026-01-18 - Opción para mostrar/ocultar las descripciones en el bloque principal. - Adición del gráfico radar en resultados detallados y acceso permitido a los estudiantes a esta vista. - Se mantiene el titulo "Exploración de Estilos de Aprendizaje" en todas las vistas del bloque. From 2226aec30d0c766d20142c87df1866f65d0d02da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isaac=20David=20S=C3=A1nchez=20S=C3=A1nchez?= <158796340+IsaacDev2024@users.noreply.github.com> Date: Sun, 18 Jan 2026 02:09:35 -0500 Subject: [PATCH 24/24] Update version to 2.0.2 in version.php --- version.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/version.php b/version.php index 23e4a60409b..116c37f0f92 100644 --- a/version.php +++ b/version.php @@ -1,7 +1,7 @@ version = 2026010800; +$plugin->version = 2026011800; // YYYYMMDDXX (year, month, day, 2-digit version number). $plugin->requires = 2022041900; // Moodle 4.0+ $plugin->component = 'block_learning_style'; $plugin->maturity = MATURITY_STABLE; -$plugin->release = '2.0.1'; +$plugin->release = '2.0.2';