From c5388b56904976290c51f48ade88002e09e32424 Mon Sep 17 00:00:00 2001 From: rzodkiew Date: Fri, 14 Feb 2025 12:49:24 +0100 Subject: [PATCH] spokojnie jak obiad 2 --- backend/dane.json | 5 ++- backend/kryteria.json | 4 ++ backend/uczniowie.json | 2 +- script.js | 85 ++++++++++++++++++++++++++++++++++-------- style.css | 29 +++++++------- 5 files changed, 93 insertions(+), 32 deletions(-) diff --git a/backend/dane.json b/backend/dane.json index 5b022c1..1cd9746 100644 --- a/backend/dane.json +++ b/backend/dane.json @@ -51,8 +51,9 @@ "bad_frekwencja": 2, "good_frekwencja": 11, "dobra_frekwencja": 0, - "aktywnosc": 5, - "sprawdzian": 3 + "aktywnosc": 1, + "sprawdzian": 3, + "siema": 25 }, "Anna-Nowak": { "good_frekwencja": 4, diff --git a/backend/kryteria.json b/backend/kryteria.json index 3ae5c0e..58caf84 100644 --- a/backend/kryteria.json +++ b/backend/kryteria.json @@ -10,5 +10,9 @@ { "nazwa": "aktywnosc", "punkty": 5 + }, + { + "nazwa": "siema", + "punkty": 2 } ] \ No newline at end of file diff --git a/backend/uczniowie.json b/backend/uczniowie.json index 07dca56..a45c8dd 100644 --- a/backend/uczniowie.json +++ b/backend/uczniowie.json @@ -1,6 +1,6 @@ { "uczniowie": [ - { "imie": "Jan", "nazwisko": "Kowalski", "klasa": "4i" }, + { "imie": "Jan", "nazwisko": "Kowalski", "klasa": "2i" }, { "imie": "Anna", "nazwisko": "Nowak", "klasa": "3a" }, { "imie": "Piotr", "nazwisko": "Wiśniewski", "klasa": "2b" }, { "imie": "Maria", "nazwisko": "Kowalczyk", "klasa": "1c" } diff --git a/script.js b/script.js index 11638a0..f30eb9f 100644 --- a/script.js +++ b/script.js @@ -29,6 +29,10 @@ document.addEventListener("DOMContentLoaded", () => { kryteria = kryteriaData; dane = daneData; progiOcen = ocenyData.progi; // Zapisz progi ocen + console.log("Uczniowie:", uczniowie); + console.log("Kryteria:", kryteria); + console.log("Dane:", dane); + console.log("Progi ocen:", progiOcen); renderStudents(); renderStats(); renderCriteria(); @@ -97,30 +101,78 @@ document.addEventListener("DOMContentLoaded", () => { // Stwórz element statystyk const studentDiv = document.createElement("div"); studentDiv.className = "stat-item"; - const name = document.createElement("strong"); - name.textContent = `${student.imie} ${student.nazwisko} (${student.klasa})`; + + // Imię i nazwisko + const name = document.createElement("span"); + name.className = "name"; + name.textContent = `${student.imie} ${student.nazwisko}`; + + // Klasa + const className = document.createElement("span"); + className.className = "class"; + className.textContent = `(${student.klasa})`; + + // Punkty const points = document.createElement("span"); points.className = "points"; points.textContent = `${totalPoints} pkt`; - // Dodaj ocenę + // Ocena const grade = document.createElement("span"); grade.className = "grade"; grade.textContent = `Ocena: ${ocena}`; - grade.style.marginLeft = "10px"; - grade.style.fontWeight = "bold"; - - if (totalPoints > 0) { - points.classList.add("positive"); - } else if (totalPoints < 0) { - points.classList.add("negative"); - } + // Dodaj elementy do kontenera studentDiv.appendChild(name); + studentDiv.appendChild(className); studentDiv.appendChild(points); - studentDiv.appendChild(grade); // Dodaj ocenę do elementu + studentDiv.appendChild(grade); + + // Dodaj do zawartości statystyk statsContent.appendChild(studentDiv); }); + + // Dodaj sekcję z progami ocen + renderGradeThresholds(); + } + + // Renderuj progi ocen + function renderGradeThresholds() { + const thresholdsDiv = document.createElement("div"); + thresholdsDiv.id = "grade-thresholds"; + + const title = document.createElement("h3"); + title.textContent = "Progi punktowe na oceny"; + thresholdsDiv.appendChild(title); + + const table = document.createElement("table"); + const headerRow = document.createElement("tr"); + + const headers = ["Ocena", "Minimalne punkty"]; + headers.forEach(headerText => { + const th = document.createElement("th"); + th.textContent = headerText; + headerRow.appendChild(th); + }); + + table.appendChild(headerRow); + + progiOcen.forEach(prog => { + const row = document.createElement("tr"); + + const gradeCell = document.createElement("td"); + gradeCell.textContent = prog.ocena; + row.appendChild(gradeCell); + + const pointsCell = document.createElement("td"); + pointsCell.textContent = `≥ ${prog.min} pkt`; + row.appendChild(pointsCell); + + table.appendChild(row); + }); + + thresholdsDiv.appendChild(table); + statsContent.appendChild(thresholdsDiv); } // Renderuj listę kryteriów @@ -136,15 +188,16 @@ document.addEventListener("DOMContentLoaded", () => { return; } kryteria.forEach(criteria => { + // Wyświetl kryterium na liście const criteriaDiv = document.createElement("div"); criteriaDiv.textContent = `${criteria.nazwa}: ${criteria.punkty} pkt`; criteriaListDiv.appendChild(criteriaDiv); - + // Dodaj opcję do edycji const editOption = document.createElement("option"); editOption.value = criteria.nazwa; editOption.textContent = criteria.nazwa; editCriteriaNameSelect.appendChild(editOption); - + // Dodaj opcję do usunięcia const deleteOption = document.createElement("option"); deleteOption.value = criteria.nazwa; deleteOption.textContent = criteria.nazwa; @@ -168,8 +221,8 @@ document.addEventListener("DOMContentLoaded", () => { criteriaTab.addEventListener("click", () => { studentsList.style.display = "none"; statsContent.style.display = "none"; - criteriaContent.style.display = "block"; - renderCriteria(); + criteriaContent.style.display = "block"; // Pokaż zakładkę "Zarządzanie kryteriami" + renderCriteria(); // Odśwież listę kryteriów }); // Dodawanie nowego kryterium diff --git a/style.css b/style.css index 4f63f08..ac93206 100644 --- a/style.css +++ b/style.css @@ -12,14 +12,6 @@ body { border-radius: 8px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); } - -.grade { - color: #007bff; /* Niebieski kolor */ - font-size: 1.1em; - margin-left: 10px; - font-weight: bold; -} - h1 { text-align: center; color: #333; @@ -106,20 +98,31 @@ input[type="number"] { #stats-content .stat-item { display: flex; justify-content: space-between; + align-items: center; padding: 10px; margin-bottom: 10px; border: 1px solid #ddd; border-radius: 4px; background-color: #f9f9f9; } +#stats-content .name { + font-weight: bold; + flex: 2; +} +#stats-content .class { + flex: 1; + text-align: center; +} #stats-content .points { + flex: 1; + text-align: right; font-weight: bold; } -#stats-content .positive { - color: green; -} -#stats-content .negative { - color: red; +#stats-content .grade { + flex: 1; + text-align: right; + color: #007bff; + font-size: 1.1em; } /* Zarządzanie kryteriami */