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

Demotehtävien summan saaminen tiettyyn kenttään #1363

Open dezhidki opened 5 years ago

dezhidki commented 5 years ago

In GitLab by @vesal on Mar 17, 2019, 20:01

Miten saadaan demodokumentin pisteet demokenttään, esim d1

fields:
 - tally:total_points[2018-04-06 15:56:54, 2019-06-05 12:12:12]=tp
 - tally:T1_1p=t1
 - tally:4.total_points=d4tp
program: |!!
const x = tools.getDouble("tp");
const y = tools.getDouble("t1");
const z = tools.getDouble("d4tp");
tools.setDouble("d1", x);
!!
dezhidki commented 5 years ago

In GitLab by @Smibu on May 2, 2019, 15:20

Pistelaskupluginissa voisi esim. määritellä muuttujan, jonka alle käyttäjän pisteet tulevat saataville:

usersums: user  # tai ei ehkä konffattavissa
program: |!!
const x = tools.getDouble("user:total_points");
const y = tools.getDouble("user:T1_1p");
const z = tools.getDouble("user:4.total_points");
const a = tools.getDouble("user:4.T1_1p");
tools.setDouble("d1", x);
!!

Käytettävissä olisi myös velp_points ja muut teacher-taulukon pistesarakkeet sekä myös point_sum_rulessa määritellyt tehtäväryhmät.

Lisäksi jokin parametri jolla pystyy määrittämään aikavälin, jolla olevat otetaan laskentaan mukaan (oletus = kaikki).

dezhidki commented 5 years ago

In GitLab by @vesal on May 2, 2019, 20:33

fields:
  - "user:total_points=tp"
  - "user:T1_1p=t1"
  - "user:4.total_points=d4tp"
program: |!!
const x = tools.getDouble("tp");
const y = tools.getDouble("t1");
const z = tools.getDouble("d4tp");
tools.setDouble("d1", x);
!!
dezhidki commented 5 years ago

In GitLab by @Smibu on Aug 28, 2019, 13:07

tuosta taitaa jopa puuttua se tuosta suuniteltujen syntaksien joukosta että tuo tieto haetaan toisesta dokusta kuten ehkä yleensä tapahtuu.

Mutta eikös tuo:

"user:4.total_points=d4tp"

hakisi toisesta dokumentista (jonka id on 4)?

dezhidki commented 5 years ago

In GitLab by @vesal on Aug 28, 2019, 13:14

Tuosta TIM-sivu, jonne mahdolliset syntaksimuutokset ja se, miten vieraasta dokusta haetaan tuo tieto:

https://tim.jyu.fi/view/tim/ohjeita/lomakkeiden-luominen#userpoints

Joo, sorry, oli tuolla se 4. En vain huomannut, kun ei ole enää noin lyhkäisiä id missään. Vaihdan esimerkkiin pidemmän.

dezhidki commented 5 years ago

In GitLab by @Smibu on Aug 29, 2019, 11:30

@vesal @vivanauk @sijualle Järjestelin masterissa muutamaa tiedostoa uusiksi kehäimporttien takia. Eli kannattaa pullata/päivittää omat haarat ajan tasalle.

dezhidki commented 5 years ago

In GitLab by @Smibu on Aug 29, 2019, 16:51

Syntaksi, jos haluaa antaa vain toisen aikaleimarajan? Olisiko:

user:total_points[2018-04-06 15:56:54, *]=a (ei loppurajaa)
user:total_points[*, 2019-06-05 12:12:12]=b (ei alkurajaa)
dezhidki commented 5 years ago

In GitLab by @vesal on Aug 29, 2019, 19:17

Syntaksi, jos haluaa antaa vain toisen aikaleimarajan? Olisiko:

Entä ihan:

  user:total_points[2018-04-06 15:56:54,]=a (ei loppurajaa)
  user:total_points[, 2019-06-05 12:12:12]=b (ei alkurajaa)

mutta jos haluaa, niin tuo toinen voi olla vaihtoehto. Mutta eikäs tämä olisi enemmän kuten pyhtonin s[:3] tai s[3:]

dezhidki commented 5 years ago

In GitLab by @Smibu on Aug 29, 2019, 20:06

Joo, tuo tähdetön versio oli se toinen, mikä tuli mieleen. Sovitaan se.

