let criteriaData = 1 let studentsData = []; // Baza danych uczniów let currentCategory = "behavior"; // Domyślna kategoria console.log("data") // Wczytanie kryteriów z pliku JSON fetch('../data/criteria.json') .then(response => response.json()) .then(data => { console.log(data); criteriaData = data; populateCategorySelect(); loadStudents(); // Wczytanie pierwszej listy uczniów }) .catch(error => { console.error("Błąd podczas wczytywania pliku criteria.json: ", error); }); // Załaduj kategorie do selektora function populateCategorySelect() { const categorySelect = document.getElementById('category-select'); criteriaData.categories.forEach(category => { const option = document.createElement('option'); option.value = category.id; option.text = category.name; categorySelect.appendChild(option); }); } // Załaduj kryteria na podstawie wybranej kategorii function loadCriteriaByCategory() { currentCategory = document.getElementById('category-select').value; generateStudentTable(); } // Wczytanie listy uczniów z pliku function loadStudents() { fetch('data/students/zsl_class_2a_fizyka_2024_2025.json') // Załaduj pierwszy plik jako przykład .then(response => response.json()) .then(data => { studentsData = data.students; generateStudentTable(); }) .catch(error => { console.error("Błąd podczas wczytywania pliku studentów: ", error); }); } // Generowanie tabeli uczniów i kryteriów function generateStudentTable() { const table = document.getElementById('student-table'); const thead = document.querySelector('thead tr'); table.innerHTML = ''; // Wyczyść tabelę uczniów thead.innerHTML = 'Uczeń'; // Wyczyść i ustaw pierwszy nagłówek const categoryCriteria = criteriaData.categories.find(category => category.id === currentCategory).criteria_ids; const filteredCriteria = criteriaData.criteria.filter(criterion => categoryCriteria.includes(criterion.id)); // Dodanie kolumn dla kryteriów filteredCriteria.forEach(criterion => { const th = document.createElement('th'); th.textContent = criterion.name; thead.appendChild(th); }); // Generowanie wierszy dla każdego ucznia studentsData.forEach(student => { const row = document.createElement('tr'); row.innerHTML = `${student.first_name} ${student.last_name}`; // Dodanie pól do zaznaczania dla każdego kryterium filteredCriteria.forEach(criterion => { const td = document.createElement('td'); td.innerHTML = ``; row.appendChild(td); }); table.appendChild(row); }); } // Obliczanie statystyk na podstawie wybranych kryteriów function calculateStats() { // Logika do przeliczania punktacji na podstawie zaznaczonych kryteriów }