(function($) { 'use strict'; $(function() { console.log("Admin Resource JS loaded"); var $levelSelect = $('#id_classroom'); var $subjectSelect = $('#id_subject'); // Check if elements exist if (!$levelSelect.length) { console.warn("Classroom field #id_classroom not found"); } if (!$subjectSelect.length) { console.warn("Subject field #id_subject not found"); } if (!$levelSelect.length || !$subjectSelect.length) return; var isArabic = $('html').attr('lang') === 'ar' || $('body').hasClass('rtl'); function updateSubjects(levelId, currentSubjectId) { console.log("Updating subjects for classroom:", levelId); // If no level selected, clear subjects if (!levelId) { $subjectSelect.html(''); return; } $.getJSON('/ajax/get-subjects-by-level/', {level_id: levelId}, function(data) { console.log("Subjects fetched:", data.length); var options = ''; $.each(data, function(index, subject) { var selected = ''; // If we have a current subject ID, check if it matches if (currentSubjectId && subject.id.toString() === currentSubjectId.toString()) { selected = ' selected'; } var name = isArabic ? subject.name_ar : subject.name_en; options += ''; }); $subjectSelect.html(options); }) .fail(function(jqxhr, textStatus, error) { var err = textStatus + ", " + error; console.error("Request Failed: " + err); }); } $levelSelect.on('change', function() { var levelId = $(this).val(); // When level changes, we reset the subject selection updateSubjects(levelId, null); }); // Initial load var initialLevel = $levelSelect.val(); var initialSubject = $subjectSelect.val(); if (initialLevel) { updateSubjects(initialLevel, initialSubject); } else { if (!initialSubject) { $subjectSelect.html(''); } } }); })(django.jQuery);