Sitten tuo user:-prefix on huono, koska tavallisetkin kentät liittyvät käyttäjään.

Mieleen tulleita vaihtoehtoja:

Suosisin tallya, joka tarkoittaa pistelaskua. Ja juuri siitähän siinä on kyse.

dezhidki commented 5 years ago

In GitLab by @vesal on Aug 29, 2019, 20:19

  • tally:

Käynee sekin. En tosin ehkä muista, mutta jos se on dokumentoitu. Ei tuo sum: ole paha, jos se nimenoaman summan noista laskeen

Mikäs on sittenm ulle sujuvin keino laskea kaikkien summa ja eriskeen sitten tähtitehtävien summa. Voinko käyttää niitä nimettyjä (summa)juttuja tuohon. Tosin tähtitehtäviä on niiä vähän, että niiden summan erikseen saa ihan tavallisen fieldien summana tarvittaessa.

dezhidki commented 5 years ago

In GitLab by @Smibu on Aug 29, 2019, 20:27

Se voi mennä helpoiten normifieldeillä, jos niitä gurutehtäviä on vain pari per demokerta.

Toinen tapa olisi laittaa sinne demoon point_sum_rule, jonka groupseissa erottaa normi- ja gurutehtävät. Sitten jsrunnerissa käyttäisi tally:guru=gurupoints (jos groupin nimi on guru).

dezhidki commented 5 years ago

In GitLab by @Smibu on Aug 29, 2019, 20:45

Edellisessä guru -> tahti.

dezhidki commented 5 years ago

In GitLab by @vesal on Aug 29, 2019, 20:45

Toinen tapa olisi laittaa sinne demoon point_sum_rule, jonka groupseissa erottaa normi- ja gurutehtävät. Sitten jsrunnerissa käyttäisi tally:guru=gurupoints (jos groupin nimi on guru).

Saakos ne alueet overlapata. Eli normiin ottaa * ja tähtitehtäviin nimella ne jotka siihen kuuluu?

dezhidki commented 5 years ago

In GitLab by @Smibu on Aug 30, 2019, 09:56

Saakos ne alueet overlapata. Eli normiin ottaa * ja tähtitehtäviin nimella ne jotka siihen kuuluu?

Saa, mutta silloin ei voi käyttää total_pointsia, koska siihen tulee overlappaavien pisteet tuplana (ellei siitä muista miinustaa overlappaavaa osaa). Mutta sen "kaikki"-groupin summaa toki voi.

Noita lainausmerkkejä ei tarvikaan. Ainoastaan jos : jälkeen olisi välilyönti, niin tarviisi. Päivitin kortin.

dezhidki commented 5 years ago

In GitLab by @vesal on Aug 30, 2019, 11:03

  Saakos ne alueet overlapata. Eli normiin ottaa * ja tähtitehtäviin nimella ne jotka siihen kuuluu?

Saa, mutta silloin ei voi käyttää total_pointsia, koska siihen tulee overlappaavien pisteet tuplana (ellei siitä muista miinustaa overlappaavaa osaa). Mutta sen "kaikki"-groupin summaa toki voi.

Siis mää haluisin kaken summan ja sitten eriksene mainita että muuten sulla ei ole tähtitehtävistä kuin 1.65p ja pitäis olla 2p.

dezhidki commented 5 years ago

In GitLab by @Smibu on Aug 30, 2019, 11:23

Siis mää haluisin kaken summan ja sitten eriksene mainita että muuten sulla ei ole tähtitehtävistä kuin 1.65p ja pitäis olla 2p.

Jep; onnistuu kuten edellä kuvailin.

dezhidki commented 5 years ago

In GitLab by @Smibu on Aug 30, 2019, 14:37

Haluttiinkos, että nuo aikaleimat tulkitaan lokaalina vai UTC:nä? Kenties lokaalina?

dezhidki commented 5 years ago

In GitLab by @Smibu on Aug 30, 2019, 16:48

Laitoin tuotantoon.

dezhidki commented 5 years ago

In GitLab by @vesal on Aug 31, 2019, 08:51

Vaikuttaisi toimivan :-)

Tuo date-rajoite muihin kenttiin ei taida vielä kelvata:

https://tim.jyu.fi/view/tim/ohjeita/lomakkeiden-luominen#date

