Closed JanPokorny closed 6 years ago
Byla o tom jednou diskuze a uzavřelo se to s tím, že to není potřeba. Navrhuji to dát jako option každého modulu do module.json
.
Resetovací tlačítko na původní kód tam stejně už je, takže nevidím důvod, proč by to nemělo být zapnuto jako default. Ale máš pravdu s tím, že to ve většině use-cases není potřeba.
Osobně mi přijde neresetování kódu při odevzdání jako dobrý nápad a rozhodně jako očekávané chování. Takže než to dělat optional (podle nastavení module.json), tak jsem určitě za to, to už rovnou zapnout jako default.
A má se načíst poslední odevzdaný kód když třeba otevřu úlohu po půl roce?
To mi přijde celkem jedno. Nebo by to mohlo být matoucí? Pokud jo, tak bych tu hranici, kdy se ještě načte předchozí kód, nastavil klidně nízkou (třeba 1 den), protože ten zajímavý případ je podle mě ten, kdy to úspěšně odevzdám a chci ten svůj kód vidět hned vzápětí.
Podle mě to matoucí nebude. Nedělal bych to složitější, a prostě načetl poslední funkční kód: zmáčknout "Reset" může uživatel vždycky.
Podle mě to dává smysl aby se načetl odevzdaný kód, klidně i po půl roce, potenciální matení bych spíš řešil tím, že by se pod tím kódem mohl objevit řádek s něčím jako "byl načten poslední odevzdaný kód, pokud chcete začít řešit znovu, klikněte na "reset"".
Implementováno na backendu. @BorysekOndrej Je potřeba to implementovat na frontend, velká většina je hotová, načítá to teď předchozí kód a dokonce po kliku na Obnovit výchozí kód je obnoven úplně původní kód. Navrhuji ještě zobrazit zprávu o tom, že byl načten kód z předchozího odevzdání/spouštění.
Nově odesílám při požadavku na endpoint taskDetails
u modulu i:
last_source
= ("evaluation", "execution")
- jestli byl načtený kód z odevzdání nebo spouštěnílast_datetime
: čas spouštění/odevzdání, ze kterého byl načtený kódNavrhuji tento postup: pokud ti dojde last_datetime
, zobraz hlášku: Byl načten kód z odevzdání/spuštění ze 13. 1. 1922 17:09, pro obnovení původního kód stiskněte tlačítko Obnovit výchozí kód.
(Zatím funguje jen na kyzikosu)
Pozor na to, že čas je v UTC a je třeba provádět zobrazení dle nastavení prohlížeče (osvědčil se mi na to moment.js
, který už v emberu je)
Právě jsem to vložil do frontendu, jen mi z pohledu řešitele není jasné, čím se řídí, zda se kód uloží. Je to nyní pouze při úspěšném odevzdání? Pokud jo, vložil bych to pak do nápovědy.
Nacita to posledni uspesne odevzdany kod, pokud takovy neni, tak posledni spusteni nebo odevzdani.
Pokud uživatel úspěšně odevzdá programovací úlohu, po kliknutí na "znovu odevzdat" se editační pole resetuje do původního stavu. Uživatel tak může přijít o svůj kód. Vzhledem k tomu, že se odevzdávání stejně ukládají, dávalo by smysl pole předvyplnit minule odevzdaným kódem.