From a211321c8430ed0b085ced2119fd42755ee3a808 Mon Sep 17 00:00:00 2001 From: konradm Date: Thu, 17 Oct 2024 14:14:38 +0200 Subject: [PATCH] =?UTF-8?q?commit=20//=20Generuj=20wiersze=20dla=20uczni?= =?UTF-8?q?=C3=B3w=20studentsData.forEach(student=20=3D>=20{=20=20=20=20?= =?UTF-8?q?=20const=20row=20=3D=20document.createElement('tr');?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit // Komórka z imieniem i nazwiskiem const tdName = document.createElement('td'); tdName.textContent = student.name; row.appendChild(tdName); // Upewnij się, że 'behavior' jest zdefiniowany if (!student.behavior) { student.behavior = {}; } // Komórki z checkboxami dla kryteriów categoryColumns.forEach(column => { const td = document.createElement('td'); const checkbox = document.createElement('input'); checkbox.type = 'checkbox'; checkbox.id = `${column.id}-${student.name.replace(/ /g, '-')}`; checkbox.onchange = calculateStats; // Ustawienie stanu checkboxa na podstawie zapisanych danych if (student.behavior[`day${currentDay}`] && student.behavior[`day${currentDay}`][column.id]) { checkbox.checked = student.behavior[`day${currentDay}`][column.id]; } else { checkbox.checked = false; } td.appendChild(checkbox); row.appendChild(td); }); tbody.appendChild(row); }); --- index.html | 41 +++++------ js/app.js | 0 js/script.js | 149 ++++++++++++++++++++++---------------- p1/token.txt | 1 - templates/criteria.html | 7 -- templates/dashboard.html | 51 ------------- templates/header.html | 12 --- templates/statistics.html | 27 ------- 8 files changed, 106 insertions(+), 182 deletions(-) delete mode 100644 js/app.js delete mode 100644 p1/token.txt delete mode 100644 templates/criteria.html delete mode 100644 templates/dashboard.html delete mode 100644 templates/header.html delete mode 100644 templates/statistics.html diff --git a/index.html b/index.html index d6f1fe3..0be4322 100644 --- a/index.html +++ b/index.html @@ -27,6 +27,7 @@ + Frekwencja 95-100% @@ -41,47 +42,47 @@ Etap szkolny - + Etap rejonowy - + Etap wojewódzki - + Etap ogólnopolski - + Udział w konkursach - + Wyróżnienie w konkursie - + Reprezentacja indywidualna - + Reprezentacja zespołowa - + Udział w zawodach - + Organizacja imprez - + Funkcje w klasie - + Uroczystości okolicznościowe @@ -89,17 +90,16 @@ Udział w poczcie sztandarowej - + Pomoc nauczycielowi - + Wolontariat - @@ -122,11 +122,9 @@ @@ -134,11 +132,12 @@ - + + - +
Imię i Nazwisko
diff --git a/js/app.js b/js/app.js deleted file mode 100644 index e69de29..0000000 diff --git a/js/script.js b/js/script.js index eee3c2e..eb68634 100644 --- a/js/script.js +++ b/js/script.js @@ -54,30 +54,33 @@ async function loadClasses() { if (classes) { console.log('Classes loaded:', classes); - let section_HTML = ""; + const selectClass = document.getElementById("select-class-select"); + selectClass.innerHTML = ""; // Clear existing options - // Iterowanie po wszystkich klasach i wczytywanie plików z danymi uczniów - for (const classInfo of classes) { - const studentsFilePath = '/data/' + classInfo.file_path; - const studentsDataFromFile = await fetchJSONFile(studentsFilePath); + classes.forEach(classInfo => { + const option = document.createElement('option'); + option.value = classInfo.class; + option.textContent = `Klasa: ${classInfo.class}`; + selectClass.appendChild(option); + console.log("DODANO KLASE ", classInfo.class, " DO SELECT"); + }); - // Wczytywanie klas do elementu select w html - const selectClass = document.getElementById("select-class-select"); + // Add event listener for class selection + selectClass.addEventListener('change', function() { + const selectedClass = this.value; + console.log(`Wybrano klasę: ${selectedClass}`); + // Wczytaj dane uczniów dla wybranej klasy + // To implement based on how you store student data per class + // For example: + // loadStudents(selectedClass); + // But for now, assuming studentsData is global + }); - if (!section_HTML.includes(classInfo.class)) { - const option = document.createElement('option'); - option.value = classInfo.class; - option.textContent = `Klasa: ${classInfo.class}`; - selectClass.appendChild(option); - console.log("DODANO KLASE ", classInfo.class, " DO SELECT"); - section_HTML += classInfo.class; - } - - if (studentsDataFromFile) { - console.log(`Students loaded for class ${classInfo.class}:`, studentsDataFromFile); - // Możesz tutaj przechowywać dane uczniów dla poszczególnych klas - // Na przykład, dodając je do odpowiedniego obiektu lub tablicy - } + // Optionally, set a default selected class + if (classes.length > 0) { + selectClass.value = classes[0].class; + // Load students for the first class + // loadStudents(classes[0].class); } } } @@ -92,13 +95,27 @@ async function loadCriteria() { } // Dane uczniów (przykładowe, powinny być ładowane z plików JSON) -const studentsData = [ +let studentsData = [ { name: "Jan Kowalski", behavior: {} }, { name: "Anna Nowak", behavior: {} }, { name: "Piotr Wiśniewski", behavior: {} }, { name: "Katarzyna Zielińska", behavior: {} } ]; +// To store student data per class, you might need a data structure like: +// let allStudentsData = { +// "1A": [...], +// "2B": [...], +// ... +// }; + +// let allStudentsData = {}; + +// function loadStudents(className) { +// // Load students data for the class from allStudentsData[className] +// // And set studentsData accordingly +// } + let currentDay = 0; const baseDate = new Date(); @@ -138,7 +155,8 @@ function showInnerTab(category) { // Funkcja, aby ustawić domyślną kategorię i zakładkę document.addEventListener("DOMContentLoaded", function() { - showInnerTab('frekwencja'); // Pokaż domyślnie zakładkę Frekwencja + // Domyślnie pokazujemy kategorię 'frekwencja' + showInnerTab('frekwencja'); // Ustawienie daty na dziś document.getElementById('current-date').innerText = baseDate.toLocaleDateString(); @@ -160,8 +178,20 @@ function changeDay(direction) { // Funkcja do ładowania danych dnia function loadDayData() { - // Wczytaj dane dla aktualnego dnia, jeśli istnieją - // Możesz tu zaimplementować dodatkową logikę, jeśli potrzebujesz + studentsData.forEach(student => { + const studentId = student.name.replace(/ /g, '-'); + const behavior = student.behavior[`day${currentDay}`] || {}; + + // Get criteria for the current category + const categoryColumns = categories[currentCategory]; + categoryColumns.forEach(column => { + const checkbox = document.getElementById(`${column.id}-${studentId}`); + if (checkbox) { + checkbox.checked = behavior[column.id] || false; + } + }); + }); + calculateStats(); } @@ -174,7 +204,10 @@ function saveDayData() { const categoryColumns = categories[currentCategory]; categoryColumns.forEach(column => { - behavior[column.id] = document.getElementById(`${column.id}-${studentId}`).checked; + const checkbox = document.getElementById(`${column.id}-${studentId}`); + if (checkbox) { + behavior[column.id] = checkbox.checked; + } }); student.behavior[`day${currentDay}`] = behavior; @@ -183,24 +216,27 @@ function saveDayData() { // Funkcja do obliczania statystyk function calculateStats() { - const frekwencjaPoints = parseInt(document.getElementById('frekwencja-punkty').value) || 0; - const brakGodzinPoints = parseInt(document.getElementById('brak-godzin-punkty').value) || 0; - const min85Points = parseInt(document.getElementById('min-85-punkty').value) || 0; - const etapSzkolnyPoints = parseInt(document.getElementById('etap-szkolny-punkty')?.value) || 5; - const etapRejonowyPoints = parseInt(document.getElementById('etap-rejonowy-punkty')?.value) || 10; - const etapWojewodzkiPoints = parseInt(document.getElementById('etap-wojewodzki-punkty')?.value) || 15; - const etapOgolnopolskiPoints = parseInt(document.getElementById('etap-ogolnopolski-punkty')?.value) || 20; - const udzialKonkursPoints = parseInt(document.getElementById('udzial-konkurs-punkty')?.value) || 5; - const wyroznienieKonkursPoints = parseInt(document.getElementById('wyroznienie-konkurs-punkty')?.value) || 10; - const reprezentacjaIndPoints = parseInt(document.getElementById('reprezentacja-indywidualna-punkty')?.value) || 5; - const reprezentacjaZesPoints = parseInt(document.getElementById('reprezentacja-zespolowa-punkty')?.value) || 10; - const udzialZawodyPoints = parseInt(document.getElementById('udzial-zawody-punkty')?.value) || 15; - const organizacjaImprezPoints = parseInt(document.getElementById('organizacja-imprez-punkty')?.value) || 10; - const funkcjaKlasyPoints = parseInt(document.getElementById('funkcja-klasa-punkty')?.value) || 10; - const uroczystosciPoints = parseInt(document.getElementById('uroczystosci-punkty')?.value) || 10; - const pocztaSztandarPoints = parseInt(document.getElementById('poczta-sztandar-punkty')?.value) || 20; - const pomocNauczycielaPoints = parseInt(document.getElementById('pomoc-nauczyciel-punkty')?.value) || 10; - const wolontariatPoints = parseInt(document.getElementById('wolontariat-punkty')?.value) || 10; + // Pobieranie punktów z zakładki "Ustal punkty" + const points = { + frekwencja: parseInt(document.getElementById('frekwencja-punkty').value) || 0, + brak_godzin: parseInt(document.getElementById('brak-godzin-punkty').value) || 0, + min_85: parseInt(document.getElementById('min-85-punkty').value) || 0, + etap_szkolny: parseInt(document.getElementById('etap_szkolny-punkty').value) || 5, + etap_rejonowy: parseInt(document.getElementById('etap_rejonowy-punkty').value) || 10, + etap_wojewodzki: parseInt(document.getElementById('etap_wojewodzki-punkty').value) || 15, + etap_ogolnopolski: parseInt(document.getElementById('etap_ogolnopolski-punkty').value) || 20, + udzial_konkurs: parseInt(document.getElementById('udzial_konkurs-punkty').value) || 5, + wyroznienie_konkurs: parseInt(document.getElementById('wyroznienie_konkurs-punkty').value) || 10, + reprezentacja_indywidualna: parseInt(document.getElementById('reprezentacja_indywidualna-punkty').value) || 5, + reprezentacja_zespolowa: parseInt(document.getElementById('reprezentacja_zespolowa-punkty').value) || 10, + udzial_zawody: parseInt(document.getElementById('udzial_zawody-punkty').value) || 15, + organizacja_imprez: parseInt(document.getElementById('organizacja_imprez-punkty').value) || 10, + funkcja_klasa: parseInt(document.getElementById('funkcja_klasa-punkty').value) || 10, + uroczystosci: parseInt(document.getElementById('uroczystosci-punkty').value) || 10, + poczta_sztandar: parseInt(document.getElementById('poczta_sztandar-punkty').value) || 20, + pomoc_nauczyciel: parseInt(document.getElementById('pomoc_nauczyciel-punkty').value) || 10, + wolontariat: parseInt(document.getElementById('wolontariat-punkty').value) || 10 + }; let stats = ''; @@ -210,25 +246,12 @@ function calculateStats() { Object.keys(student.behavior).forEach(day => { const behavior = student.behavior[day]; - let dayPoints = 0; // Startowa liczba punktów - if (behavior.frekwencja) dayPoints += frekwencjaPoints; - if (behavior.brak_godzin) dayPoints += brakGodzinPoints; - if (behavior.min_85) dayPoints += min85Points; - if (behavior.etap_szkolny) dayPoints += etapSzkolnyPoints; - if (behavior.etap_rejonowy) dayPoints += etapRejonowyPoints; - if (behavior.etap_wojewodzki) dayPoints += etapWojewodzkiPoints; - if (behavior.etap_ogolnopolski) dayPoints += etapOgolnopolskiPoints; - if (behavior.udzial_konkurs) dayPoints += udzialKonkursPoints; - if (behavior.wyroznienie_konkurs) dayPoints += wyroznienieKonkursPoints; - if (behavior.reprezentacja_indywidualna) dayPoints += reprezentacjaIndPoints; - if (behavior.reprezentacja_zespolowa) dayPoints += reprezentacjaZesPoints; - if (behavior.udzial_zawody) dayPoints += udzialZawodyPoints; - if (behavior.organizacja_imprez) dayPoints += organizacjaImprezPoints; - if (behavior.funkcja_klasa) dayPoints += funkcjaKlasyPoints; - if (behavior.uroczystosci) dayPoints += uroczystosciPoints; - if (behavior.poczta_sztandar) dayPoints += pocztaSztandarPoints; - if (behavior.pomoc_nauczyciel) dayPoints += pomocNauczycielaPoints; - if (behavior.wolontariat) dayPoints += wolontariatPoints; + let dayPoints = 0; + for (const [criterion, value] of Object.entries(behavior)) { + if (value && points[criterion]) { + dayPoints += points[criterion]; + } + } totalPoints += dayPoints; }); diff --git a/p1/token.txt b/p1/token.txt deleted file mode 100644 index 567c04c..0000000 --- a/p1/token.txt +++ /dev/null @@ -1 +0,0 @@ -a4dd89352b730d2ef7a3eff72ab98dbc2b7e8d6b \ No newline at end of file diff --git a/templates/criteria.html b/templates/criteria.html deleted file mode 100644 index cf39461..0000000 --- a/templates/criteria.html +++ /dev/null @@ -1,7 +0,0 @@ -
-

Kryteria Weryfikacyjne

- -
- diff --git a/templates/dashboard.html b/templates/dashboard.html deleted file mode 100644 index d006bd8..0000000 --- a/templates/dashboard.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - Behavior Assessment Dashboard - - - -

Behavior Assessment Dashboard

- -
- - - - - - - - - - - -
- -

Criteria Table

- - - - - - - - - - -
Student
- - - - - diff --git a/templates/header.html b/templates/header.html deleted file mode 100644 index 41adefc..0000000 --- a/templates/header.html +++ /dev/null @@ -1,12 +0,0 @@ -
-

Ocena Zachowania

-

Zalogowany jako: Nauczyciel

-
- - - diff --git a/templates/statistics.html b/templates/statistics.html deleted file mode 100644 index ce95227..0000000 --- a/templates/statistics.html +++ /dev/null @@ -1,27 +0,0 @@ -
-

Statystyki i Ustalanie Wag

- - -
- - -
- - - -

Statystyki dla uczniów

- - - - - - - - - - - - -
UczeńPunktyOcena
-
-