Entä saisiko tally-muodolla haettua kaikkien (rajoitteiden ehkä raajaamana) kenttien kaikki tiedot. Eli käytännössä jokaista useria kohti taulukollisen hänen answer-taulun rivejään. Tai lisäksi niin, että voi rajat että rivistä otetaan vain esim answered on. Vai pitäisikö tälle olla oma syntaksi? Tarve on esim jos haluaa piirtää graafeja, jossa on mihinkä aikaa tehtäviä on tehty.

dezhidki commented 5 years ago

In GitLab by @Smibu on Sep 2, 2019, 09:21

Tuo date-rajoite muihin kenttiin ei taida vielä kelvata:

Joo, se toimii vain tallyille.

Vai pitäisikö tälle olla oma syntaksi?

Minusta oma syntaksi (ehkä allanswers:), koska se on jo eri asiaa kuin pistelasku.

dezhidki commented 5 years ago

In GitLab by @vesal on Sep 2, 2019, 11:09

Minusta oma syntaksi (ehkä allanswers:), koska se on jo eri asiaa kuin pistelasku.

Tuossa pitäisi sitten varmaan pvm toimia että saa rajoittaa. Ja mitenkähän syntaksissa sanoisi, että sieltä tarvitaan vaan tätä ja tätä (esim pelkkä pvm ja pisteet tms, koska content voi joskus olla tarpeeton ja tuottaa hirveän tiedonsiirtomäärän). Lisäksi voisi olla tapa sanoa, että n viimeisintä yritystä (jos yhtään vaikea, niin edes se, että kaikki tai vain viimeisin kustakin). Kenttänimille voisi myös harkita regexpiä, jolla saisi periaatteessa turhat kentät pois.

dezhidki commented 5 years ago

In GitLab by @vesal on Sep 2, 2019, 23:49

Jos esim tuon:

https://tim.jyu.fi/view/tim/ohjeita/goaltable

taulukon datan haluaisin graafiksi, pitäisi saada laskentafunktioon käyttöön tuon plugin YAML (tai JSON oikeastaan), jotta voisin ottaa sarakeotsikot noista riveistä. Eli tarviisi sillekin syntaksin ja toteutuksen.

Olisiko syntaksi jotakin tyyliin:

 json:12342.goaltable1=gt

ja sen arvon saa sitten pyydettyä tools.getValue("gt")

dezhidki commented 5 years ago

In GitLab by @vesal on Sep 5, 2019, 20:18

Ari halusi, että saisi myös laskennan viimeksi käytettyjä aikoja.

Laskentafunktio tallentaisi ajan johonkin kenttään ja sitten kun haetaan seruaavan kerran (toiselta) sivulta kentistä tietoa, niin käyttäisi tuon kentän aikaa rajaamaan haun alkupäivämäärää. Kaipa tuon voisi manuaalisestikin asettaa

Ainoa että sitä ei kai voi helposti asettaa kentälle muuttujana, eli alla tuo ensimmäinen aika-parametri saataisiin jonkin toisen kentän arvosta...

fields:

  • tally:total_points[2018-04-06 15:26:14, 2019-06-05 12:12:12]=tp

En ole varma, ratkaiseeko tämä sun ongelman, sillä jos aikaa rajataan, se käyttää tallyn laskemiseen vaan tuota aikaväliä ja ne, joilla tiedot eivät ole muuttuneet, saavat 0p tallyyn ja erityisesti ne, joilla on yksi tehtävä muuttunut aikavälillä saavat vain sen pistemäärän (eikä sitä mitä oli ennestään kasattuna). Eli on tämä hieman monimutkaisempi. Ja rajoitin on erilainen kuin tuo nykyinen rajoitin, koska pitäisi voida sanoa että antaa nilltä, joilla on ajanhetken X jälkeen joku yksikin muutos. Ja sitten laskentafunktioissa ne, joilta ei löydy mitään muutoksia, pitää jättää rauhaan.

En tiedä kuinka paha on tuollainen rajausesto.

dezhidki commented 5 years ago

In GitLab by @vesal on Sep 22, 2019, 19:19

Invalid tally format on välillä haastava nähdä että miksi. Voisi olla että kertoisi tarekmmin vian jos se on selvitetty. Jos ei ole helppoa, niin tyypillisiä vikoja ovat:

dezhidki commented 3 years ago

In GitLab by @Smibu on Jun 30, 2021, 18:09

unassigned @Smibu