init
This commit is contained in:
commit
096623a531
|
@ -0,0 +1,27 @@
|
|||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td {
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
th {
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
|
||||
input[type="number"], input[type="checkbox"] {
|
||||
transform: scale(1.2);
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
[
|
||||
{
|
||||
"school": "CKZiU",
|
||||
"city": "City",
|
||||
"year": "202/202",
|
||||
"semester": "Semestr 1",
|
||||
"subject": "Programowanie Aplikacji Internetowych I",
|
||||
"level": "Podstawowy",
|
||||
"publisher": "Dokumentacja",
|
||||
"class": "3",
|
||||
"group": "i",
|
||||
"profile": "Technik Informatyk",
|
||||
"max_points": 55,
|
||||
"teacher": "M. Pabi",
|
||||
"file_path": "students/ckziu_class_3i_programowanie_aplikacji_2024_2025.json",
|
||||
"student_count": 17
|
||||
},
|
||||
{
|
||||
"school": "CKZiU",
|
||||
"city": "City",
|
||||
"year": "202/202",
|
||||
"semester": "Semestr 1",
|
||||
"subject": "Programowanie Aplikacji Internetowych II",
|
||||
"level": "Podstawowy",
|
||||
"publisher": "Dokumentacja",
|
||||
"class": "4",
|
||||
"group": "i",
|
||||
"profile": "Technik Informatyk",
|
||||
"max_points": 55,
|
||||
"teacher": "M. Pabi",
|
||||
"file_path": "students/ckziu_class_4i_programowanie_aplikacji_II_2024_2025.json",
|
||||
"student_count": 18
|
||||
}
|
||||
]
|
|
@ -0,0 +1,161 @@
|
|||
{
|
||||
"criteria": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Tardiness"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "Disruption"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "Disrespect towards teachers"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Participation in class"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "Preparedness for class"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "Attendance"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "Involvement in projects"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": "Warning from homeroom teacher"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"name": "Warning from principal"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"name": "Achievements in competitions"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"name": "Representing the school"
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"name": "Independence"
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"name": "Engagement in lessons"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
{
|
||||
"id": "behavior",
|
||||
"name": "Behavior",
|
||||
"criteria_ids": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "responsibility",
|
||||
"name": "Responsibility",
|
||||
"criteria_ids": [
|
||||
5,
|
||||
6,
|
||||
7
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "discipline",
|
||||
"name": "Discipline",
|
||||
"criteria_ids": [
|
||||
8,
|
||||
9
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "achievement",
|
||||
"name": "Achievements",
|
||||
"criteria_ids": [
|
||||
10,
|
||||
11
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "self_assessment",
|
||||
"name": "Self-Assessment",
|
||||
"criteria_ids": [
|
||||
12,
|
||||
13
|
||||
]
|
||||
}
|
||||
],
|
||||
"roles": {
|
||||
"teacher": {
|
||||
"criteria_ids": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7
|
||||
]
|
||||
},
|
||||
"homeroom_teacher": {
|
||||
"criteria_ids": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8
|
||||
]
|
||||
},
|
||||
"principal": {
|
||||
"criteria_ids": [
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11
|
||||
]
|
||||
},
|
||||
"student": {
|
||||
"criteria_ids": [
|
||||
12,
|
||||
13
|
||||
]
|
||||
}
|
||||
},
|
||||
"people": [
|
||||
{
|
||||
"name": "M. Pabiszczak",
|
||||
"roles": [
|
||||
"teacher",
|
||||
"homeroom_teacher"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "A. Nowak",
|
||||
"roles": [
|
||||
"principal"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "K. Kowalski",
|
||||
"roles": [
|
||||
"teacher"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"header": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"school": {
|
||||
"type": "string"
|
||||
},
|
||||
"city": {
|
||||
"type": "string"
|
||||
},
|
||||
"year": {
|
||||
"type": "string"
|
||||
},
|
||||
"semester": {
|
||||
"type": "string"
|
||||
},
|
||||
"subject": {
|
||||
"type": "string"
|
||||
},
|
||||
"level": {
|
||||
"type": "string"
|
||||
},
|
||||
"publisher": {
|
||||
"type": "string"
|
||||
},
|
||||
"class": {
|
||||
"type": "string"
|
||||
},
|
||||
"group": {
|
||||
"type": "string"
|
||||
},
|
||||
"profile": {
|
||||
"type": "string"
|
||||
},
|
||||
"max_points": {
|
||||
"type": "integer"
|
||||
},
|
||||
"teacher": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"school",
|
||||
"city",
|
||||
"year",
|
||||
"semester",
|
||||
"subject",
|
||||
"class",
|
||||
"group",
|
||||
"profile",
|
||||
"teacher"
|
||||
]
|
||||
},
|
||||
"students": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"first_name": {
|
||||
"type": "string"
|
||||
},
|
||||
"last_name": {
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"grade": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"points": {
|
||||
"type": [
|
||||
"number",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"status": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"first_name",
|
||||
"last_name",
|
||||
"name",
|
||||
"grade",
|
||||
"status"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"header",
|
||||
"students"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
import json
|
||||
import sys
|
||||
from jsonschema import validate, ValidationError
|
||||
|
||||
def validate_json(schema_file, json_file):
|
||||
try:
|
||||
# Wczytaj schemat JSON
|
||||
with open(schema_file, 'r') as f:
|
||||
schema = json.load(f)
|
||||
|
||||
# Wczytaj dane JSON
|
||||
with open(json_file, 'r') as f:
|
||||
data = json.load(f)
|
||||
|
||||
# Sprawdź, czy dane JSON są zgodne ze schematem
|
||||
validate(instance=data, schema=schema)
|
||||
print("JSON jest zgodny z schematem")
|
||||
|
||||
except ValidationError as e:
|
||||
print("JSON nie jest zgodny z schematem:", e.message)
|
||||
except json.JSONDecodeError as e:
|
||||
print("Błąd wczytywania JSON:", e)
|
||||
except FileNotFoundError as e:
|
||||
print("Plik nie został znaleziony:", e)
|
||||
except Exception as e:
|
||||
print("Wystąpił błąd:", e)
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) != 3:
|
||||
print("Użycie: python validate_json.py <schemat.json> <plik.json>")
|
||||
sys.exit(1)
|
||||
|
||||
schema_file = sys.argv[1]
|
||||
json_file = sys.argv[2]
|
||||
|
||||
validate_json(schema_file, json_file)
|
||||
|
|
@ -0,0 +1,171 @@
|
|||
{
|
||||
"header": {
|
||||
"school": "CKZiU",
|
||||
"city": "City",
|
||||
"year": "202/202",
|
||||
"semester": "Semestr 1",
|
||||
"subject": "Programowanie Aplikacji Internetowych I",
|
||||
"level": "Podstawowy",
|
||||
"publisher": "Dokumentacja",
|
||||
"class": "3",
|
||||
"group": "i",
|
||||
"profile": "Technik Informatyk",
|
||||
"max_points": 55,
|
||||
"teacher": "M. Pabi"
|
||||
},
|
||||
"students": [
|
||||
{
|
||||
"id": 1,
|
||||
"first_name": "Nikodem",
|
||||
"last_name": "And",
|
||||
"name": "And N",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"first_name": "Karol",
|
||||
"last_name": "Bar",
|
||||
"name": "Bar K",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"first_name": "Roman",
|
||||
"last_name": "Baz",
|
||||
"name": "Baz R",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"first_name": "Jakub",
|
||||
"last_name": "Bed",
|
||||
"name": "Bed J",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"first_name": "Marcel",
|
||||
"last_name": "Gaj",
|
||||
"name": "Gaj M",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"first_name": "Rostyslav",
|
||||
"last_name": "Hum",
|
||||
"name": "Hum R",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"first_name": "Szymon",
|
||||
"last_name": "Jacz",
|
||||
"name": "Jacz S",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"first_name": "Eryk",
|
||||
"last_name": "Kar",
|
||||
"name": "Kar E",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"first_name": "Fabian",
|
||||
"last_name": "Korz",
|
||||
"name": "Korz F",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"first_name": "Zuzanna",
|
||||
"last_name": "Lo",
|
||||
"name": "Lo Z",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"first_name": "Maja",
|
||||
"last_name": "Miz",
|
||||
"name": "Miz M",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"first_name": "Jakub",
|
||||
"last_name": "Ole",
|
||||
"name": "Ole J",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"first_name": "Łukasz",
|
||||
"last_name": "Oś",
|
||||
"name": "Oś Ł",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"first_name": "Maciej",
|
||||
"last_name": "Pac",
|
||||
"name": "Pac M",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"first_name": "Lena",
|
||||
"last_name": "Pło",
|
||||
"name": "Pło L",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"first_name": "Hubert",
|
||||
"last_name": "Py",
|
||||
"name": "Py H",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"first_name": "Antoni",
|
||||
"last_name": "Wó",
|
||||
"name": "Wó A",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"status": 1
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,198 @@
|
|||
{
|
||||
"header": {
|
||||
"school": "CKZiU",
|
||||
"city": "City",
|
||||
"year": "202/202",
|
||||
"semester": "Semestr 1",
|
||||
"subject": "Programowanie Aplikacji Internetowych II",
|
||||
"level": "Podstawowy",
|
||||
"publisher": "Dokumentacja",
|
||||
"class": "4",
|
||||
"group": "i",
|
||||
"profile": "Technik Informatyk",
|
||||
"max_points": 55,
|
||||
"teacher": "M. Pabi"
|
||||
},
|
||||
"students": [
|
||||
{
|
||||
"id": 1,
|
||||
"first_name": "Aleksander",
|
||||
"last_name": "Adam",
|
||||
"name": "Adam A",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"first_name": "Bartosz",
|
||||
"last_name": "Boh",
|
||||
"name": "Boh B",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "Na prośbę rodzica proszę o zwolnienie ucznia z 9 lekcji",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"first_name": "Jakub",
|
||||
"last_name": "Gj",
|
||||
"name": "Gj J",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "Na prośbę rodzica proszę o zwolnienie ucznia z 9 lekcji",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"first_name": "Wiktor",
|
||||
"last_name": "Kier",
|
||||
"name": "Kier W",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"first_name": "Jakub",
|
||||
"last_name": "Km",
|
||||
"name": "Km J",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"first_name": "Fabian",
|
||||
"last_name": "Kow",
|
||||
"name": "Kow F",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"first_name": "Patryk",
|
||||
"last_name": "Mac",
|
||||
"name": "Mac P",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"first_name": "Marcel",
|
||||
"last_name": "Mars",
|
||||
"name": "Mars M",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"first_name": "Szymon",
|
||||
"last_name": "Pt",
|
||||
"name": "Pt S",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"first_name": "Dmytro",
|
||||
"last_name": "Shev",
|
||||
"name": "Shev D",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"first_name": "Anna",
|
||||
"last_name": "Sik",
|
||||
"name": "Sik A",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"first_name": "Szymon",
|
||||
"last_name": "Spili",
|
||||
"name": "Spili S",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "Na prośbę rodzica proszę o zwolnienie ucznia z 9 lekcji",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"first_name": "Alan",
|
||||
"last_name": "Stas",
|
||||
"name": "Stas A",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"first_name": "Kamil",
|
||||
"last_name": "Szy",
|
||||
"name": "Szy K",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"first_name": "Jakub",
|
||||
"last_name": "Toc",
|
||||
"name": "Toc J",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "Na prośbę rodzica proszę o zwolnienie ucznia z 9 lekcji",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"first_name": "Mateusz",
|
||||
"last_name": "Wój",
|
||||
"name": "Wój M",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "Na prośbę rodzica proszę o zwolnienie ucznia z 9 lekcji",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"first_name": "Tomasz",
|
||||
"last_name": "Zad",
|
||||
"name": "Zad T",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "",
|
||||
"status": 1
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"first_name": "Wiktor",
|
||||
"last_name": "Zal",
|
||||
"name": "Zal W",
|
||||
"grade": "Brak ocen",
|
||||
"points": null,
|
||||
"info": "",
|
||||
"status": 1
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Ocena Zachowania</title>
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Ocena Zachowania - <span id="current-date"></span></h1>
|
||||
|
||||
<!-- Wybór kategorii -->
|
||||
<div>
|
||||
<label for="category-select">Wybierz kategorię:</label>
|
||||
<select id="category-select" onchange="loadCriteriaByCategory()">
|
||||
<!-- Kategorie zostaną załadowane dynamicznie -->
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<h2>Kryteria oceny zachowania</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Uczeń</th>
|
||||
<!-- Kryteria zostaną załadowane dynamicznie jako kolumny -->
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="student-table">
|
||||
<!-- Dane uczniów będą generowane dynamicznie -->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<script src="js/app.js"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,86 @@
|
|||
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 = '<th>Uczeń</th>'; // 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 = `<td>${student.first_name} ${student.last_name}</td>`;
|
||||
|
||||
// Dodanie pól do zaznaczania dla każdego kryterium
|
||||
filteredCriteria.forEach(criterion => {
|
||||
const td = document.createElement('td');
|
||||
td.innerHTML = `<input type="checkbox" id="student-${student.id}-criterion-${criterion.id}" onchange="calculateStats()">`;
|
||||
row.appendChild(td);
|
||||
});
|
||||
|
||||
table.appendChild(row);
|
||||
});
|
||||
}
|
||||
|
||||
// Obliczanie statystyk na podstawie wybranych kryteriów
|
||||
function calculateStats() {
|
||||
// Logika do przeliczania punktacji na podstawie zaznaczonych kryteriów
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
<div>
|
||||
<h2>Kryteria Weryfikacyjne</h2>
|
||||
<ul id="criteria-list">
|
||||
<!-- Kryteria weryfikacyjne będą generowane dynamicznie -->
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Behavior Assessment Dashboard</title>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Behavior Assessment Dashboard</h1>
|
||||
|
||||
<div class="filters">
|
||||
<!-- Wybór roli -->
|
||||
<label for="role">Select Role:</label>
|
||||
<select id="role">
|
||||
<option value="teacher">Teacher</option>
|
||||
<option value="homeroom_teacher">Homeroom Teacher</option>
|
||||
<option value="principal">Principal</option>
|
||||
<option value="student">Student (Self-Assessment)</option>
|
||||
</select>
|
||||
|
||||
<!-- Wybór osoby -->
|
||||
<label for="person">Select Person:</label>
|
||||
<select id="person">
|
||||
<!-- Osoby będą generowane dynamicznie na podstawie roli -->
|
||||
</select>
|
||||
|
||||
<!-- Wybór kategorii -->
|
||||
<label for="category">Select Category:</label>
|
||||
<select id="category">
|
||||
<!-- Kategorie będą generowane dynamicznie na podstawie roli -->
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<h2>Criteria Table</h2>
|
||||
<table id="criteria-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Student</th>
|
||||
<!-- Nagłówki dla kryteriów zostaną dodane dynamicznie -->
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- Wiersze uczniów i kryteriów zostaną dodane dynamicznie -->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<script src="app.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<div style="background-color: #4CAF50; color: white; padding: 10px;">
|
||||
<h1>Ocena Zachowania</h1>
|
||||
<p>Zalogowany jako: <span id="user-role">Nauczyciel</span></p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// Skrypt do ustawiania roli użytkownika po zalogowaniu
|
||||
// Można pobrać rolę z sesji po wdrożeniu API
|
||||
const userRole = 'Nauczyciel'; // Tymczasowe dane
|
||||
document.getElementById('user-role').innerText = userRole;
|
||||
</script>
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<div>
|
||||
<h2>Statystyki i Ustalanie Wag</h2>
|
||||
<!-- Wprowadź elementy do zarządzania wagami, np. suwaki lub pola numeryczne -->
|
||||
<label for="waga-pomoc">Pomoc nauczycielowi:</label>
|
||||
<input type="number" id="waga-pomoc" value="10"><br>
|
||||
|
||||
<label for="waga-spoznienie">Spóźnienie:</label>
|
||||
<input type="number" id="waga-spoznienie" value="-5"><br>
|
||||
|
||||
<!-- Więcej wag dla innych kryteriów -->
|
||||
|
||||
<h3>Statystyki dla uczniów</h3>
|
||||
<!-- Tabela statystyk dla uczniów -->
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Uczeń</th>
|
||||
<th>Punkty</th>
|
||||
<th>Ocena</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- Dane będą dynamicznie ładowane -->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue