load categories from json
This commit is contained in:
parent
e2eac05ab5
commit
2619e8e917
|
@ -126,7 +126,7 @@
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="category-buttons">
|
<div class="category-buttons" id="category-buttons-box">
|
||||||
<button data-category="frekwencja" onclick="showInnerTab('frekwencja')">Frekwencja</button>
|
<button data-category="frekwencja" onclick="showInnerTab('frekwencja')">Frekwencja</button>
|
||||||
<button data-category="olimpiady" onclick="showInnerTab('olimpiady')">Olimpiady</button>
|
<button data-category="olimpiady" onclick="showInnerTab('olimpiady')">Olimpiady</button>
|
||||||
<button data-category="konkursy" onclick="showInnerTab('konkursy')">Konkursy Szkolne</button>
|
<button data-category="konkursy" onclick="showInnerTab('konkursy')">Konkursy Szkolne</button>
|
||||||
|
|
72
js/script.js
72
js/script.js
|
@ -1,35 +1,3 @@
|
||||||
// Definicja kategorii i ich kryteriów
|
|
||||||
const categories = {
|
|
||||||
frekwencja: [
|
|
||||||
{ name: "Frekwencja 95-100%", id: "frekwencja" },
|
|
||||||
{ name: "Brak godzin nieusprawiedliwionych", id: "brak_godzin" },
|
|
||||||
{ name: "Minimum 85% frekwencja", id: "min_85" }
|
|
||||||
],
|
|
||||||
olimpiady: [
|
|
||||||
{ name: "Etap szkolny", id: "etap_szkolny" },
|
|
||||||
{ name: "Etap rejonowy", id: "etap_rejonowy" },
|
|
||||||
{ name: "Etap wojewódzki", id: "etap_wojewodzki" },
|
|
||||||
{ name: "Etap ogólnopolski", id: "etap_ogolnopolski" }
|
|
||||||
],
|
|
||||||
konkursy: [
|
|
||||||
{ name: "Udział w konkursach", id: "udzial_konkurs" },
|
|
||||||
{ name: "Wyróżnienie w konkursie", id: "wyroznienie_konkurs" }
|
|
||||||
],
|
|
||||||
reprezentacja: [
|
|
||||||
{ name: "Reprezentacja indywidualna", id: "reprezentacja_indywidualna" },
|
|
||||||
{ name: "Reprezentacja zespołowa", id: "reprezentacja_zespolowa" },
|
|
||||||
{ name: "Udział w zawodach", id: "udzial_zawody" }
|
|
||||||
],
|
|
||||||
aktywnosc: [
|
|
||||||
{ name: "Organizacja imprez", id: "organizacja_imprez" },
|
|
||||||
{ name: "Funkcje w klasie", id: "funkcja_klasa" },
|
|
||||||
{ name: "Uroczystości okolicznościowe", id: "uroczystosci" },
|
|
||||||
{ name: "Udział w poczcie sztandarowej", id: "poczta_sztandar" },
|
|
||||||
{ name: "Pomoc nauczycielowi", id: "pomoc_nauczyciel" },
|
|
||||||
{ name: "Wolontariat", id: "wolontariat" }
|
|
||||||
]
|
|
||||||
};
|
|
||||||
|
|
||||||
// Zmienne globalne
|
// Zmienne globalne
|
||||||
let currentCategory = 'frekwencja';
|
let currentCategory = 'frekwencja';
|
||||||
let currentClass = '';
|
let currentClass = '';
|
||||||
|
@ -120,6 +88,27 @@ async function loadStudents(classFilePath) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function getCategoriesWithCriteria() {
|
||||||
|
const criteriaFilePath = '/data/criteria.json';
|
||||||
|
const criteria = await fetchJSONFile(criteriaFilePath);
|
||||||
|
let categoriesWithCriteria = {}
|
||||||
|
|
||||||
|
criteria.categories.forEach(category => {
|
||||||
|
let criteriaForCategory = []
|
||||||
|
criteria.criteria.forEach(criteria => {
|
||||||
|
if(category.criteria_ids.includes(criteria.id)) {
|
||||||
|
console.log(`!!! ${category.name} posiada ${criteria.name}`)
|
||||||
|
criteriaForCategory.push({name: criteria.name, id: criteria.id})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
categoriesWithCriteria[category.id] = criteriaForCategory
|
||||||
|
})
|
||||||
|
|
||||||
|
return categoriesWithCriteria
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Funkcja do wczytania pliku criteria.json
|
// Funkcja do wczytania pliku criteria.json
|
||||||
async function loadCriteria() {
|
async function loadCriteria() {
|
||||||
const criteriaFilePath = '/data/criteria.json';
|
const criteriaFilePath = '/data/criteria.json';
|
||||||
|
@ -127,7 +116,11 @@ async function loadCriteria() {
|
||||||
|
|
||||||
console.log("Załadowane kryteria:", criteria);
|
console.log("Załadowane kryteria:", criteria);
|
||||||
|
|
||||||
|
//
|
||||||
|
// LADOWANIE ROL
|
||||||
|
//
|
||||||
const roles = criteria.roles;
|
const roles = criteria.roles;
|
||||||
|
|
||||||
const selectroleByid = document.getElementById("select-role");
|
const selectroleByid = document.getElementById("select-role");
|
||||||
let selectroleHTML = ""; // Zainicjalizuj pusty string na HTML
|
let selectroleHTML = ""; // Zainicjalizuj pusty string na HTML
|
||||||
|
|
||||||
|
@ -138,6 +131,17 @@ async function loadCriteria() {
|
||||||
|
|
||||||
// Wstawienie HTML do elementu select
|
// Wstawienie HTML do elementu select
|
||||||
selectroleByid.innerHTML = selectroleHTML;
|
selectroleByid.innerHTML = selectroleHTML;
|
||||||
|
|
||||||
|
// category-buttons-box
|
||||||
|
const categoriesCriteria = criteria.categories;
|
||||||
|
const categoryButtonsBox = document.getElementById("category-buttons-box");
|
||||||
|
let categoryButtonHTML = ""
|
||||||
|
categoriesCriteria.forEach(category => {
|
||||||
|
// categoryButtonHTML += `<option value="${key}">${value.name}</option>`;
|
||||||
|
categoryButtonHTML += `<button data-category="${category.id}" onclick="showInnerTab('${category.id}')">${category.name}</button>`
|
||||||
|
})
|
||||||
|
|
||||||
|
categoryButtonsBox.innerHTML = categoryButtonHTML;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -301,7 +305,7 @@ function getGrade(points) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Funkcja do generowania tabeli uczniów na podstawie wybranej kategorii
|
// Funkcja do generowania tabeli uczniów na podstawie wybranej kategorii
|
||||||
function generateTable(category) {
|
async function generateTable(category) {
|
||||||
const table = document.getElementById('student-table');
|
const table = document.getElementById('student-table');
|
||||||
const thead = table.querySelector('thead tr');
|
const thead = table.querySelector('thead tr');
|
||||||
const tbody = table.querySelector('tbody');
|
const tbody = table.querySelector('tbody');
|
||||||
|
@ -316,6 +320,8 @@ function generateTable(category) {
|
||||||
thead.appendChild(thName);
|
thead.appendChild(thName);
|
||||||
|
|
||||||
// Pobierz kolumny dla wybranej kategorii
|
// Pobierz kolumny dla wybranej kategorii
|
||||||
|
const categories = await getCategoriesWithCriteria()
|
||||||
|
console.log("łot:", categories)
|
||||||
const categoryColumns = categories[category];
|
const categoryColumns = categories[category];
|
||||||
|
|
||||||
// Dodaj nagłówki dla kryteriów w kategorii
|
// Dodaj nagłówki dla kryteriów w kategorii
|
||||||
|
|
Loading…
Reference in New Issue