Totetuta tilat
This commit is contained in:
parent
e3ae218f10
commit
02f456dce0
17
index.html
17
index.html
|
@ -43,6 +43,9 @@
|
||||||
#opettajat > li > span {
|
#opettajat > li > span {
|
||||||
margin-left: 0.5em;
|
margin-left: 0.5em;
|
||||||
}
|
}
|
||||||
|
#tilat > li > span {
|
||||||
|
margin-left: 0.5em;
|
||||||
|
}
|
||||||
#tunti-kertaa-viikossa {
|
#tunti-kertaa-viikossa {
|
||||||
width: 3em;
|
width: 3em;
|
||||||
}
|
}
|
||||||
|
@ -78,6 +81,18 @@
|
||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
<details class="ruutu" open>
|
||||||
|
<summary>Tilat</summary>
|
||||||
|
<div>
|
||||||
|
<form id="lisää-tila">
|
||||||
|
<label for="tila-nimi">Nimi</label>
|
||||||
|
<input id="tila-nimi" type="text" required>
|
||||||
|
<input type="submit" value="+">
|
||||||
|
</form>
|
||||||
|
<ul id="tilat"></ul>
|
||||||
|
</div>
|
||||||
|
</details>
|
||||||
|
|
||||||
<details class="ruutu" open>
|
<details class="ruutu" open>
|
||||||
<summary>Tunnit</summary>
|
<summary>Tunnit</summary>
|
||||||
<div>
|
<div>
|
||||||
|
@ -88,6 +103,8 @@
|
||||||
<select id="tunti-luokka" required></select>
|
<select id="tunti-luokka" required></select>
|
||||||
<label for="tunti-opettaja">Opettaja</label>
|
<label for="tunti-opettaja">Opettaja</label>
|
||||||
<select id="tunti-opettaja" required></select>
|
<select id="tunti-opettaja" required></select>
|
||||||
|
<label for="tunti-tila">Tila</label>
|
||||||
|
<select id="tunti-tila" required></select>
|
||||||
<input id="tunti-kertaa-viikossa" type="number" min="1" value="1">
|
<input id="tunti-kertaa-viikossa" type="number" min="1" value="1">
|
||||||
<label for="tunti-kertaa-viikossa">kertaa viikossa</label>
|
<label for="tunti-kertaa-viikossa">kertaa viikossa</label>
|
||||||
<input type="submit" value="+">
|
<input type="submit" value="+">
|
||||||
|
|
|
@ -46,6 +46,14 @@ document.getElementById('lisää-opettaja').addEventListener('submit', (tapahtum
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
document.getElementById('lisää-tila').addEventListener('submit', (tapahtuma) => {
|
||||||
|
tapahtuma.preventDefault();
|
||||||
|
let nimiElementti = document.getElementById('tila-nimi');
|
||||||
|
suorita(tapahtumaTyypit.lisääTila, nimiElementti.value);
|
||||||
|
nimiElementti.value = '';
|
||||||
|
piirräKaikki();
|
||||||
|
});
|
||||||
|
|
||||||
document.getElementById('opettaja-nimi').addEventListener('input', () => {
|
document.getElementById('opettaja-nimi').addEventListener('input', () => {
|
||||||
let osat = document.getElementById('opettaja-nimi').value.split(' ');
|
let osat = document.getElementById('opettaja-nimi').value.split(' ');
|
||||||
let lyhenne = [];
|
let lyhenne = [];
|
||||||
|
@ -66,17 +74,27 @@ document.getElementById('lisää-tunti').addEventListener('submit', (tapahtuma)
|
||||||
let nimiElementti = document.getElementById('tunti-nimi');
|
let nimiElementti = document.getElementById('tunti-nimi');
|
||||||
let luokkaElementti = document.getElementById('tunti-luokka');
|
let luokkaElementti = document.getElementById('tunti-luokka');
|
||||||
let opettajaElementti = document.getElementById('tunti-opettaja');
|
let opettajaElementti = document.getElementById('tunti-opettaja');
|
||||||
|
let tilaElementti = document.getElementById('tunti-tila');
|
||||||
let kertaaViikossaElementti = document.getElementById('tunti-kertaa-viikossa');
|
let kertaaViikossaElementti = document.getElementById('tunti-kertaa-viikossa');
|
||||||
|
|
||||||
let nimi = nimiElementti.value;
|
let nimi = nimiElementti.value;
|
||||||
let luokka = luokkaElementti.value;
|
let luokka = luokkaElementti.value;
|
||||||
let opettajaLyhenne = opettajaElementti.value;
|
let opettajaLyhenne = opettajaElementti.value;
|
||||||
|
let tila = parseInt(tilaElementti.value);
|
||||||
let kertaaViikossa = parseInt(kertaaViikossaElementti.value);
|
let kertaaViikossa = parseInt(kertaaViikossaElementti.value);
|
||||||
suorita(tapahtumaTyypit.lisääTunti, nimi, luokka, opettajaLyhenne, kertaaViikossa);
|
suorita(
|
||||||
|
tapahtumaTyypit.lisääTunti,
|
||||||
|
nimi,
|
||||||
|
luokka,
|
||||||
|
opettajaLyhenne,
|
||||||
|
tila,
|
||||||
|
kertaaViikossa
|
||||||
|
);
|
||||||
|
|
||||||
nimiElementti.value = '';
|
nimiElementti.value = '';
|
||||||
luokkaElementti.value = '';
|
luokkaElementti.value = '';
|
||||||
opettajaElementti.value = '';
|
opettajaElementti.value = '';
|
||||||
|
tilaElementti.value = '';
|
||||||
kertaaViikossaElementti.value = 1;
|
kertaaViikossaElementti.value = 1;
|
||||||
|
|
||||||
piirräKaikki();
|
piirräKaikki();
|
||||||
|
@ -85,6 +103,7 @@ document.getElementById('lisää-tunti').addEventListener('submit', (tapahtuma)
|
||||||
function piirräKaikki() {
|
function piirräKaikki() {
|
||||||
piirräLuokat();
|
piirräLuokat();
|
||||||
piirräOpettajat();
|
piirräOpettajat();
|
||||||
|
piirräTilat();
|
||||||
piirräTunnit();
|
piirräTunnit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,6 +271,52 @@ function luoOpettajaListassa(lyhenne, nimi) {
|
||||||
return opettajaListassa;
|
return opettajaListassa;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function piirräTilat() {
|
||||||
|
let vanhaTilaLista = document.getElementById('tilat');
|
||||||
|
let tilaLista = luoTilaLista();
|
||||||
|
vanhaTilaLista.parentNode.replaceChild(
|
||||||
|
tilaLista,
|
||||||
|
vanhaTilaLista
|
||||||
|
);
|
||||||
|
|
||||||
|
let vanhaTuntiTilaValinta = document.getElementById('tunti-tila');
|
||||||
|
let tuntiTilaValinta = document.createElement('select');
|
||||||
|
tuntiTilaValinta.id = 'tunti-tila';
|
||||||
|
tuntiTilaValinta.required = true;
|
||||||
|
for (let [id, tila] of tilat.tilat()) {
|
||||||
|
let valinta = document.createElement('option');
|
||||||
|
valinta.appendChild(document.createTextNode(tila));
|
||||||
|
valinta.value = id;
|
||||||
|
tuntiTilaValinta.appendChild(valinta);
|
||||||
|
}
|
||||||
|
tuntiTilaValinta.value = '';
|
||||||
|
vanhaTuntiTilaValinta.parentNode.replaceChild(
|
||||||
|
tuntiTilaValinta,
|
||||||
|
vanhaTuntiTilaValinta
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function luoTilaLista() {
|
||||||
|
let tilaLista = document.createElement('ul');
|
||||||
|
tilaLista.id = 'tilat';
|
||||||
|
|
||||||
|
for (let [id, tila] of tilat.tilat()) {
|
||||||
|
let tilaListassa = document.createElement('li');
|
||||||
|
tilaListassa.appendChild(luoPainike('-', () => {
|
||||||
|
suorita(tapahtumaTyypit.poistaTila, id);
|
||||||
|
piirräKaikki();
|
||||||
|
}));
|
||||||
|
|
||||||
|
let tilanNimi = document.createElement('span');
|
||||||
|
tilanNimi.appendChild(document.createTextNode(`${tila}`));
|
||||||
|
tilaListassa.appendChild(tilanNimi);
|
||||||
|
|
||||||
|
tilaLista.appendChild(tilaListassa);
|
||||||
|
}
|
||||||
|
|
||||||
|
return tilaLista;
|
||||||
|
}
|
||||||
|
|
||||||
function piirräTunnit() {
|
function piirräTunnit() {
|
||||||
let vanhaTuntiLista = document.getElementById('tunnit');
|
let vanhaTuntiLista = document.getElementById('tunnit');
|
||||||
let tuntiLista = luoTuntiLista();
|
let tuntiLista = luoTuntiLista();
|
||||||
|
@ -270,12 +335,13 @@ function luoTuntiLista() {
|
||||||
let nimi = tunti.nimi;
|
let nimi = tunti.nimi;
|
||||||
let luokat = tunti.luokat.alkiot().join(', ');
|
let luokat = tunti.luokat.alkiot().join(', ');
|
||||||
let opettajat = tunti.opettajaLyhenteet.alkiot().join(', ');
|
let opettajat = tunti.opettajaLyhenteet.alkiot().join(', ');
|
||||||
|
let tunninTilat = tilojenNimet(tilat, tunti.tilat.alkiot());
|
||||||
let kertaaViikossa = tunti.kertaaViikossa;
|
let kertaaViikossa = tunti.kertaaViikossa;
|
||||||
let teksti;
|
let teksti;
|
||||||
if (kertaaViikossa === 1) {
|
if (kertaaViikossa === 1) {
|
||||||
teksti = `${nimi} ${luokat} ${opettajat}`;
|
teksti = `${nimi} ${luokat} ${opettajat} ${tunninTilat}`;
|
||||||
} else {
|
} else {
|
||||||
teksti = `${nimi} ${luokat} ${opettajat} ×${kertaaViikossa}`;
|
teksti = `${nimi} ${luokat} ${opettajat} ${tunninTilat} ×${kertaaViikossa}`;
|
||||||
}
|
}
|
||||||
tuntiListassa.appendChild(document.createTextNode(teksti));
|
tuntiListassa.appendChild(document.createTextNode(teksti));
|
||||||
tuntiLista.appendChild(tuntiListassa);
|
tuntiLista.appendChild(tuntiListassa);
|
||||||
|
|
|
@ -10,6 +10,9 @@ const tapahtumaTyypit = {
|
||||||
lisääOpettaja: 'lisääOpettaja',
|
lisääOpettaja: 'lisääOpettaja',
|
||||||
poistaOpettaja: 'poistaOpettaja',
|
poistaOpettaja: 'poistaOpettaja',
|
||||||
|
|
||||||
|
lisääTila: 'lisääTila',
|
||||||
|
poistaTila: 'poistaTila',
|
||||||
|
|
||||||
lisääTunti: 'lisääTunti',
|
lisääTunti: 'lisääTunti',
|
||||||
poistaTunti: 'poistaTunti',
|
poistaTunti: 'poistaTunti',
|
||||||
};
|
};
|
||||||
|
@ -22,7 +25,7 @@ class Tapahtuma {
|
||||||
}
|
}
|
||||||
|
|
||||||
let historia, tulevaisuus;
|
let historia, tulevaisuus;
|
||||||
let luokkaAsteet, opettajat, tunnit;
|
let luokkaAsteet, opettajat, tilat, tunnit;
|
||||||
alustaMalli();
|
alustaMalli();
|
||||||
|
|
||||||
function alustaMalli() {
|
function alustaMalli() {
|
||||||
|
@ -30,6 +33,7 @@ function alustaMalli() {
|
||||||
tulevaisuus = [];
|
tulevaisuus = [];
|
||||||
luokkaAsteet = new LuokkaAsteet();
|
luokkaAsteet = new LuokkaAsteet();
|
||||||
opettajat = new Opettajat();
|
opettajat = new Opettajat();
|
||||||
|
tilat = new Tilat();
|
||||||
tunnit = new Tunnit();
|
tunnit = new Tunnit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,8 +107,21 @@ function suorita(tyyppi, ...argumentit) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case tapahtumaTyypit.lisääTila:
|
||||||
|
assertEq('lisääTila argumentit määrä', argumentit.length, 1);
|
||||||
|
paluuarvo = tilat.lisää(...argumentit);
|
||||||
|
break;
|
||||||
|
case tapahtumaTyypit.poistaTila:
|
||||||
|
assertEq('poistaTila argumentit määrä', argumentit.length, 1);
|
||||||
|
let [poistettuTila] = argumentit;
|
||||||
|
tilat.poista(poistettuTila);
|
||||||
|
for (let [_, tunti] of tunnit.tunnit) {
|
||||||
|
tunti.tilat.poista(poistettuTila);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case tapahtumaTyypit.lisääTunti:
|
case tapahtumaTyypit.lisääTunti:
|
||||||
assertEq('lisääTunti argumentit määrä', argumentit.length, 4);
|
assertEq('lisääTunti argumentit määrä', argumentit.length, 5);
|
||||||
paluuarvo = tunnit.lisää(...argumentit);
|
paluuarvo = tunnit.lisää(...argumentit);
|
||||||
break;
|
break;
|
||||||
case tapahtumaTyypit.poistaTunti:
|
case tapahtumaTyypit.poistaTunti:
|
||||||
|
@ -154,12 +171,14 @@ testi('mallin alustaminen', () => {
|
||||||
tulevaisuus = undefined;
|
tulevaisuus = undefined;
|
||||||
luokkaAsteet = undefined;
|
luokkaAsteet = undefined;
|
||||||
opettajat = undefined;
|
opettajat = undefined;
|
||||||
|
tilat = undefined;
|
||||||
tunnit = undefined;
|
tunnit = undefined;
|
||||||
alustaMalli();
|
alustaMalli();
|
||||||
assertNe('historia', historia, undefined);
|
assertNe('historia', historia, undefined);
|
||||||
assertNe('tulevaisuus', tulevaisuus, undefined);
|
assertNe('tulevaisuus', tulevaisuus, undefined);
|
||||||
assertNe('luokkaAsteet', luokkaAsteet, undefined);
|
assertNe('luokkaAsteet', luokkaAsteet, undefined);
|
||||||
assertNe('opettajat', opettajat, undefined);
|
assertNe('opettajat', opettajat, undefined);
|
||||||
|
assertNe('tilat', tilat, undefined);
|
||||||
assertNe('tunnit', tunnit, undefined);
|
assertNe('tunnit', tunnit, undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -262,6 +281,16 @@ testi('opettajien käsittely', () => {
|
||||||
assertEq('poistettua', opettajat.opettajat(), []);
|
assertEq('poistettua', opettajat.opettajat(), []);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testi('tilojen käsittely', () => {
|
||||||
|
alustaMalli();
|
||||||
|
assertEq('aluksi', tilat.tilat(), []);
|
||||||
|
assertEq('1A', suorita(tapahtumaTyypit.lisääTila, '1A'), 0);
|
||||||
|
assertEq('lisättyä', tilat.tilat(), [[0, '1A']]);
|
||||||
|
suorita(tapahtumaTyypit.poistaTila, 0);
|
||||||
|
assertEq('poistettua', tilat.tilat(), []);
|
||||||
|
alustaMalli();
|
||||||
|
});
|
||||||
|
|
||||||
testi('tuntien käsittely', () => {
|
testi('tuntien käsittely', () => {
|
||||||
alustaMalli();
|
alustaMalli();
|
||||||
suorita(tapahtumaTyypit.lisääAste);
|
suorita(tapahtumaTyypit.lisääAste);
|
||||||
|
@ -270,18 +299,21 @@ testi('tuntien käsittely', () => {
|
||||||
suorita(tapahtumaTyypit.lisääOpettaja, 'KV', 'Kari Virtanen');
|
suorita(tapahtumaTyypit.lisääOpettaja, 'KV', 'Kari Virtanen');
|
||||||
suorita(tapahtumaTyypit.lisääOpettaja, 'AS', 'Aili Savolainen');
|
suorita(tapahtumaTyypit.lisääOpettaja, 'AS', 'Aili Savolainen');
|
||||||
suorita(tapahtumaTyypit.lisääOpettaja, 'MM', 'Maija Meikäläinen');
|
suorita(tapahtumaTyypit.lisääOpettaja, 'MM', 'Maija Meikäläinen');
|
||||||
|
suorita(tapahtumaTyypit.lisääTila, '1A');
|
||||||
|
suorita(tapahtumaTyypit.lisääTila, '5B');
|
||||||
|
suorita(tapahtumaTyypit.lisääTila, 'Käsityöluokka');
|
||||||
assertEq('aluksi', tunnit.järjestyksessä(), []);
|
assertEq('aluksi', tunnit.järjestyksessä(), []);
|
||||||
|
|
||||||
assertEq('historia',
|
assertEq('historia',
|
||||||
suorita(tapahtumaTyypit.lisääTunti, 'Historia', '5B', 'KV', 1),
|
suorita(tapahtumaTyypit.lisääTunti, 'Historia', '5B', 'KV', 1, 1),
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
assertEq('äidinkieli',
|
assertEq('äidinkieli',
|
||||||
suorita(tapahtumaTyypit.lisääTunti, 'Äidinkieli', '1A', 'AS', 3),
|
suorita(tapahtumaTyypit.lisääTunti, 'Äidinkieli', '1A', 'AS', 0, 3),
|
||||||
1
|
1
|
||||||
);
|
);
|
||||||
assertEq('kuvataide',
|
assertEq('kuvataide',
|
||||||
suorita(tapahtumaTyypit.lisääTunti, 'Kuvataide', '5A', 'MM', 1),
|
suorita(tapahtumaTyypit.lisääTunti, 'Kuvataide', '5A', 'MM', 2, 1),
|
||||||
2
|
2
|
||||||
);
|
);
|
||||||
assertEq('lisättyä pituus', tunnit.järjestyksessä().length, 3);
|
assertEq('lisättyä pituus', tunnit.järjestyksessä().length, 3);
|
||||||
|
@ -306,6 +338,11 @@ testi('tuntien käsittely', () => {
|
||||||
assertEq('opettaja poistettua 1', tunnit.järjestyksessä()[1][1].opettajaLyhenteet.alkiot(), ['MM']);
|
assertEq('opettaja poistettua 1', tunnit.järjestyksessä()[1][1].opettajaLyhenteet.alkiot(), ['MM']);
|
||||||
assertEq('opettaja poistettua 2', tunnit.järjestyksessä()[2][1].opettajaLyhenteet.alkiot(), ['AS']);
|
assertEq('opettaja poistettua 2', tunnit.järjestyksessä()[2][1].opettajaLyhenteet.alkiot(), ['AS']);
|
||||||
|
|
||||||
|
suorita(tapahtumaTyypit.poistaTila, 1);
|
||||||
|
assertEq('tila poistettua 0', tunnit.järjestyksessä()[0][1].tilat.alkiot(), []);
|
||||||
|
assertEq('tila poistettua 1', tunnit.järjestyksessä()[1][1].tilat.alkiot(), [2]);
|
||||||
|
assertEq('tila poistettua 2', tunnit.järjestyksessä()[2][1].tilat.alkiot(), [0]);
|
||||||
|
|
||||||
suorita(tapahtumaTyypit.poistaTunti, 0);
|
suorita(tapahtumaTyypit.poistaTunti, 0);
|
||||||
assertEq('poistettua pituus', tunnit.järjestyksessä().length, 2);
|
assertEq('poistettua pituus', tunnit.järjestyksessä().length, 2);
|
||||||
|
|
||||||
|
|
|
@ -109,11 +109,55 @@ class Opettajat {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class Tilat {
|
||||||
|
#tilat = new Map();
|
||||||
|
#seuraavaId = 0;
|
||||||
|
|
||||||
|
tilat() {
|
||||||
|
let tilat = [];
|
||||||
|
for (let [id, tila] of this.#tilat) {
|
||||||
|
tilat.push([id, tila]);
|
||||||
|
}
|
||||||
|
tilat.sort((a, b) => {
|
||||||
|
return vertaa(a[1], b[1]);
|
||||||
|
});
|
||||||
|
return tilat;
|
||||||
|
}
|
||||||
|
|
||||||
|
id(id) {
|
||||||
|
if (!this.#tilat.has(id)) {
|
||||||
|
throw new Error(`ei tilaa ID:llä ${id}`);
|
||||||
|
}
|
||||||
|
return this.#tilat.get(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
lisää(tila) {
|
||||||
|
let id = this.#seuraavaId++;
|
||||||
|
this.#tilat.set(id, tila);
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
poista(id) {
|
||||||
|
if (!this.#tilat.delete(id)) {
|
||||||
|
throw new Error(`ei tilaa ID:llä ${id}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function tilojenNimet(tilat, tilaIDt) {
|
||||||
|
let nimet = [];
|
||||||
|
for (let id of tilaIDt) {
|
||||||
|
nimet.push(tilat.id(id));
|
||||||
|
}
|
||||||
|
return nimet;
|
||||||
|
}
|
||||||
|
|
||||||
class Tunti {
|
class Tunti {
|
||||||
constructor(nimi, luokat, opettajaLyhenteet, kertaaViikossa) {
|
constructor(nimi, luokat, opettajaLyhenteet, tilat, kertaaViikossa) {
|
||||||
this.nimi = nimi;
|
this.nimi = nimi;
|
||||||
this.luokat = new Joukko(luokat);
|
this.luokat = new Joukko(luokat);
|
||||||
this.opettajaLyhenteet = new Joukko(opettajaLyhenteet);
|
this.opettajaLyhenteet = new Joukko(opettajaLyhenteet);
|
||||||
|
this.tilat = new Joukko(tilat);
|
||||||
this.kertaaViikossa = kertaaViikossa;
|
this.kertaaViikossa = kertaaViikossa;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -122,11 +166,11 @@ class Tunnit {
|
||||||
tunnit = new Map();
|
tunnit = new Map();
|
||||||
#seuraavaId = 0;
|
#seuraavaId = 0;
|
||||||
|
|
||||||
lisää(nimi, luokka, opettajaLyhenne, kertaaViikossa) {
|
lisää(nimi, luokka, opettajaLyhenne, tila, kertaaViikossa) {
|
||||||
let id = this.#seuraavaId++;
|
let id = this.#seuraavaId++;
|
||||||
this.tunnit.set(
|
this.tunnit.set(
|
||||||
id,
|
id,
|
||||||
new Tunti(nimi, [luokka], [opettajaLyhenne], kertaaViikossa)
|
new Tunti(nimi, [luokka], [opettajaLyhenne], [tila], kertaaViikossa)
|
||||||
);
|
);
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
@ -152,6 +196,8 @@ class Tunnit {
|
||||||
if (tulos === 0) {
|
if (tulos === 0) {
|
||||||
tulos = vertaa(a[1].opettajaLyhenteet.alkiot(), b[1].opettajaLyhenteet.alkiot());
|
tulos = vertaa(a[1].opettajaLyhenteet.alkiot(), b[1].opettajaLyhenteet.alkiot());
|
||||||
}
|
}
|
||||||
|
// TODO: Vertaa tilojen nimiä
|
||||||
|
// TODO: Korjaa niin, että osaa verrata okein listoja
|
||||||
if (tulos === 0) {
|
if (tulos === 0) {
|
||||||
tulos = vertaa(a[1].kertaaViikossa, b[1].kertaaViikossa);
|
tulos = vertaa(a[1].kertaaViikossa, b[1].kertaaViikossa);
|
||||||
}
|
}
|
||||||
|
@ -323,36 +369,66 @@ testi('opettajien lyhenteen', () => {
|
||||||
assertEq('ZZ', opettajat.lyhenne('ZZ'), undefined);
|
assertEq('ZZ', opettajat.lyhenne('ZZ'), undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testi('tilojen lisääminen', () => {
|
||||||
|
let tilat = new Tilat();
|
||||||
|
assertEq('käsityöluokka', tilat.lisää('Käsityöluokka'), 0);
|
||||||
|
assertEq('1A', tilat.lisää('1A'), 1);
|
||||||
|
assertEq('lisättyä', tilat.tilat(), [[1, '1A'], [0, 'Käsityöluokka']]);
|
||||||
|
});
|
||||||
|
|
||||||
|
testi('tilojen poistaminen', () => {
|
||||||
|
let tilat = new Tilat();
|
||||||
|
tilat.lisää('Käsityöluokka');
|
||||||
|
tilat.lisää('1A');
|
||||||
|
tilat.poista(0);
|
||||||
|
tilat.poista(1);
|
||||||
|
assertEq('poistettua', tilat.tilat(), []);
|
||||||
|
assertThrow('jo poistettu', 'ei tilaa ID:llä 1', () => {
|
||||||
|
tilat.poista(1);
|
||||||
|
});
|
||||||
|
assertEq('Käsityöluokka uudestaan', tilat.lisää('Käsityöluokka'), 2);
|
||||||
|
});
|
||||||
|
|
||||||
|
testi('tilojen nimet', () => {
|
||||||
|
let tilat = new Tilat();
|
||||||
|
tilat.lisää('Käsityöluokka');
|
||||||
|
tilat.lisää('1A');
|
||||||
|
tilat.lisää('5A');
|
||||||
|
assertEq('', tilojenNimet(tilat, [1, 0, 2]), ['1A', 'Käsityöluokka', '5A']);
|
||||||
|
});
|
||||||
|
|
||||||
testi('tuntien lisääminen', () => {
|
testi('tuntien lisääminen', () => {
|
||||||
let tunnit = new Tunnit();
|
let tunnit = new Tunnit();
|
||||||
assertEq('historia', tunnit.lisää('Historia', '5B', 'KV', 1), 0);
|
assertEq('historia', tunnit.lisää('Historia', '5B', 'KV', 0, 1), 0);
|
||||||
assertEq('äidinkieli', tunnit.lisää('Äidinkieli', '1A', 'AS', 3), 1);
|
assertEq('äidinkieli', tunnit.lisää('Äidinkieli', '1A', 'AS', 1, 3), 1);
|
||||||
assertEq('historia nimi', tunnit.tunnit.get(0).nimi, 'Historia');
|
assertEq('historia nimi', tunnit.tunnit.get(0).nimi, 'Historia');
|
||||||
assertEq('historia luokat', tunnit.tunnit.get(0).luokat.alkiot(), ['5B']);
|
assertEq('historia luokat', tunnit.tunnit.get(0).luokat.alkiot(), ['5B']);
|
||||||
assertEq('historia opettajat', tunnit.tunnit.get(0).opettajaLyhenteet.alkiot(), ['KV']);
|
assertEq('historia opettajat', tunnit.tunnit.get(0).opettajaLyhenteet.alkiot(), ['KV']);
|
||||||
|
assertEq('historia tilat', tunnit.tunnit.get(0).tilat.alkiot(), [0]);
|
||||||
assertEq('historia viikossa', tunnit.tunnit.get(0).kertaaViikossa, 1);
|
assertEq('historia viikossa', tunnit.tunnit.get(0).kertaaViikossa, 1);
|
||||||
assertEq('äidinkieli nimi', tunnit.tunnit.get(1).nimi, 'Äidinkieli');
|
assertEq('äidinkieli nimi', tunnit.tunnit.get(1).nimi, 'Äidinkieli');
|
||||||
assertEq('äidinkieli luokat', tunnit.tunnit.get(1).luokat.alkiot(), ['1A']);
|
assertEq('äidinkieli luokat', tunnit.tunnit.get(1).luokat.alkiot(), ['1A']);
|
||||||
|
assertEq('äidinkieli tilat', tunnit.tunnit.get(1).tilat.alkiot(), [1]);
|
||||||
assertEq('äidinkieli opettajat', tunnit.tunnit.get(1).opettajaLyhenteet.alkiot(), ['AS']);
|
assertEq('äidinkieli opettajat', tunnit.tunnit.get(1).opettajaLyhenteet.alkiot(), ['AS']);
|
||||||
assertEq('äidinkieli viikossa', tunnit.tunnit.get(1).kertaaViikossa, 3);
|
assertEq('äidinkieli viikossa', tunnit.tunnit.get(1).kertaaViikossa, 3);
|
||||||
});
|
});
|
||||||
|
|
||||||
testi('tuntien poistaminen', () => {
|
testi('tuntien poistaminen', () => {
|
||||||
let tunnit = new Tunnit();
|
let tunnit = new Tunnit();
|
||||||
tunnit.lisää('Historia', '5B', 'KV', 1);
|
tunnit.lisää('Historia', '5B', 'KV', 0, 1);
|
||||||
tunnit.lisää('Äidinkieli', '1B', 'AS', 3);
|
tunnit.lisää('Äidinkieli', '1B', 'AS', 1, 3);
|
||||||
tunnit.poista(0);
|
tunnit.poista(0);
|
||||||
tunnit.poista(1);
|
tunnit.poista(1);
|
||||||
assertThrow('jo poistettu', 'ei tuntia ID:llä 1', () => {
|
assertThrow('jo poistettu', 'ei tuntia ID:llä 1', () => {
|
||||||
tunnit.poista(1);
|
tunnit.poista(1);
|
||||||
});
|
});
|
||||||
assertEq('kuvataide', tunnit.lisää('Kuvataide', '6A', 'MM', 1), 2);
|
assertEq('kuvataide', tunnit.lisää('Kuvataide', '6A', 'MM', 2, 1), 2);
|
||||||
});
|
});
|
||||||
|
|
||||||
testi('tuntien järjestys', () => {
|
testi('tuntien järjestys', () => {
|
||||||
let tunnit = new Tunnit();
|
let tunnit = new Tunnit();
|
||||||
tunnit.lisää('Historia', '5B', 'KV', 1);
|
tunnit.lisää('Historia', '5B', 'KV', 0, 1);
|
||||||
tunnit.lisää('Äidinkieli', '1B', 'AS', 3);
|
tunnit.lisää('Äidinkieli', '1B', 'AS', 1, 3);
|
||||||
assertEq('aluksi', tunnit.järjestyksessä()[0][1].nimi, 'Historia');
|
assertEq('aluksi', tunnit.järjestyksessä()[0][1].nimi, 'Historia');
|
||||||
tunnit.tunnit.get(1).nimi = 'Historia';
|
tunnit.tunnit.get(1).nimi = 'Historia';
|
||||||
assertEq('sama nimi', tunnit.järjestyksessä()[0][1].luokat.alkiot(), ['1B']);
|
assertEq('sama nimi', tunnit.järjestyksessä()[0][1].luokat.alkiot(), ['1B']);
|
||||||
|
|
Loading…
Reference in New Issue