TIM-JYU / TIM

TIM (The Interactive Material) is an open-source cloud-based platform for creating interactive learning documents.
https://tim.education/view/about/en-US
MIT License
14 stars 4 forks source link

TableForm: Yksinkertainen esiprosessointi kentille fields-listassa #3729

Open dezhidki opened 1 month ago

dezhidki commented 1 month ago

Vesan viestistä:

Mutta tuollaisella voisi olla käyttöä muuallakin että ihminen saa vastata monta kertaa.

Mitäpä jos jotenkin fieldien kohdalla saisi sanota että yhdistetään sarakkeita, esim tyyliin:

fields:
   - tt11+tt12+tt13+tt14=Lähi
   - tt21+tt22+tt23+tt24=Etä

ja tuo tarkoittaisi sitä, että kannasta haetaan tt11,tt12 jne vastaukset ja laitetaan vastaavsti sarakkeisiin Lähi ja Etä ja näistä voi tulla esim Vesaa varten yksi rivi. Sitten haetaan nuo toiset tt12,tt22 jne ja taas sarakkeisiin Lähi ja Etä ja sillon Vesasta voi tulla toinen rivi jne...

Nykyisellään muutenkin tällaiset "yksinkertaiset" kenttien esiprosessoinnit joudutaan tekemään JSRunnerissa ja luomaan sen kautta uusia kenttiä. Edistyneelle käyttäjälle olisi helpompaa, jos TableFormin fields-kenttään voisi kirjoittaa jotain yksinkertaisia lausekkeita ja saada niistä automaattisesti sarakkeita.

Yllä oleva Vesan käyttötapaus on eräs esimerkki "yksinkertaisesta" lausekkeesta, eli kenttien arvojen yhdistäminen. Jos yleisesti olisi mahdollisuus kirjoittaa jotakin mallia (esimerkkisyntaksi, ei lopullinen; käytännössä pitäisi kelvata mikä vaan kunhan ei ole ristiriidassa tavallisen syntaksin kanssa).

fields:
   - ${average(t1, t2, t3, t4)}=Keskiarvo

niin voisi joitakin taulukon datan prosessointiin tarkoitettuja JSRunnereita yksinkertaisesti poistaa. Vastaavasti esim. SUKOLin kokeessa ei silloin tarvitsisi "Virkistä oppilaiden pisteet" -painiketta, vaan silloin pisteet saisi laskettua suoraan taulukkoon.

vesal commented 1 month ago

Tuo + ei ehkä ollutkaan hyvin valittu. Nimittäin ei ole tarkoitus laskea yhteen noita kenttiä vaan tuottaa uusia rivejä niin että Vesa esiintyisi siellä yhtä monta kertaa kun on vastannut noihin "alikenttiin" ELi jos Vesa olisi vastannut noihin

     tt11 = 3
     tt12 = 5
     tt21 = 9
     tt22 = 99

niin TabelFormsiin tulisi

    Nimi     Lähi   Etä
    Vesa     3        9
    Vesa     5        99

ja vastaavasti vielä enemmän rivejä jos Vesa olisi vastannut vielä useampaan alikenttään.

Eli tämä on monimutkaisempi kuin sinällään hyödyllinen ${average(...)} yms Excelmäiset funktiot.