diff --git a/backend/dane.json b/backend/dane.json
index 676f558..e3f8977 100644
--- a/backend/dane.json
+++ b/backend/dane.json
@@ -50,11 +50,11 @@
"Jan-Kowalski": {
"bad_frekwencja": 2,
"good_frekwencja": 11,
- "dobra_frekwencja": 0,
+ "dobra_frekwencja": 3,
"aktywnosc": 0,
"sprawdzian": 3,
"siema": 15,
- "zla_frekwencja": 10,
+ "zla_frekwencja": 5,
"konkursy": 0
},
"Anna-Nowak": {
diff --git a/backend/kryteria.json b/backend/kryteria.json
index 2b59dad..5096f99 100644
--- a/backend/kryteria.json
+++ b/backend/kryteria.json
@@ -18,5 +18,9 @@
{
"nazwa": "konkursy",
"punkty": 15
+ },
+ {
+ "nazwa": "obiad",
+ "punkty": 25
}
]
\ No newline at end of file
diff --git a/index.html b/index.html
index 0033c30..7446d25 100644
--- a/index.html
+++ b/index.html
@@ -9,6 +9,8 @@
Zarządzanie Uczniami
+
+
@@ -45,8 +47,6 @@
-
-
diff --git a/script.js b/script.js
index 3398529..20e6431 100644
--- a/script.js
+++ b/script.js
@@ -42,6 +42,7 @@ document.addEventListener("DOMContentLoaded", () => {
uczniowie.forEach(student => {
const studentKey = `${student.imie}-${student.nazwisko}`;
const details = document.createElement("details");
+ details.style.position = "relative"; // Pozycjonowanie względne dla stats-section
const summary = document.createElement("summary");
summary.textContent = `${student.imie} ${student.nazwisko} (${student.klasa})`;
details.appendChild(summary);
@@ -59,13 +60,14 @@ document.addEventListener("DOMContentLoaded", () => {
const pointsInfo = document.createElement("span");
pointsInfo.className = "points-info";
pointsInfo.textContent = `(${criteria.punkty} pkt)`;
+ const inputWrapper = document.createElement("div");
+ inputWrapper.className = "input-wrapper"; // Nowy wrapper dla inputu
const input = document.createElement("input");
input.type = "number";
input.min = "0";
- const savedStudent = dane[studentKey];
- input.value = savedStudent?.[criteria.nazwa] || 0;
+ input.value = dane[studentKey]?.[criteria.nazwa] || 0;
- // Zapisz zmiany lokalnie w pamięci
+ // Zapisz zmiany lokalnie w pamięci (bez natychmiastowego zapisu)
input.addEventListener("input", () => {
if (!dane[studentKey]) {
dane[studentKey] = {};
@@ -73,58 +75,15 @@ document.addEventListener("DOMContentLoaded", () => {
dane[studentKey][criteria.nazwa] = parseInt(input.value) || 0;
});
+ inputWrapper.appendChild(input); // Dodaj input do wrappera
criteriaItem.appendChild(label);
criteriaItem.appendChild(pointsInfo);
- criteriaItem.appendChild(input);
-
- // Dodaj podkategorie, jeśli istnieją
- if (criteria.podkategorie && criteria.podkategorie.length > 0) {
- const subCriteriaList = document.createElement("div");
- subCriteriaList.className = "sub-criteria-list";
-
- criteria.podkategorie.forEach(subCriteria => {
- const subCriteriaItem = document.createElement("div");
- subCriteriaItem.className = "sub-criteria-item";
- const subLabel = document.createElement("span");
- subLabel.textContent = subCriteria.nazwa;
- const subPointsInfo = document.createElement("span");
- subPointsInfo.className = "points-info";
- subPointsInfo.textContent = `(${subCriteria.punkty} pkt)`;
- const subInput = document.createElement("input");
- subInput.type = "number";
- subInput.min = "0";
- subInput.value = savedStudent?.[subCriteria.nazwa] || 0;
-
- // Zapisz zmiany lokalnie w pamięci
- subInput.addEventListener("input", () => {
- if (!dane[studentKey]) {
- dane[studentKey] = {};
- }
- dane[studentKey][subCriteria.nazwa] = parseInt(subInput.value) || 0;
- });
-
- subCriteriaItem.appendChild(subLabel);
- subCriteriaItem.appendChild(subPointsInfo);
- subCriteriaItem.appendChild(subInput);
- subCriteriaList.appendChild(subCriteriaItem);
- });
-
- criteriaItem.appendChild(subCriteriaList);
- }
-
+ criteriaItem.appendChild(inputWrapper); // Dodaj wrapper z inputem
criteriaList.appendChild(criteriaItem);
// Oblicz sumę punktów
- const count = savedStudent?.[criteria.nazwa] || 0;
+ const count = dane[studentKey]?.[criteria.nazwa] || 0;
totalPoints += count * criteria.punkty;
-
- // Jeśli są podkategorie, dodaj ich punkty
- if (criteria.podkategorie) {
- criteria.podkategorie.forEach(subCriteria => {
- const subCount = savedStudent?.[subCriteria.nazwa] || 0;
- totalPoints += subCount * subCriteria.punkty;
- });
- }
});
// Wybierz ocenę na podstawie punktów
@@ -133,13 +92,22 @@ document.addEventListener("DOMContentLoaded", () => {
// Dodaj sekcję z punktami i oceną w prawym górnym rogu
const statsSection = document.createElement("div");
statsSection.className = "stats-section";
- statsSection.innerHTML = `
-
- Punkty: ${totalPoints}
- Ocena: ${ocena}
-
- `;
- details.appendChild(statsSection);
+
+ const statsBox = document.createElement("div");
+ statsBox.className = "stats-box";
+
+ const totalPointsElement = document.createElement("div");
+ totalPointsElement.className = "total-points";
+ totalPointsElement.textContent = `Punkty: ${totalPoints}`;
+ statsBox.appendChild(totalPointsElement);
+
+ const gradeElement = document.createElement("div");
+ gradeElement.className = "grade";
+ gradeElement.textContent = `Ocena: ${ocena}`;
+ statsBox.appendChild(gradeElement);
+
+ statsSection.appendChild(statsBox);
+ details.appendChild(statsSection); // Dodaj stats-section do details
details.appendChild(criteriaList);
studentsList.appendChild(details);
@@ -163,11 +131,13 @@ document.addEventListener("DOMContentLoaded", () => {
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;
@@ -279,6 +249,7 @@ document.addEventListener("DOMContentLoaded", () => {
.then(response => {
if (response.ok) {
alert("Dane zostały zapisane!");
+ renderStudents(); // Odśwież listę uczniów
} else {
alert("Wystąpił błąd podczas zapisywania danych.");
}