From 534ec009908670a4998c07b33bed01eed701c80d Mon Sep 17 00:00:00 2001 From: email Date: Wed, 16 Oct 2024 11:24:57 +0200 Subject: [PATCH] fetch --- index.html | 191 +-------------------------------------------------- js/app.js | 2 +- js/script.js | 188 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 192 insertions(+), 189 deletions(-) create mode 100644 js/script.js diff --git a/index.html b/index.html index 0092002..faded32 100644 --- a/index.html +++ b/index.html @@ -107,196 +107,11 @@
- + - if (tabName === 'criteria') { - loadDayData(); - } else if (tabName === 'points') { - calculateStats(); - } - } - - function generateTable() { - const table = document.getElementById('student-table'); - table.innerHTML = ''; - - studentsData.forEach(student => { - const row = document.createElement('tr'); - row.innerHTML = ` - ${student.name} - - - - - - - - - - - - - - - - - - - `; - table.appendChild(row); - }); - } - - function changeDay(direction) { - saveDayData(); - currentDay += direction; - const newDate = new Date(baseDate); - newDate.setDate(baseDate.getDate() + currentDay); - document.getElementById('current-date').innerText = newDate.toLocaleDateString(); - loadDayData(); - } - - function loadDayData() { - studentsData.forEach(student => { - const studentId = student.name.replace(' ', '-'); - const behavior = student.behavior[`day${currentDay}`] || {}; - - document.getElementById(`frekwencja-${studentId}`).checked = behavior.frekwencja || false; - document.getElementById(`brak-godzin-${studentId}`).checked = behavior.brak_godzin || false; - document.getElementById(`min-85-${studentId}`).checked = behavior.min_85 || false; - document.getElementById(`etap-szkolny-${studentId}`).checked = behavior.etap_szkolny || false; - document.getElementById(`etap-rejonowy-${studentId}`).checked = behavior.etap_rejonowy || false; - document.getElementById(`etap-wojewodzki-${studentId}`).checked = behavior.etap_wojewodzki || false; - document.getElementById(`etap-ogolnopolski-${studentId}`).checked = behavior.etap_ogolnopolski || false; - document.getElementById(`udzial-konkurs-${studentId}`).checked = behavior.udzial_konkurs || false; - document.getElementById(`wyroznienie-konkurs-${studentId}`).checked = behavior.wyroznienie_konkurs || false; - document.getElementById(`reprezentacja-indywidualna-${studentId}`).checked = behavior.reprezentacja_indywidualna || false; - document.getElementById(`reprezentacja-zespolowa-${studentId}`).checked = behavior.reprezentacja_zespolowa || false; - document.getElementById(`udzial-zawody-${studentId}`).checked = behavior.udzial_zawody || false; - document.getElementById(`organizacja-imprez-${studentId}`).checked = behavior.organizacja_imprez || false; - document.getElementById(`funkcja-klasa-${studentId}`).checked = behavior.funkcja_klasa || false; - document.getElementById(`uroczystosci-${studentId}`).checked = behavior.uroczystosci || false; - document.getElementById(`poczta-sztandar-${studentId}`).checked = behavior.poczta_sztandar || false; - document.getElementById(`pomoc-nauczyciel-${studentId}`).checked = behavior.pomoc_nauczyciel || false; - document.getElementById(`wolontariat-${studentId}`).checked = behavior.wolontariat || false; - }); - - calculateStats(); - } - - function saveDayData() { - studentsData.forEach(student => { - const studentId = student.name.replace(' ', '-'); - const behavior = { - frekwencja: document.getElementById(`frekwencja-${studentId}`).checked, - brak_godzin: document.getElementById(`brak-godzin-${studentId}`).checked, - min_85: document.getElementById(`min-85-${studentId}`).checked, - etap_szkolny: document.getElementById(`etap-szkolny-${studentId}`).checked, - etap_rejonowy: document.getElementById(`etap-rejonowy-${studentId}`).checked, - etap_wojewodzki: document.getElementById(`etap-wojewodzki-${studentId}`).checked, - etap_ogolnopolski: document.getElementById(`etap-ogolnopolski-${studentId}`).checked, - udzial_konkurs: document.getElementById(`udzial-konkurs-${studentId}`).checked, - wyroznienie_konkurs: document.getElementById(`wyroznienie-konkurs-${studentId}`).checked, - reprezentacja_indywidualna: document.getElementById(`reprezentacja-indywidualna-${studentId}`).checked, - reprezentacja_zespolowa: document.getElementById(`reprezentacja-zespolowa-${studentId}`).checked, - udzial_zawody: document.getElementById(`udzial-zawody-${studentId}`).checked, - organizacja_imprez: document.getElementById(`organizacja-imprez-${studentId}`).checked, - funkcja_klasa: document.getElementById(`funkcja-klasa-${studentId}`).checked, - uroczystosci: document.getElementById(`uroczystosci-${studentId}`).checked, - poczta_sztandar: document.getElementById(`poczta-sztandar-${studentId}`).checked, - pomoc_nauciciel: document.getElementById(`pomoc-nauczyciel-${studentId}`).checked, - wolontariat: document.getElementById(`wolontariat-${studentId}`).checked - }; - - student.behavior[`day${currentDay}`] = behavior; - }); - } - - function calculateStats() { - const frekwencjaPoints = parseInt(document.getElementById('frekwencja-punkty').value); - const brakGodzinPoints = parseInt(document.getElementById('brak-godzin-punkty').value); - const min85Points = parseInt(document.getElementById('min-85-punkty').value); - const etapSzkolnyPoints = parseInt(document.getElementById('etap-szkolny-punkty').value); - const etapRejonowyPoints = parseInt(document.getElementById('etap-rejonowy-punkty').value); - const etapWojewodzkiPoints = parseInt(document.getElementById('etap-wojewodzki-punkty').value); - const etapOgolnopolskiPoints = parseInt(document.getElementById('etap-ogolnopolski-punkty').value); - const udzialKonkursPoints = 5; // stała wartość - const wyroznienieKonkursPoints = 10; // stała wartość - const reprezentacjaIndPoints = 5; // stała wartość - const reprezentacjaZesPoints = 10; // stała wartość - const udzialZawodyPoints = 15; // stała wartość - const organizacjaImprezPoints = 10; // stała wartość - const funkcjaKlasyPoints = 10; // stała wartość - const uroczystosciPoints = 10; // stała wartość - const pocztaSztandarPoints = 20; // stała wartość - const pomocNauczycielaPoints = 10; // stała wartość - const wolontariatPoints = 10; // stała wartość - - let stats = ''; - - studentsData.forEach(student => { - let totalPoints = 0; - - 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_nauciciel) dayPoints += pomocNauczycielaPoints; - if (behavior.wolontariat) dayPoints += wolontariatPoints; - - totalPoints += dayPoints; - }); - - stats += `${student.name}: ${totalPoints} punktów (${getGrade(totalPoints)})\n`; - }); - - document.getElementById('stats').innerText = stats; - } - - function getGrade(points) { - if (points >= 250) return "Wzorowe"; - if (points >= 180) return "Bardzo dobre"; - if (points >= 100) return "Dobre"; - if (points >= 50) return "Poprawne"; - if (points >= 0) return "Nieodpowiednie"; - return "Naganne"; - } - - // Ustawienie daty na dziś - document.getElementById('current-date').innerText = baseDate.toLocaleDateString(); - - // Generowanie tabeli przy starcie - generateTable(); - diff --git a/js/app.js b/js/app.js index ca16548..40d8174 100644 --- a/js/app.js +++ b/js/app.js @@ -13,7 +13,7 @@ async function fetchJSONFile(filePath) { // Funkcja do wczytania pliku class.json async function loadClasses() { - const classFilePath = 'data/class.json'; + const classFilePath = '/data/class.json'; const classes = await fetchJSONFile(classFilePath); if (classes) { diff --git a/js/script.js b/js/script.js new file mode 100644 index 0000000..202231a --- /dev/null +++ b/js/script.js @@ -0,0 +1,188 @@ +let currentDay = 0; +const baseDate = new Date(); +const studentsData = [ + { name: "Jan Kowalski", behavior: {} }, + { name: "Anna Nowak", behavior: {} }, + { name: "Piotr Wiśniewski", behavior: {} }, + { name: "Katarzyna Zielińska", behavior: {} } +]; + +function showTab(tabName) { + const tabs = document.querySelectorAll('.tab'); + tabs.forEach(tab => tab.classList.remove('active')); + document.getElementById(tabName).classList.add('active'); + + if (tabName === 'criteria') { + loadDayData(); + } else if (tabName === 'points') { + calculateStats(); + } +} + +function generateTable() { + const table = document.getElementById('student-table'); + table.innerHTML = ''; + + studentsData.forEach(student => { + const row = document.createElement('tr'); + row.innerHTML = ` + ${student.name} + + + + + + + + + + + + + + + + + + + `; + table.appendChild(row); + }); +} + +function changeDay(direction) { + saveDayData(); + currentDay += direction; + const newDate = new Date(baseDate); + newDate.setDate(baseDate.getDate() + currentDay); + document.getElementById('current-date').innerText = newDate.toLocaleDateString(); + loadDayData(); +} + +function loadDayData() { + studentsData.forEach(student => { + const studentId = student.name.replace(' ', '-'); + const behavior = student.behavior[`day${currentDay}`] || {}; + + document.getElementById(`frekwencja-${studentId}`).checked = behavior.frekwencja || false; + document.getElementById(`brak-godzin-${studentId}`).checked = behavior.brak_godzin || false; + document.getElementById(`min-85-${studentId}`).checked = behavior.min_85 || false; + document.getElementById(`etap-szkolny-${studentId}`).checked = behavior.etap_szkolny || false; + document.getElementById(`etap-rejonowy-${studentId}`).checked = behavior.etap_rejonowy || false; + document.getElementById(`etap-wojewodzki-${studentId}`).checked = behavior.etap_wojewodzki || false; + document.getElementById(`etap-ogolnopolski-${studentId}`).checked = behavior.etap_ogolnopolski || false; + document.getElementById(`udzial-konkurs-${studentId}`).checked = behavior.udzial_konkurs || false; + document.getElementById(`wyroznienie-konkurs-${studentId}`).checked = behavior.wyroznienie_konkurs || false; + document.getElementById(`reprezentacja-indywidualna-${studentId}`).checked = behavior.reprezentacja_indywidualna || false; + document.getElementById(`reprezentacja-zespolowa-${studentId}`).checked = behavior.reprezentacja_zespolowa || false; + document.getElementById(`udzial-zawody-${studentId}`).checked = behavior.udzial_zawody || false; + document.getElementById(`organizacja-imprez-${studentId}`).checked = behavior.organizacja_imprez || false; + document.getElementById(`funkcja-klasa-${studentId}`).checked = behavior.funkcja_klasa || false; + document.getElementById(`uroczystosci-${studentId}`).checked = behavior.uroczystosci || false; + document.getElementById(`poczta-sztandar-${studentId}`).checked = behavior.poczta_sztandar || false; + document.getElementById(`pomoc-nauczyciel-${studentId}`).checked = behavior.pomoc_nauczyciel || false; + document.getElementById(`wolontariat-${studentId}`).checked = behavior.wolontariat || false; + }); + + calculateStats(); +} + +function saveDayData() { + studentsData.forEach(student => { + const studentId = student.name.replace(' ', '-'); + const behavior = { + frekwencja: document.getElementById(`frekwencja-${studentId}`).checked, + brak_godzin: document.getElementById(`brak-godzin-${studentId}`).checked, + min_85: document.getElementById(`min-85-${studentId}`).checked, + etap_szkolny: document.getElementById(`etap-szkolny-${studentId}`).checked, + etap_rejonowy: document.getElementById(`etap-rejonowy-${studentId}`).checked, + etap_wojewodzki: document.getElementById(`etap-wojewodzki-${studentId}`).checked, + etap_ogolnopolski: document.getElementById(`etap-ogolnopolski-${studentId}`).checked, + udzial_konkurs: document.getElementById(`udzial-konkurs-${studentId}`).checked, + wyroznienie_konkurs: document.getElementById(`wyroznienie-konkurs-${studentId}`).checked, + reprezentacja_indywidualna: document.getElementById(`reprezentacja-indywidualna-${studentId}`).checked, + reprezentacja_zespolowa: document.getElementById(`reprezentacja-zespolowa-${studentId}`).checked, + udzial_zawody: document.getElementById(`udzial-zawody-${studentId}`).checked, + organizacja_imprez: document.getElementById(`organizacja-imprez-${studentId}`).checked, + funkcja_klasa: document.getElementById(`funkcja-klasa-${studentId}`).checked, + uroczystosci: document.getElementById(`uroczystosci-${studentId}`).checked, + poczta_sztandar: document.getElementById(`poczta-sztandar-${studentId}`).checked, + pomoc_nauciciel: document.getElementById(`pomoc-nauczyciel-${studentId}`).checked, + wolontariat: document.getElementById(`wolontariat-${studentId}`).checked + }; + + student.behavior[`day${currentDay}`] = behavior; + }); +} + +function calculateStats() { + const frekwencjaPoints = parseInt(document.getElementById('frekwencja-punkty').value); + const brakGodzinPoints = parseInt(document.getElementById('brak-godzin-punkty').value); + const min85Points = parseInt(document.getElementById('min-85-punkty').value); + const etapSzkolnyPoints = parseInt(document.getElementById('etap-szkolny-punkty').value); + const etapRejonowyPoints = parseInt(document.getElementById('etap-rejonowy-punkty').value); + const etapWojewodzkiPoints = parseInt(document.getElementById('etap-wojewodzki-punkty').value); + const etapOgolnopolskiPoints = parseInt(document.getElementById('etap-ogolnopolski-punkty').value); + const udzialKonkursPoints = 5; // stała wartość + const wyroznienieKonkursPoints = 10; // stała wartość + const reprezentacjaIndPoints = 5; // stała wartość + const reprezentacjaZesPoints = 10; // stała wartość + const udzialZawodyPoints = 15; // stała wartość + const organizacjaImprezPoints = 10; // stała wartość + const funkcjaKlasyPoints = 10; // stała wartość + const uroczystosciPoints = 10; // stała wartość + const pocztaSztandarPoints = 20; // stała wartość + const pomocNauczycielaPoints = 10; // stała wartość + const wolontariatPoints = 10; // stała wartość + + let stats = ''; + + studentsData.forEach(student => { + let totalPoints = 0; + + 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_nauciciel) dayPoints += pomocNauczycielaPoints; + if (behavior.wolontariat) dayPoints += wolontariatPoints; + + totalPoints += dayPoints; + }); + + stats += `${student.name}: ${totalPoints} punktów (${getGrade(totalPoints)})\n`; + }); + + document.getElementById('stats').innerText = stats; +} + +function getGrade(points) { + if (points >= 250) return "Wzorowe"; + if (points >= 180) return "Bardzo dobre"; + if (points >= 100) return "Dobre"; + if (points >= 50) return "Poprawne"; + if (points >= 0) return "Nieodpowiednie"; + return "Naganne"; +} + +// Ustawienie daty na dziś +document.getElementById('current-date').innerText = baseDate.toLocaleDateString(); + +// Generowanie tabeli przy starcie +generateTable(); \ No newline at end of file