Render timetable from api data

This commit is contained in:
Mikołaj Pich 2018-10-14 17:10:36 +02:00
parent 2a27c75e51
commit 582cb37134
No known key found for this signature in database
GPG key ID: F62B26E36D4C4BAA
5 changed files with 252 additions and 414 deletions

View file

@ -1,14 +1,52 @@
[
{
"Dzien": 1524434400,
"DzienTekst": "2018-04-23",
"NumerLekcji": 1,
"IdPoraLekcji": 76,
"IdPrzedmiot": 483,
"PrzedmiotNazwa": "Fizyka",
"PodzialSkrot": null,
"Sala": "213",
"IdPracownik": 18,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 23,
"AdnotacjaOZmianie": "",
"PrzekreslonaNazwa": false,
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1524520800,
"DzienTekst": "2018-04-24",
"NumerLekcji": 1,
"IdPoraLekcji": 76,
"IdPrzedmiot": 429,
"PrzedmiotNazwa": "Język angielski",
"PodzialSkrot": null,
"Sala": "206",
"IdPracownik": 94,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": 18,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 44,
"AdnotacjaOZmianie": "(zastępstwo: Jan Bytnar, sala 206)",
"PrzekreslonaNazwa": false,
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1524607200,
"DzienTekst": "2018-04-25",
"NumerLekcji": 2,
"IdPoraLekcji": 77,
"NumerLekcji": 1,
"IdPoraLekcji": 76,
"IdPrzedmiot": 485,
"PrzedmiotNazwa": "Chemia",
"PodzialSkrot": null,
"Sala": "201",
"IdPracownik": 142,
"IdPracownik": 18,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,
@ -18,35 +56,16 @@
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1524520800,
"DzienTekst": "2018-04-24",
"NumerLekcji": 5,
"IdPoraLekcji": 80,
"IdPrzedmiot": 429,
"PrzedmiotNazwa": "Język angielski",
"PodzialSkrot": null,
"Sala": "206",
"IdPracownik": 168,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": 149,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 44,
"AdnotacjaOZmianie": "(zastępstwo: Jan Bytnar, sala 206)",
"PrzekreslonaNazwa": false,
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1524693600,
"DzienTekst": "2018-04-26",
"NumerLekcji": 2,
"IdPoraLekcji": 77,
"NumerLekcji": 1,
"IdPoraLekcji": 76,
"IdPrzedmiot": 483,
"PrzedmiotNazwa": "Fizyka",
"PodzialSkrot": null,
"Sala": "215",
"IdPracownik": 178,
"IdPracownik": 18,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,
@ -56,25 +75,6 @@
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1524434400,
"DzienTekst": "2018-04-23",
"NumerLekcji": 5,
"IdPoraLekcji": 80,
"IdPrzedmiot": 483,
"PrzedmiotNazwa": "Fizyka",
"PodzialSkrot": null,
"Sala": "213",
"IdPracownik": 178,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 23,
"AdnotacjaOZmianie": "",
"PrzekreslonaNazwa": false,
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1524607200,
"DzienTekst": "2018-04-25",
@ -84,7 +84,7 @@
"PrzedmiotNazwa": "Matematyka",
"PodzialSkrot": null,
"Sala": "203",
"IdPracownik": 183,
"IdPracownik": 18,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,
@ -96,16 +96,16 @@
},
{
"Dzien": 1524607200,
"DzienTekst": "2018-04-25",
"NumerLekcji": 4,
"IdPoraLekcji": 79,
"DzienTekst": "2018-04-23",
"NumerLekcji": 2,
"IdPoraLekcji": 77,
"IdPrzedmiot": 499,
"PrzedmiotNazwa": "Wychowanie fizyczne",
"PodzialSkrot": "wf_grupa_2",
"Sala": "S4",
"IdPracownik": 146,
"IdPracownik": 18,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": 189,
"IdPracownikOld": 94,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 46,
"AdnotacjaOZmianie": "(zastępstwo: Anon Gałecki, sala S4)",
@ -115,33 +115,166 @@
},
{
"Dzien": 1524693600,
"DzienTekst": "2018-04-26",
"NumerLekcji": 7,
"IdPoraLekcji": 82,
"IdPrzedmiot": 495,
"PrzedmiotNazwa": "Informatyka",
"PodzialSkrot": "informatyka_2",
"Sala": "115",
"IdPracownik": 1773,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 38,
"AdnotacjaOZmianie": "",
"PrzekreslonaNazwa": false,
"PogrubionaNazwa": false,
"PlanUcznia": false
},
{
"Dzien": 1524693600,
"DzienTekst": "2018-04-26",
"NumerLekcji": 6,
"IdPoraLekcji": 81,
"DzienTekst": "2018-04-24",
"NumerLekcji": 2,
"IdPoraLekcji": 77,
"IdPrzedmiot": 488,
"PrzedmiotNazwa": "Geografia",
"PodzialSkrot": null,
"Sala": "206",
"IdPracownik": 149,
"IdPracownik": 94,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 4,
"AdnotacjaOZmianie": "",
"PrzekreslonaNazwa": false,
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1537308000,
"DzienTekst": "2018-04-25",
"NumerLekcji": 2,
"IdPoraLekcji": 77,
"IdPrzedmiot": 482,
"PrzedmiotNazwa": "Matematyka",
"PodzialSkrot": null,
"Sala": "21",
"IdPracownik": 18,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 4,
"AdnotacjaOZmianie": "",
"PrzekreslonaNazwa": false,
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1537308000,
"DzienTekst": "2018-04-26",
"NumerLekcji": 2,
"IdPoraLekcji": 77,
"IdPrzedmiot": 482,
"PrzedmiotNazwa": "Matematyka",
"PodzialSkrot": null,
"Sala": "21",
"IdPracownik": 18,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 4,
"AdnotacjaOZmianie": "",
"PrzekreslonaNazwa": false,
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1537308000,
"DzienTekst": "2018-04-27",
"NumerLekcji": 2,
"IdPoraLekcji": 77,
"IdPrzedmiot": 482,
"PrzedmiotNazwa": "Matematyka",
"PodzialSkrot": null,
"Sala": "21",
"IdPracownik": 18,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 4,
"AdnotacjaOZmianie": "",
"PrzekreslonaNazwa": false,
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1537480800,
"DzienTekst": "2018-04-23",
"NumerLekcji": 3,
"IdPoraLekcji": 78,
"IdPrzedmiot": 571,
"PrzedmiotNazwa": "Sieci komputerowe",
"PodzialSkrot": "wf2",
"Sala": "G1",
"IdPracownik": 18,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 4,
"AdnotacjaOZmianie": "",
"PrzekreslonaNazwa": false,
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1524520800,
"DzienTekst": "2018-04-24",
"NumerLekcji": 3,
"IdPoraLekcji": 78,
"IdPrzedmiot": 429,
"PrzedmiotNazwa": "Język angielski",
"PodzialSkrot": null,
"Sala": "206",
"IdPracownik": 94,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": 18,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 44,
"AdnotacjaOZmianie": "(zastępstwo: Jan Bytnar, sala 206)",
"PrzekreslonaNazwa": false,
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1524693600,
"DzienTekst": "2018-04-25",
"NumerLekcji": 3,
"IdPoraLekcji": 78,
"IdPrzedmiot": 488,
"PrzedmiotNazwa": "Geografia",
"PodzialSkrot": null,
"Sala": "206",
"IdPracownik": 94,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 4,
"AdnotacjaOZmianie": "",
"PrzekreslonaNazwa": false,
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1524434400,
"DzienTekst": "2018-04-26",
"NumerLekcji": 3,
"IdPoraLekcji": 78,
"IdPrzedmiot": 483,
"PrzedmiotNazwa": "Fizyka",
"PodzialSkrot": null,
"Sala": "213",
"IdPracownik": 18,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,
"IdPlanLekcji": 23,
"AdnotacjaOZmianie": "",
"PrzekreslonaNazwa": false,
"PogrubionaNazwa": false,
"PlanUcznia": true
},
{
"Dzien": 1537480800,
"DzienTekst": "2018-04-27",
"NumerLekcji": 3,
"IdPoraLekcji": 78,
"IdPrzedmiot": 571,
"PrzedmiotNazwa": "Sieci komputerowe",
"PodzialSkrot": "wf2",
"Sala": "G1",
"IdPracownik": 18,
"IdPracownikWspomagajacy": null,
"IdPracownikOld": null,
"IdPracownikWspomagajacyOld": null,

View file

@ -1,263 +0,0 @@
[
{
"number": "0",
"hourStart": "07:10",
"hourEnd": "07:55",
"days": [
{
"name": "Fizyka",
"group": "[zaw2]",
"teacher": "Bączek Grzegorz",
"room": "19",
"description": "(uczniowie zwolnieni do domu)",
"isCanceled": "1",
"newLesson": {
"name": "",
"teacher": "",
"room": "",
"isCanceled": "",
"isMoved": "",
"description": ""
}
},
{
"name": "Metodologia programowania",
"group": "[zaw2]",
"teacher": "",
"room": "32",
"description": "",
"isCanceled": "",
"newLesson": {
"name": "",
"teacher": "",
"room": "",
"isCanceled": "",
"isMoved": "",
"description": ""
}
},
{
"name": "Religia",
"group": "",
"teacher": "Cyranka Krystian",
"room": "3",
"description": "(zastępstwo)",
"isCanceled": "1",
"newLesson": {
"name": "Wychowanie do życia w rodzinie",
"teacher": "Nowak Jadwiga",
"room": "3",
"isCanceled": "",
"isMoved": "1",
"description": ""
}
},
{
"name": "",
"group": "",
"teacher": "",
"room": "",
"description": "",
"isCanceled": "",
"newLesson": {
"name": "",
"teacher": "",
"room": "",
"isCanceled": "",
"isMoved": "",
"description": ""
}
},
{
"name": "Uroczyste zakończenie roku szkolnego",
"group": "",
"teacher": "Baran Małgorzata",
"room": "37",
"description": "(",
"isCanceled": "",
"newLesson": {
"name": "",
"teacher": "",
"room": "",
"isCanceled": "",
"isMoved": "",
"description": ""
}
}
]
},
{
"number": "1",
"hourStart": "08:00",
"hourEnd": "08:45",
"days": [
{
"name": "Metodologia programowania",
"group": "[zaw2]",
"teacher": "Baran Małgorzata",
"room": "36",
"description": "(zmiana organizacji zajęć)",
"isCanceled": "1",
"newLesson": {
"name": "Wychowanie fizyczne",
"teacher": "",
"room": "G3",
"isCanceled": "",
"isMoved": "1",
"description": "(przeniesiona z lekcji 7, 01.12.2017)"
}
},
{
"name": "Język angielski",
"group": "[J1]",
"teacher": "Kobczyk Iwona",
"room": "",
"description": "",
"isCanceled": "",
"newLesson": {
"name": "",
"teacher": "",
"room": "",
"isCanceled": "",
"isMoved": "",
"description": ""
}
},
{
"name": "Użytkowanie urządzeń peryferyjnych komputera",
"group": "[zaw2]",
"teacher": "Bączek Robert",
"room": "",
"description": "",
"isCanceled": "",
"newLesson": {
"name": "",
"teacher": "",
"room": "",
"isCanceled": "",
"isMoved": "",
"description": ""
}
},
{
"name": "Wychowanie fizyczne",
"group": "[zaw1]",
"teacher": "Jarocki Krzysztof",
"room": "G4",
"description": "(zastępstwo)",
"isCanceled": "",
"newLesson": {
"name": "Wychowanie fizyczne",
"teacher": "Nowicka Irena",
"room": "G4",
"isCanceled": "1",
"isMoved": "1",
"description": ""
}
},
{
"name": "",
"group": "",
"teacher": "",
"room": "",
"description": "",
"isCanceled": "",
"newLesson": {
"name": "",
"teacher": "",
"room": "",
"isCanceled": "",
"isMoved": "",
"description": ""
}
}
]
},
{
"number": "2",
"hourStart": "08:50",
"hourEnd": "09:35",
"days": [
{
"name": "Język polski",
"group": "",
"teacher": "Bocian Natalia",
"room": "",
"description": "",
"isCanceled": "",
"newLesson": {
"name": "",
"teacher": "",
"room": "",
"isCanceled": "",
"isMoved": "1",
"description": ""
}
},
{
"name": "Język niemiecki",
"group": "[J1]",
"teacher": "Rożeniec Honorata",
"room": "25",
"description": "(okienko dla uczniów)",
"isCanceled": "1",
"newLesson": {
"name": "Język polski",
"teacher": "Bocian Natalia",
"room": "",
"isCanceled": "",
"isMoved": "1",
"description": "(przeniesiona z lekcji 7, 20.06.2017)"
}
},
{
"name": "Użytkowanie urządzeń peryferyjnych komputera",
"group": "[zaw2]",
"teacher": "Bączek Grzegorz",
"room": "",
"description": "",
"isCanceled": "",
"newLesson": {
"name": "",
"teacher": "",
"room": "",
"isCanceled": "",
"isMoved": "",
"description": ""
}
},
{
"name": "Matematyka",
"group": "",
"teacher": "Baran Małgorzata",
"room": "",
"description": "",
"isCanceled": "",
"newLesson": {
"name": "",
"teacher": "",
"room": "",
"isCanceled": "",
"isMoved": "",
"description": ""
}
},
{
"name": "",
"group": "",
"teacher": "",
"room": "",
"description": "",
"isCanceled": "",
"newLesson": {
"name": "",
"teacher": "",
"room": "",
"isCanceled": "",
"isMoved": "",
"description": ""
}
}
]
}
]

View file

@ -50,11 +50,11 @@
font-size: small;
}
.presentData td:not(.padding-zero):not(.x-sp-nieobecny-w-oddziale):not(:first-child):before {
display: block;
content: 'pusta';
background: grey;
}
//.presentData td:not(.padding-zero):not(.x-sp-nieobecny-w-oddziale):not(:first-child):before {
// display: block;
// content: 'pusta';
// background: grey;
//}
.presentData img {
margin: 0 auto;
display: block;

View file

@ -193,9 +193,28 @@ router.get("/Default/123456/UwagiOsiagniecia.mvc/Wszystkie", (req, res) => {
});
router.get("/Default/123456/Lekcja(\.mvc|)/PlanZajec", (req, res) => {
const teachers = require("../../data/api/dictionaries/Nauczyciele");
res.render("opiekun/plan-zajec", {
title: "Witryna ucznia i rodzica Plan lekcji",
data: require("../../data/opiekun/plan-zajec.json"),
data: _.groupBy(require("../../data/api/student/PlanLekcjiZeZmianami").map(item => {
const teacher = dictMap.getByValue(teachers, "Id", item.IdPracownik);
const oldTeacher = dictMap.getByValue(teachers, "Id", item.IdPracownikOld);
const times = dictMap.getByValue(require("../../data/api/dictionaries/PoryLekcji"), "Id", item.IdPoraLekcji);
return {
number: item.NumerLekcji,
start: times.PoczatekTekst,
end: times.KoniecTekst,
subject: item.PrzedmiotNazwa,
group: item.PodzialSkrot,
teacher: `${teacher.Imie} ${teacher.Nazwisko}`,
oldTeacher: !_.isEmpty(oldTeacher) ? `${oldTeacher.Imie} ${oldTeacher.Nazwisko}` : false,
room: item.Sala,
info: item.AdnotacjaOZmianie,
changes: item.PogrubionaNazwa,
canceled: item.PrzekreslonaNazwa,
date: converter.formatDate(new Date(item.DzienTekst)),
};
}), "number"),
weekDays: converter.getWeekDaysFrom(req.query.data),
tics: {
prev: converter.getPrevWeekTick(req.query.data),

View file

@ -21,82 +21,31 @@ append content
br
| #{item[1]}
tbody
each item in data
each item,key in data
tr
td= item.number
td= item.hourStart + " " + item.hourEnd
each day in item.days
td= item[0].number
td= `${item[0].start} - ${item[0].end}`
each cell in item
td
if day.isCanceled && !day.newLesson.isMoved
div
if day.group
span.x-treelabel-inv= day.name + " " + day.group
span.x-treelabel-inv
span.x-treelabel-inv= day.teacher
span.x-treelabel-inv= day.room
span.x-treelabel-rlz= day.description
if (cell.oldTeacher)
span.x-treelabel-inv= cell.subject
span.x-treelabel-inv= cell.oldTeacher
span.x-treelabel-inv= cell.room
span.x-treelabel-ppl.x-treelabel-zas= cell.subject
span.x-treelabel-ppl.x-treelabel-zas= cell.teacher
span.x-treelabel-ppl.x-treelabel-zas= cell.room
span.x-treelabel-rlz= cell.info
else
span.x-treelabel-inv= day.name
span.x-treelabel-inv= day.teacher
span.x-treelabel-inv= day.room
span.x-treelabel-rlz= day.description
else if day.isCanceled && day.newLesson.isMoved && !day.newLesson.description
div
if day.group
span.x-treelabel-inv= day.name + " " + day.group
span.x-treelabel-inv
span.x-treelabel-inv= day.teacher
span.x-treelabel-inv= day.room
span.x-treelabel-zas= day.newLesson.name
span.x-treelabel-zas
span.x-treelabel-zas= day.newLesson.teacher
span.x-treelabel-zas= day.newLesson.room
span.x-treelabel-rlz= day.description
if (cell.group)
span(class= {'x-treelabel-ppl x-treelabel-inv': cell.canceled})= `${cell.subject} [${cell.group}]`
span(class= {'x-treelabel-ppl x-treelabel-inv': cell.canceled})
else
span.x-treelabel-inv= day.name
span.x-treelabel-inv= day.teacher
span.x-treelabel-inv= day.room
span.x-treelabel-zas= day.newLesson.name
span.x-treelabel-zas= day.newLesson.teacher
span.x-treelabel-zas= day.newLesson.room
span.x-treelabel-rlz= day.description
else if day.isCanceled && day.newLesson.isMoved && day.newLesson.description
if day.group
div
span.x-treelabel-inv= day.name + " " + day.group
span.x-treelabel-inv
span.x-treelabel-inv= day.teacher
span.x-treelabel-inv= day.room
span.x-treelabel-rlz= day.description
div
span.x-treelabel-zas= day.newLesson.name + " " + day.group
span.x-treelabel-zas
span.x-treelabel-zas= day.newLesson.teacher
span.x-treelabel-zas= day.newLesson.room
span.x-treelabel-rlz= day.newLesson.description
else
div
span.x-treelabel-inv= day.name
span.x-treelabel-inv= day.teacher
span.x-treelabel-inv= day.room
span.x-treelabel-rlz= day.description
div
span.x-treelabel-zas= day.newLesson.name
span.x-treelabel-zas= day.newLesson.teacher
span.x-treelabel-zas= day.newLesson.room
span.x-treelabel-rlz= day.newLesson.description
else
div
if !day.group
span= day.name
span= day.teacher
span= day.room
else
span= day.name + " " + day.group
span
span= day.teacher
span= day.room
span(class= {'x-treelabel-ppl x-treelabel-inv': cell.canceled})= `${cell.subject}`
span(class= {'x-treelabel-ppl x-treelabel-inv': cell.canceled})= cell.teacher
span(class= {'x-treelabel-ppl x-treelabel-inv': cell.canceled})= cell.room
if (cell.info)
span.x-treelabel-rlz= cell.info
+nav
.description