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

2 git multiupload - [merged] #2753

Closed dezhidki closed 2 years ago

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 19, 2020, 19:46

_Merges 2-gitmultiupload -> master

Lisää git ja useamman tiedoston upload -toiminnot csPluginiin.

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 19, 2020, 19:49

Tein tämän jo valmiiksi kyssäriä varten: meillä on useamman tiedoston palautukset toteutettu jsonina eli usercodeen tallennetaan json, jonka sisällä kaikki tiedostot on. Tehdäänkö samalla tavalla vai onko jotain muuta ideaa? Jos tehdään näin, päivitetäänkö koko kanta json muotoon vai lisätäänkö jonkinlainen multifile flag palautuksen yhteyteen?

dezhidki commented 4 years ago

In GitLab by @Smibu on Jun 22, 2020, 10:28

Tein tämän jo valmiiksi kyssäriä varten: meillä on useamman tiedoston palautukset toteutettu jsonina eli usercodeen tallennetaan json, jonka sisällä kaikki tiedostot on. Tehdäänkö samalla tavalla vai onko jotain muuta ideaa? Jos tehdään näin, päivitetäänkö koko kanta json muotoon vai lisätäänkö jonkinlainen multifile flag palautuksen yhteyteen?

Mielestäni usercoden pitäisi säilyä string-tyyppisenä, eli sen sisälle ei kannattaisi yrittää laittaa muuta.

Koska voi olla myös esim. avaimet userinput ja userargs, niin olisiko kenties joku multicontent, joka olisi taulukko tms. näistä, eli vaikka tyyliin:

[{usercode: "aaa"}, {usercode: "bbb", userinput: "ccc"}, ...]

Mitä mieltä @vesal ?

dezhidki commented 4 years ago

In GitLab by @vesal on Jun 22, 2020, 10:35

en tiedä kannattaako samaa dataa toistaa, mutta toki voi tehdä uuden tyypin jota tietty language osaa lukea

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 26, 2020, 17:07

added 151 commits

Compare with previous version

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 15:05

added 42 commits

Compare with previous version

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 15:08

Kävi nyt niin, että siirtäessä editoria erilliseksi angular 10 komponentiksi, helpotti hommaa muuttaa myös csPlugin, joten tein niin. Se käyttää vielä joitain angularJS ominaisuuksia, jotka pitää sitten myöhemmin poistaa.

Mikä tuon cssPrint muuttujan tarkoitus on? Voiko sen jättää pois?

Yritän nopeasti saada vielä multifile-ominaisuuden pushattua.

dezhidki commented 4 years ago

In GitLab by @vesal on Jun 29, 2020, 15:15

Nyt tuli ongelmia!

language tarvitsee TTYpe ja TTYpe tarvitsee language.

Tuolla language.py on pari virhettä. Js tuo XML:än kohdalla oleva virhe tarviisi että voi käyttää TTYpe.

Sitten puuttuu print_exc()

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 15:16

Glowscripteista tulee 404-erroreita ja valittaa puuttuvasta jquerystä ($). En edes löydä näitä glowscript tiedostoja serveriltä.

dezhidki commented 4 years ago

In GitLab by @vesal on Jun 29, 2020, 15:16

Mikä tuon cssPrint muuttujan tarkoitus on? Voiko sen jättää pois?

En osaa äkkiä sanoa voiko, mutta tuollahan on se selaimen kautta printtaaminen ja varmaan tuo cssPrint tekee säätöjä jotta printtaus saadaan toimimaan

dezhidki commented 4 years ago

In GitLab by @vesal on Jun 29, 2020, 15:18

Glowscripteista tulee 404-erroreita ja valittaa puuttuvasta jquerystä ($). En edes löydä näitä glowscript tiedostoja serveriltä.

Mulla on tuollainen:

E:\tim\timApp\modules\cs\static\glowscript

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 15:29

Pitäisi nyt olla korjattu

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 15:31

Mulla ei ole tälläisiä ollenkaan. Tuo kansio on jostain syystä .gitignoressa.

dezhidki commented 4 years ago

In GitLab by @vesal on Jun 29, 2020, 15:32

Mulla ei ole tälläisiä ollenkaan. Tuo kansio on jostain syystä .gitignoressa.

Saatko haettua ssh:lla jostakin otimivasta TIMistä?

dezhidki commented 4 years ago

In GitLab by @Smibu on Jun 29, 2020, 15:33

Siis eikö csplugin hae tuon glowscriptin aina sen käynnistyksen yhteydessä? Sen siis kuuluukin olla gitignoressa, ettei sitä laiteta meidän gittiin vahingossa.

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 15:39

Ahaa. Tässä on sellainen juttu, että startPlugins.sh hakee sen, mutta olen käyttänyt csPluginia dev-moodissa, joten kyseistä skriptiä ei ole ajettu.

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 15:41

Eikö se kannattaisi mielummin laittaa submoduleksi?

dezhidki commented 4 years ago

In GitLab by @Smibu on Jun 29, 2020, 15:53

Mahdollisesti joo. En tiedä, miksi Vesa sen on aikoinaan tehnyt noin.

dezhidki commented 4 years ago

In GitLab by @vesal on Jun 29, 2020, 16:17

Mahdollisesti joo. En tiedä, miksi Vesa sen on aikoinaan tehnyt noin.

Koska en ymmärrä submoduleista mitään :-)

dezhidki commented 4 years ago

In GitLab by @Smibu on Jun 29, 2020, 16:35

Commented on timApp/modules/cs/js/csPlugin.ts line 373

Tee tuosta uploadistakin komponentti samalla, jotta tämän templaten saa kokonaan staattiseksi.

dezhidki commented 4 years ago

In GitLab by @vesal on Jun 29, 2020, 16:36

  • 90edf586 - csPlugin: update etxcheck.ts to angular 10
  • b525fe09 - csPlugin: add normal editor component
  • 470c3dcd - csPlugin: add ace editor component
  • 9d4dc748 - csPlugin: add parsons editor component
  • 03ab400b - csPlugin: add editor component and module
  • 099cfd26 - csPlugin: switch to using editor module

Tämä on fiksu refaltorointi joka olisi pitänyt tehdä jo vuosia sitten :-)

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 16:40

Tauno on vielä vähän oma juttunsa. Mielestäni se kannattaisi integroida suoraan omaksi editoriksi, eikä käyttää copyTaunoa. En sitä muutosta kuitenkaan ala tässä tekemään, kun ei ole kriittistä.

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 16:41

Commented on timApp/modules/cs/js/csPlugin.ts line 373

Heitän suoraan takaisin sinne templateen tekstinä. Tuota templatea kannattaa varmaan tulevaisuudessa rikkoa useammaksi erilliseksi komponintiksi.

dezhidki commented 4 years ago

In GitLab by @Smibu on Jun 29, 2020, 16:43

Commented on timApp/modules/cs/js/csPlugin.ts line 2895

Typo Wesceme

dezhidki commented 4 years ago

In GitLab by @Smibu on Jun 29, 2020, 16:43

Commented on timApp/modules/cs/js/csPlugin.ts line 3179

Tuota ei taida nykyään enää tarvita; se oli joku vanhemman PyCharmin bugi, että se piti olla.

dezhidki commented 4 years ago

In GitLab by @Smibu on Jun 29, 2020, 16:43

Commented on timApp/modules/cs/js/editor/module.ts line 11

Tuota ei taida nykyään enää tarvita; se oli joku vanhemman PyCharmin bugi, että se piti olla.

dezhidki commented 4 years ago

In GitLab by @Smibu on Jun 29, 2020, 16:43

Commented on timApp/modules/cs/js/language_error.ts line 39

Tuota ei taida nykyään enää tarvita; se oli joku vanhemman PyCharmin bugi, että se piti olla.

dezhidki commented 4 years ago

In GitLab by @Smibu on Jun 29, 2020, 16:43

Commented on timApp/modules/cs/js/extcheck.ts line 262

Tuota ei taida nykyään enää tarvita; se oli joku vanhemman PyCharmin bugi, että se piti olla.

dezhidki commented 4 years ago

In GitLab by @vesal on Jun 29, 2020, 16:45

Tauno on vielä vähän oma juttunsa. Mielestäni se kannattaisi integroida suoraan omaksi editoriksi, eikä käyttää copyTaunoa. En sitä muutosta kuitenkaan ala tässä tekemään, kun ei ole kriittistä.

Peruskäytössähän se ei edes tarvitse copyTaunoa käyttäjän perspektiivisti sillä jos ei ole koodiin käisn koskenut, se hatetaan Taunosta automaattisesti. Tauno on Jonne Itkonen tuote ja hän haluaa käyttää sitä muuallakin, siki integraatiota ei ole tehty tiukemmaksi vaikka ehkä tosiaan kannattaisi. Kuitenkin vaikka intgegraatio olisi tiukempi, tarvitaan samat TIMin editorit, sillä monessa demotehtävässä ideanan on aloittaa Taunolla ja sitten jatkaa käsin (esim muuttamalla koodi silmukaksi). Mutta jos tuon saa helposti niin, että siihen liittää tuon nykyisen editorisysteemin, niin hyvä. Ominpäin Tauno ei saa enää muuttaa koodia sen jälkeen kun sitä on käsin korjattu. Eli joka tapauksessa tuollainen copyTauno tarvitaan.

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 16:49

Commented on timApp/modules/cs/js/csPlugin.ts line 3179

Olinkin nämä jo lokaalisti poistanut

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 16:51

Periaatteessa voisi tehdä uuden editorin, joka osaa katsoa diffiä, jolloin tauno voi automaattisesti muuttaa koodia, ja samalla muutokset pysyy.

dezhidki commented 4 years ago

In GitLab by @vesal on Jun 29, 2020, 16:52

Commented on timApp/modules/cs/js/csPlugin.ts line 373

Heitän suoraan takaisin sinne templateen tekstinä. Tuota templatea kannattaa varmaan tulevaisuudessa rikkoa useammaksi erilliseksi komponintiksi.

Joissakin tapauksissa voisi jopa olla järkevämpää että templateja on useita tai koko csplugin.ts olisi enemmän languagen tapaan kantaluokka ja siitä perittyjä ominaisuuksia. Nyt iffien määrä (itse olen tehnyt) on niin suuri ettei tiedä edes mitä sinne on tehty ja miksi.

Eli voisi olla erikseen rehelliset peruskielet joissa riittää muokata ja painaa Aja. Sitten tästä ehkä peritty ne joille toimii ComTest, ja sitten ne joille voi tehdä doc (toin miten "moniperintä" hoidettaisiin). Saattaisin sopia paremmin siihden modifier-malliinkin.

Sitten erilliset "rönsyt" kuten Tauno yms voisivat lähteä enemmän kantaluokasta.

Nyt siinö templatessa on tosiaan nini paljon kamaa että sen aukilaskeminen satojen pluginien tapauksessa on hidasta. Auttaisi jos pääsisi templatessa enemmän "staattiseen" malliin missä Pyhton on jo tuottanut mahdollisimman kelpoista tavaraa. Tosin tuota nopeushyötyä pitäisi ensin kokeilla ennen turhaa työtä.

dezhidki commented 4 years ago

In GitLab by @vesal on Jun 29, 2020, 16:59

Periaatteessa voisi tehdä uuden editorin, joka osaa katsoa diffiä, jolloin tauno voi automaattisesti muuttaa koodia, ja samalla muutokset pysyy.

Hieman epäilen sen mahdollisuuksia jos on ensin Taunolla tuotettua koodia

t[0] = 10; t[1] = 11; t[2] = 12;

ja sitten opiskelijan pitää osata muuttaa tämä muotoon:

i = 0; t[i] = i+10; i++; t[i] = i+10; i++; t[i] = i+10; i++;

ja lopuksi tietysti:

for (int t=0; i<t.length; i++) t[i] = i+10;

Eli pitäisin nykyistä ihan riittävänä siihentarkoitukseen mihin tuo on tehty (eli opettamaan miltä taulukon käytön syntaksi näyttää ja saamaan huomaamaan että silmukoilla asiat voivat lyhentyä kunhan ensin älyää että tarvitaan älykkäämpää kuin se Taunon tuottama koodi)

Ennemminkin tärkeää olisi, että Tauno osaisi tuottaa valittua ohj kieltä. (suomi/pseudo, Java, C#, C++, Pyhton).

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 17:02

Commented on timApp/modules/cs/js/csPlugin.ts line 373

Joissakin tapauksissa voisi jopa olla järkevämpää että templateja on useita tai koko csplugin.ts olisi enemmän languagen tapaan kantaluokka ja siitä perittyjä ominaisuuksia. Nyt iffien määrä (itse olen tehnyt) on niin suuri ettei tiedä edes mitä sinne on tehty ja miksi.

Juuri tämän vuoksi templaten hajottaminen erillisiksi komponenteiksi olisi hyvä. Jos nyt laittaa kaikille runnereille omat templatet, joutuisi muutokset tekemään useampaan templateen. Komponentit vähentäisi tätä.

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 17:05

Hieman epäilen sen mahdollisuuksia jos on ensin Taunolla tuotettua koodia t[0] = 10; t[1] = 11; t[2] = 12; ja sitten opiskelijan pitää osata muuttaa tämä muotoon: i = 0; t[i] = i+10; i++; t[i] = i+10; i++; t[i] = i+10; i++; ja lopuksi tietysti: for (int t=0; i<t.length; i++) t[i] = i+10;

Tässähän editorin pitäisi tajuta, että t[0] = 10;t[1] = 11;t[2] = 12; on poistettu eikä sitä laiteta takaisin. Jos siihen taas tekee taunossa muutoksen, laitetaan muutokset mukaan editoriin. Mielestäni tämä olisi aika järkevää.

Ei tämä tietenkään ole kovin tärkeää, koska ei taunoa varmaan paljoa edes käytetä.

dezhidki commented 4 years ago

In GitLab by @vesal on Jun 29, 2020, 17:17

Ei tämä tietenkään ole kovin tärkeää, koska ei taunoa varmaan paljoa edes käytetä.

Kyllä mää käytän sitä tosi paljon omilla kursseillani. Joka viikko onm vähintään 2 demoa, jossa sitä pitää käyttää. Mutta tosiaan tarkoitus on toimia manuaalisesta ja kirjoittaa sitä pohjaa, jota sitten pitää itse oppia korjaamaan ja jatkossa tuottamaan itse. Mutta ainoat itse tarvitsemani kehitystarpeet ovat oikeasti Taunon puolella että siellä voisi hieman pakittaa (undo on olemassa Jonnen haarassa, mutta se on niin kaukana TIMissä käytetystä, että ei ole ehtinyt koskaan mergeämään).

Ja opiskelijan perspektiivistä tavoite on päästä Taunosta eroon, eli heti kun itse kykenee kirjoittamaan oikean koodin, niin sen aa tehdä. Tuo tuntuu tarpeettomalta niille jotka ovat syntyneet koodi korvienvälissä, mutta suurelle osalle tavallisia tumpeloita taulukko on oikeasti tosi vaikea ja nykyisin kun ruutupaperia ja kynää ei saa kouraan millään, niin käytännössä välttämätön että saadaan kaikki mukaan.

Ensin mennään tuolla perustaunolla ja sitten otetaan indeksi siihen mukaan (eli mitään ei voi siirtää jos ei oel vastaavaa indeksimuuttujaa).

Moni ei ole vielä tajunnut Taunon hyötyä :-)

dezhidki commented 4 years ago

In GitLab by @Smibu on Jun 29, 2020, 20:23

Commented on timApp/modules/cs/js/csPlugin.ts line 3078

Isohko ongelma: Nyt havaitsin, että tämä "monta erinimistä komponenttia mutta sama template" kasvattaa uudella Angularilla production-tilassa JavaScriptin koon moninkertaiseksi.

Jos skriptit kääntää production-tilassa, siis komennolla

npm run b

ja hakemistossa timApp\static\scripts\build\en-US greppaa

rg "Choose linelength for text" --stats

niin tuon haetun merkkijonon olettaisi esiintyvän siellä vain 2 kertaa, koska koodissakin se on 2 kertaa, mutta käytännössä se esiintyykin 13 kertaa:

13 matches
2 matched lines
2 files contained matches
547 files searched
325660 bytes printed
21898152 bytes searched
0.119422 seconds spent searching
0.285280 seconds

Siis tuo koko iso cspluginin käännetty template esiintyy siellä 12 kertaa.

Tuo pitäisi muuttaa niin, että kaikilla komponenteilla, joilla on sama template, on myös sama selektori.

Silloin se runnertyyppitieto (se mitä siellä get kind()-propertyssä katsotaan) pitäisi antaa muuta kautta; loogisin lienee tyyliin attrsall.kind.

Ja silloin sen templatestringin voi siirtää suoraan luokan yhteyteen, jolloin myös PyCharm tajuaa, että se template liittyy siihen luokkaan. Nyt se ei näköjään osaa sen kummemmin analysoida sitä, eikä Ctrl+click toimi jne.

dezhidki commented 4 years ago

In GitLab by @lainets on Jun 29, 2020, 20:50

Commented on timApp/modules/cs/js/csPlugin.ts line 3078

Korjaantuukohan ongelma, jos templaten laittaa erilliseen tiedostoon ja käyttää templateUrlia? Edit: mukavasti myös lyhentäisi csPlugin.ts-tiedostoa

dezhidki commented 4 years ago

In GitLab by @Smibu on Jun 29, 2020, 20:51

Commented on timApp/modules/cs/js/csPlugin.ts line 3078

Veikkaisin, että Angular kääntää ja inlinettää sen lopulta samalla tavalla... mutta voithan toki kokeilla, auttaako.

dezhidki commented 4 years ago

In GitLab by @vesal on Jun 30, 2020, 09:52

Commented on timApp/modules/cs/js/csPlugin.ts line 3078

Isohko ongelma: Nyt havaitsin, että tämä "monta erinimistä komponenttia mutta sama template" kasvattaa uudella Angularilla production-tilassa JavaScriptin koon moninkertaiseksi.

Vaikuttaako tämä tuotannossa vai "vain" jossakin haarassa.

Tuleeko siis vain templatet monta kertaa vai myös kaikki JavaScriptit?

dezhidki commented 4 years ago

In GitLab by @Smibu on Jun 30, 2020, 10:02

Commented on timApp/modules/cs/js/csPlugin.ts line 3078

Koskee vain tätä haaraa, koska tuotannossa ei tällaista tilannetta esiinny missään.

Vain templatet. Jos etsii jotakin vain luokan metodeissa esiintyvää tekstiä, kuten vaikka Copy the code you made by Tauno, niin sitä on vain 1 kpl kuten pitääkin.

dezhidki commented 4 years ago

In GitLab by @lainets on Jul 8, 2020, 21:40

Commented on timApp/modules/cs/js/csPlugin.ts line 373

changed this line in version 2 of the diff

dezhidki commented 4 years ago

In GitLab by @lainets on Jul 8, 2020, 21:40

Commented on timApp/modules/cs/js/csPlugin.ts line 2895

changed this line in version 2 of the diff

dezhidki commented 4 years ago

In GitLab by @lainets on Jul 8, 2020, 21:40

Commented on timApp/modules/cs/js/csPlugin.ts line 3179

changed this line in version 2 of the diff

dezhidki commented 4 years ago

In GitLab by @lainets on Jul 8, 2020, 21:40

Commented on timApp/modules/cs/js/editor/module.ts line 11

changed this line in version 2 of the diff

dezhidki commented 4 years ago

In GitLab by @lainets on Jul 8, 2020, 21:40

Commented on timApp/modules/cs/js/language_error.ts line 39

changed this line in version 2 of the diff

dezhidki commented 4 years ago

In GitLab by @lainets on Jul 8, 2020, 21:40

Commented on timApp/modules/cs/js/extcheck.ts line 262

changed this line in version 2 of the diff

dezhidki commented 4 years ago

In GitLab by @lainets on Jul 8, 2020, 21:40

Commented on timApp/modules/cs/js/csPlugin.ts line 3078

changed this line in version 2 of the diff

dezhidki commented 4 years ago

In GitLab by @lainets on Jul 8, 2020, 21:40

added 33 commits

Compare with previous version

dezhidki commented 4 years ago

In GitLab by @lainets on Jul 8, 2020, 21:46

Nyt olis aikalailla useamman tiedoston palautukset kunnossa. Jonkinverran kokeilin nuita ja vaikuttaa toimivan. cssPrint ei vielä tee mitään, joten tutkin vielä sitä, ja lisäksi git ominaisuus vielä puuttuu. Teen nämä lisäykset, ja sen jälkeen, Mikan tullessa lomalta, voidaan tutkita tarkemmin.

dezhidki commented 4 years ago

In GitLab by @lainets on Jul 8, 2020, 21:46

Commented on timApp/modules/cs/js/csPlugin.ts line 3078

Pitäis olla korjattuna nyt.