Muuta yksi tuntiobjekti vastaamaan aina yhtä tuntia
This commit is contained in:
parent
02f456dce0
commit
350aed910d
|
@ -46,9 +46,6 @@
|
|||
#tilat > li > span {
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
#tunti-kertaa-viikossa {
|
||||
width: 3em;
|
||||
}
|
||||
.piilotettu {
|
||||
display: none;
|
||||
}
|
||||
|
@ -105,8 +102,6 @@
|
|||
<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">
|
||||
<label for="tunti-kertaa-viikossa">kertaa viikossa</label>
|
||||
<input type="submit" value="+">
|
||||
</form>
|
||||
<ul id="tunnit"></ul>
|
||||
|
|
|
@ -75,27 +75,23 @@ document.getElementById('lisää-tunti').addEventListener('submit', (tapahtuma)
|
|||
let luokkaElementti = document.getElementById('tunti-luokka');
|
||||
let opettajaElementti = document.getElementById('tunti-opettaja');
|
||||
let tilaElementti = document.getElementById('tunti-tila');
|
||||
let kertaaViikossaElementti = document.getElementById('tunti-kertaa-viikossa');
|
||||
|
||||
let nimi = nimiElementti.value;
|
||||
let luokka = luokkaElementti.value;
|
||||
let opettajaLyhenne = opettajaElementti.value;
|
||||
let tila = parseInt(tilaElementti.value);
|
||||
let kertaaViikossa = parseInt(kertaaViikossaElementti.value);
|
||||
suorita(
|
||||
tapahtumaTyypit.lisääTunti,
|
||||
nimi,
|
||||
luokka,
|
||||
opettajaLyhenne,
|
||||
tila,
|
||||
kertaaViikossa
|
||||
);
|
||||
|
||||
nimiElementti.value = '';
|
||||
luokkaElementti.value = '';
|
||||
opettajaElementti.value = '';
|
||||
tilaElementti.value = '';
|
||||
kertaaViikossaElementti.value = 1;
|
||||
|
||||
piirräKaikki();
|
||||
});
|
||||
|
@ -336,13 +332,7 @@ function luoTuntiLista() {
|
|||
let luokat = tunti.luokat.alkiot().join(', ');
|
||||
let opettajat = tunti.opettajaLyhenteet.alkiot().join(', ');
|
||||
let tunninTilat = tilojenNimet(tilat, tunti.tilat.alkiot());
|
||||
let kertaaViikossa = tunti.kertaaViikossa;
|
||||
let teksti;
|
||||
if (kertaaViikossa === 1) {
|
||||
teksti = `${nimi} ${luokat} ${opettajat} ${tunninTilat}`;
|
||||
} else {
|
||||
teksti = `${nimi} ${luokat} ${opettajat} ${tunninTilat} ×${kertaaViikossa}`;
|
||||
}
|
||||
let teksti = `${nimi} ${luokat} ${opettajat} ${tunninTilat}`;
|
||||
tuntiListassa.appendChild(document.createTextNode(teksti));
|
||||
tuntiLista.appendChild(tuntiListassa);
|
||||
}
|
||||
|
|
|
@ -121,7 +121,7 @@ function suorita(tyyppi, ...argumentit) {
|
|||
break;
|
||||
|
||||
case tapahtumaTyypit.lisääTunti:
|
||||
assertEq('lisääTunti argumentit määrä', argumentit.length, 5);
|
||||
assertEq('lisääTunti argumentit määrä', argumentit.length, 4);
|
||||
paluuarvo = tunnit.lisää(...argumentit);
|
||||
break;
|
||||
case tapahtumaTyypit.poistaTunti:
|
||||
|
@ -305,15 +305,15 @@ testi('tuntien käsittely', () => {
|
|||
assertEq('aluksi', tunnit.järjestyksessä(), []);
|
||||
|
||||
assertEq('historia',
|
||||
suorita(tapahtumaTyypit.lisääTunti, 'Historia', '5B', 'KV', 1, 1),
|
||||
suorita(tapahtumaTyypit.lisääTunti, 'Historia', '5B', 'KV', 1),
|
||||
0
|
||||
);
|
||||
assertEq('äidinkieli',
|
||||
suorita(tapahtumaTyypit.lisääTunti, 'Äidinkieli', '1A', 'AS', 0, 3),
|
||||
suorita(tapahtumaTyypit.lisääTunti, 'Äidinkieli', '1A', 'AS', 0),
|
||||
1
|
||||
);
|
||||
assertEq('kuvataide',
|
||||
suorita(tapahtumaTyypit.lisääTunti, 'Kuvataide', '5A', 'MM', 2, 1),
|
||||
suorita(tapahtumaTyypit.lisääTunti, 'Kuvataide', '5A', 'MM', 2),
|
||||
2
|
||||
);
|
||||
assertEq('lisättyä pituus', tunnit.järjestyksessä().length, 3);
|
||||
|
|
|
@ -153,12 +153,11 @@ function tilojenNimet(tilat, tilaIDt) {
|
|||
}
|
||||
|
||||
class Tunti {
|
||||
constructor(nimi, luokat, opettajaLyhenteet, tilat, kertaaViikossa) {
|
||||
constructor(nimi, luokat, opettajaLyhenteet, tilat) {
|
||||
this.nimi = nimi;
|
||||
this.luokat = new Joukko(luokat);
|
||||
this.opettajaLyhenteet = new Joukko(opettajaLyhenteet);
|
||||
this.tilat = new Joukko(tilat);
|
||||
this.kertaaViikossa = kertaaViikossa;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -166,11 +165,11 @@ class Tunnit {
|
|||
tunnit = new Map();
|
||||
#seuraavaId = 0;
|
||||
|
||||
lisää(nimi, luokka, opettajaLyhenne, tila, kertaaViikossa) {
|
||||
lisää(nimi, luokka, opettajaLyhenne, tila) {
|
||||
let id = this.#seuraavaId++;
|
||||
this.tunnit.set(
|
||||
id,
|
||||
new Tunti(nimi, [luokka], [opettajaLyhenne], [tila], kertaaViikossa)
|
||||
new Tunti(nimi, [luokka], [opettajaLyhenne], [tila])
|
||||
);
|
||||
return id;
|
||||
}
|
||||
|
@ -197,10 +196,6 @@ class Tunnit {
|
|||
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) {
|
||||
tulos = vertaa(a[1].kertaaViikossa, b[1].kertaaViikossa);
|
||||
}
|
||||
if (tulos === 0) {
|
||||
tulos = vertaa(a[0], b[0]);
|
||||
}
|
||||
|
@ -399,43 +394,39 @@ testi('tilojen nimet', () => {
|
|||
|
||||
testi('tuntien lisääminen', () => {
|
||||
let tunnit = new Tunnit();
|
||||
assertEq('historia', tunnit.lisää('Historia', '5B', 'KV', 0, 1), 0);
|
||||
assertEq('äidinkieli', tunnit.lisää('Äidinkieli', '1A', 'AS', 1, 3), 1);
|
||||
assertEq('historia', tunnit.lisää('Historia', '5B', 'KV', 0), 0);
|
||||
assertEq('äidinkieli', tunnit.lisää('Äidinkieli', '1A', 'AS', 1), 1);
|
||||
assertEq('historia nimi', tunnit.tunnit.get(0).nimi, 'Historia');
|
||||
assertEq('historia luokat', tunnit.tunnit.get(0).luokat.alkiot(), ['5B']);
|
||||
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('äidinkieli nimi', tunnit.tunnit.get(1).nimi, 'Äidinkieli');
|
||||
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 viikossa', tunnit.tunnit.get(1).kertaaViikossa, 3);
|
||||
});
|
||||
|
||||
testi('tuntien poistaminen', () => {
|
||||
let tunnit = new Tunnit();
|
||||
tunnit.lisää('Historia', '5B', 'KV', 0, 1);
|
||||
tunnit.lisää('Äidinkieli', '1B', 'AS', 1, 3);
|
||||
tunnit.lisää('Historia', '5B', 'KV', 0);
|
||||
tunnit.lisää('Äidinkieli', '1B', 'AS', 1);
|
||||
tunnit.poista(0);
|
||||
tunnit.poista(1);
|
||||
assertThrow('jo poistettu', 'ei tuntia ID:llä 1', () => {
|
||||
tunnit.poista(1);
|
||||
});
|
||||
assertEq('kuvataide', tunnit.lisää('Kuvataide', '6A', 'MM', 2, 1), 2);
|
||||
assertEq('kuvataide', tunnit.lisää('Kuvataide', '6A', 'MM', 2), 2);
|
||||
});
|
||||
|
||||
testi('tuntien järjestys', () => {
|
||||
let tunnit = new Tunnit();
|
||||
tunnit.lisää('Historia', '5B', 'KV', 0, 1);
|
||||
tunnit.lisää('Äidinkieli', '1B', 'AS', 1, 3);
|
||||
tunnit.lisää('Historia', '5B', 'KV', 0);
|
||||
tunnit.lisää('Äidinkieli', '1B', 'AS', 1);
|
||||
assertEq('aluksi', tunnit.järjestyksessä()[0][1].nimi, 'Historia');
|
||||
tunnit.tunnit.get(1).nimi = 'Historia';
|
||||
assertEq('sama nimi', tunnit.järjestyksessä()[0][1].luokat.alkiot(), ['1B']);
|
||||
tunnit.tunnit.get(0).luokat = new Joukko(['1B']);
|
||||
assertEq('sama luokka', tunnit.järjestyksessä()[0][1].opettajaLyhenteet.alkiot(), ['AS']);
|
||||
tunnit.tunnit.get(0).opettajaLyhenteet = new Joukko(['AS']);
|
||||
assertEq('sama opettaja', tunnit.järjestyksessä()[0][1].kertaaViikossa, 1);
|
||||
tunnit.tunnit.get(1).kertaaViikossa = 1;
|
||||
assertEq('yhtä monta kertaa viikossa', tunnit.järjestyksessä()[0][0], 0);
|
||||
assertEq('sama opettaja', tunnit.järjestyksessä()[0][1].tilat.alkiot(), [0]);
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue