Vylepšení hodnotítka fix #1354 fix #1237 #20

Merged
zelvuska merged 25 commits from vylepseni_odevzdavatka into master 2023-06-12 22:17:08 +02:00
Owner
No description provided.
zelvuska added 3 commits 2023-01-02 23:46:16 +01:00
Author
Owner

https://mam-test.ks.matfyz.cz/resitel/reseni/33144: 13333,33333333333333333333333

Opraveno

~~https://mam-test.ks.matfyz.cz/resitel/reseni/33144: 13333,33333333333333333333333~~ Opraveno
zelvuska added 1 commit 2023-01-03 00:13:36 +01:00
zelvuska added 1 commit 2023-01-03 00:22:21 +01:00
zelvuska added 1 commit 2023-02-06 20:44:06 +01:00
zelvuska added 1 commit 2023-02-06 20:51:36 +01:00
zelvuska added 1 commit 2023-02-06 20:53:06 +01:00
zelvuska added 1 commit 2023-02-06 20:53:55 +01:00
zelvuska added 1 commit 2023-02-06 20:58:05 +01:00
zelvuska force-pushed vylepseni_odevzdavatka from ae83838efc to fa688ec8f3 2023-02-06 21:07:09 +01:00 Compare
zelvuska added 1 commit 2023-02-06 21:10:42 +01:00
zelvuska added 1 commit 2023-02-06 21:14:33 +01:00
# Conflicts:
#	odevzdavatko/templates/odevzdavatko/detail.html
zelvuska added 1 commit 2023-02-06 21:20:30 +01:00
zelvuska changed title from WIP: vylepseni_odevzdavatka fix #1354 fix #1237 to vylepseni_odevzdavatka fix #1354 fix #1237 2023-02-06 21:20:43 +01:00
Author
Owner

Ještě by to chtělo lépe zformulovat texty, ale jinak mi přijde, že už to dělá všechno tak, jak má.

Ještě by to chtělo lépe zformulovat texty, ale jinak mi přijde, že už to dělá všechno tak, jak má.
ledoian reviewed 2023-02-06 22:09:49 +01:00
@ -55,3 +62,3 @@
</table>
<table id="form_set">
<tr><th>Problém</th><th>Body</th><th>Deadline pro body</th><th>Zpětná vazba pro řešitele</th></tr>
<tr><th>Problém</th><th>{# 📖 #}🧍</th><th>{# 🔵 #}🧍∑</th><th class="teamovaCast">{# 💪 #}🧑‍🤝‍🧑</th><th class="teamovaCast">{# ❤ #}🧑‍🤝‍🧑∑</th><th>Deadline pro body</th><th>Zpětná vazba pro řešitele</th></tr>
Owner

LOL komentáře. Za pár let je nikdo nepochopí, ale co už :-)

LOL komentáře. Za pár let je nikdo nepochopí, ale co už :-)
Author
Owner

Na Apríla to změnit na zakomentované (a přidat popisky ❤ životy, 🔵 mana, 💪 síla, 📖 charisma)…

Na Apríla to změnit na zakomentované (a přidat popisky ❤ životy, 🔵 mana, 💪 síla, 📖 charisma)…
zelvuska marked this conversation as resolved
zelvuska added 1 commit 2023-02-06 22:10:10 +01:00
zelvuska added 1 commit 2023-02-06 22:11:46 +01:00
ledoian reviewed 2023-02-06 22:14:43 +01:00
@ -298,2 +309,4 @@
)
logger.info(f"Creating Hodnoceni: {hodnoceni}")
zmeny_bodu = [it for it in form.changed_data if it.startswith("body")]
if len(zmeny_bodu) == 1:
Owner

Nechceš spadnout / zalogogovat ERROR, když to bude větší než jedna?

Nechceš spadnout / zalogogovat ERROR, když to bude větší než jedna?
Author
Owner

Á, ono když bude 4, tak se nic nezměnilo (žádné pole není disabled…)

Á, ono když bude 4, tak se nic nezměnilo (žádné pole není disabled…)
zelvuska marked this conversation as resolved
zelvuska added 1 commit 2023-02-06 22:16:41 +01:00
zelvuska changed title from vylepseni_odevzdavatka fix #1354 fix #1237 to Vylepšení odevzdávátka fix #1354 fix #1237 2023-02-06 22:17:04 +01:00
ledoian reviewed 2023-02-06 22:18:10 +01:00
@ -118,0 +132,4 @@
return Hodnoceni.objects.filter(problem=self.problem, reseni__resitele=self.reseni.resitele.first(), body__isnull=False).aggregate(Sum("body"))["body__sum"]
@body_celkem.setter
def body_celkem(self, value):
Owner

Nechceš k tomu napsat assert nebo rovnou celý test, který by hlídal, že po nastavení bodů tímhle způsobem se správně aktualizuje počet bodů a celkový součet?

Nechceš k tomu napsat assert nebo rovnou celý test, který by hlídal, že po nastavení bodů tímhle způsobem se správně aktualizuje počet bodů a celkový součet?
Owner

ditto níž

ditto níž
zelvuska marked this conversation as resolved
ledoian reviewed 2023-02-06 22:21:38 +01:00
@ -118,0 +178,4 @@
@property
def body_neprepocitane_max(self):
if self.body_max is None:
return None
Owner

IMHO spíš počet bodů za úlohu je počet nepřepočítaných bodů, i.e. když řešíš úlohu za b bodů ve dvojici, tak plný počet označuje stav, kdy řešení dostane b bodů a tedy každý řešitel jen 0.75b.

IMHO spíš počet bodů za úlohu je počet nepřepočítaných bodů, i.e. když řešíš úlohu za $b$ bodů ve dvojici, tak plný počet označuje stav, kdy řešení dostane $b$ bodů a tedy každý řešitel jen $0.75b$.
Author
Owner

No, tak b bodů jsou nepřepočítané body, to je ten stav, který chceš většinou řešit.

A body ve výsledkovce (tedy body bez přívlastku) jsou už ty přepočítané pomocí našeho kouzelného vzorce z webu…

No, tak $b$ bodů jsou nepřepočítané body, to je ten stav, který chceš většinou řešit. A body ve výsledkovce (tedy body bez přívlastku) jsou už ty přepočítané pomocí našeho kouzelného vzorce z webu…
Owner

No, ale tvoje self.body_max vrací b, i když má vracet 3b/(n+2), protože b má vracet self.body_neprepocitane_max, ne?

No, ale tvoje `self.body_max` vrací $b$, i když má vracet $3b/(n+2)$, protože $b$ má vracet `self.body_neprepocitane_max`, ne?
Author
Owner

Mám to opačně, co?

Mám to opačně, co?
Author
Owner

A hlavně to aktuálně z nějakého důvodu nefunguje :'(

A hlavně to aktuálně z nějakého důvodu nefunguje :'(
Owner

Áno, opačně

(Edit: fix race condition :-P)

Áno, opačně (Edit: fix race condition :-P)
zelvuska marked this conversation as resolved
ledoian reviewed 2023-02-06 22:23:33 +01:00
@ -118,0 +141,4 @@
if self.body_celkem is None:
self.body += value
else:
self.body += value - self.body_celkem
Owner

Tohle potenciálně generuje záporné body…

Tohle potenciálně generuje záporné body…
Author
Owner

A to je špatně?

A to je špatně?
Owner

Považuji to za dost neočekávatelné chování, zvlášť když jako org píšu body kladné. Obecně si myslím, že spíš strhávat body od již udělených nechceme (možná vyjma „ujelo mi bodování, zpětně měním počet bodů)…

Považuji to za dost neočekávatelné chování, zvlášť když jako org píšu body kladné. Obecně si myslím, že spíš strhávat body od již udělených nechceme (možná vyjma „ujelo mi bodování, zpětně _měním_ počet bodů)…
Author
Owner

A jaké je tedy očekávané chování?

A jaké je tedy očekávané chování?
Owner

Nedovolit to vůbec (a že má kdyžtak org napsat webařům, pokud nechápe proč)? Hodit aspoň alert(), že se o to org pokouší a že to bude vypadat blbě ve výsledkovce?

Nedovolit to vůbec (a že má kdyžtak org napsat webařům, pokud nechápe proč)? Hodit aspoň `alert()`, že se o to org pokouší a že to bude vypadat blbě ve výsledkovce?
Author
Owner

Ale doteď tam žádná taková šaráda nebyla. (Otestováno, záporné body mohu zadat vesele.) A já na frontendu nepoznám, kolik za to už řešitel dostal…

Ale doteď tam žádná taková šaráda nebyla. (Otestováno, záporné body mohu zadat vesele.) A já na frontendu nepoznám, kolik za to už řešitel dostal…
Owner

Ale doteď se ti nemohlo stát, že bys ty záporné body napsal omylem – musel bys explicitně zmáčknout mínus. Není potřeba orgy ochránit proti zlým úmyslům, ale proti dobrým chybám…

Ale doteď se ti nemohlo stát, že bys ty záporné body napsal omylem – musel bys explicitně zmáčknout mínus. Není potřeba orgy ochránit proti zlým úmyslům, ale proti dobrým chybám…
Author
Owner

Přijde mi, že to v podstatě odchytává jen miniaturní část toho problému. To, když to zrovna vyjde záporné. Ale ve chvíli, kdy tam org zadá libovolný jiný nesprávný počet, tak to stejně nezjistíme. Tohle políčko prostě vyžaduje, aby tam org zadal správný počet.

Přijde mi, že to v podstatě odchytává jen miniaturní část toho problému. To, když to zrovna vyjde záporné. Ale ve chvíli, kdy tam org zadá libovolný jiný nesprávný počet, tak to stejně nezjistíme. Tohle políčko prostě vyžaduje, aby tam org zadal správný počet.
Author
Owner

Jakoby souhlasím s tím, že tam ta obrana může být (přídám tam asi javascript, který vykřikne, pokud při načtení libovolná z těch hodnot je záporná).

Ale nepřijde mi, že by to nějak signifikantně zvyšovalo ochranu proti špatnému zadání.

Jakoby souhlasím s tím, že tam ta obrana může být (přídám tam asi javascript, který vykřikne, pokud při načtení libovolná z těch hodnot je záporná). Ale nepřijde mi, že by to nějak signifikantně zvyšovalo ochranu proti špatnému zadání.
zelvuska marked this conversation as resolved
Owner

Kód jsem viděl a na první pohled je OK, jestli funguje jsem ještě nezkoušel.

Kód jsem viděl a na první pohled je OK, jestli funguje jsem ještě nezkoušel.
ledoian reviewed 2023-02-06 22:48:21 +01:00
@ -118,0 +124,4 @@
# TODO najít správné místo
@staticmethod
def inverze_vzorecku_na_prepocet(body: decimal.Decimal, resitelu) -> decimal.Decimal:
return round(body * (resitelu + 2) / 3, 1)
Owner

seminar/utils.py? odevzdavatko/utils.py?

seminar/utils.py? odevzdavatko/utils.py?
zelvuska marked this conversation as resolved
zelvuska added 2 commits 2023-02-06 23:18:31 +01:00
zelvuska added 1 commit 2023-02-06 23:26:28 +01:00
zelvuska added 1 commit 2023-02-13 22:36:42 +01:00
zelvuska added 2 commits 2023-02-13 22:48:37 +01:00
ledoian reviewed 2023-02-23 12:53:53 +01:00
@ -56,2 +63,4 @@
<p>{{ poznamka_form.poznamka }}</p>
<script>vporadku=true;</script>
{% for h in hodnoceni %}{% if h.body < 0.0 %} <script>if(vporadku){vporadku=false;alert("Pozor! Některé hodnocení má záporné body.\n\nBuď jde o záměr, nebo o špatné zadáný počet bodů (např. součet bodů za úlohu) nebo se něco pokazilo.\n\nPokud se to děje neočekávaně a opakovaně, napiš webařům :)");}</script> {% endif %}{% endfor %}
Owner

Nechceme to trochu pozalamovat?

Nechceme to trochu pozalamovat?
zelvuska marked this conversation as resolved
ledoian reviewed 2023-02-25 14:17:54 +01:00
@ -304,0 +316,4 @@
if len(zmeny_bodu) == 1:
hodnoceni.__setattr__(zmeny_bodu[0], data_for_body[zmeny_bodu[0]])
if len(zmeny_bodu) != 1 and len(zmeny_bodu) != 4:
print(f"Hodnocení {hodnoceni} mělo mít nastavené víc různých bodů: {zmeny_bodu}. Nastavuji -0.1.")
Owner

Tenhle print je k něčemu dobrý? Nechal bych jen warning o řádek níž, je o dost víc konfigurovatelný…

Tenhle print je k něčemu dobrý? Nechal bych jen warning o řádek níž, je o dost víc konfigurovatelný…
zelvuska marked this conversation as resolved
ledoian reviewed 2023-02-25 14:19:28 +01:00
@ -304,0 +315,4 @@
zmeny_bodu = [it for it in form.changed_data if it.startswith("body")]
if len(zmeny_bodu) == 1:
hodnoceni.__setattr__(zmeny_bodu[0], data_for_body[zmeny_bodu[0]])
if len(zmeny_bodu) != 1 and len(zmeny_bodu) != 4:
Owner

Proč že můžou být 4?

Proč že můžou být 4?
Owner

Už to vidím: je to 4 když se nic nezmění. Prosím, napišme to k tomu do komentáře, rozhodně mi to nepřijde intuitivní.

Už to vidím: je to 4 když se nic nezmění. Prosím, napišme to k tomu do komentáře, rozhodně mi to nepřijde intuitivní.
zelvuska marked this conversation as resolved
zelvuska changed title from Vylepšení odevzdávátka fix #1354 fix #1237 to WIP: Vylepšení odevzdávátka fix #1354 fix #1237 2023-02-27 20:13:00 +01:00
zelvuska added 1 commit 2023-03-06 20:11:02 +01:00
zelvuska added 3 commits 2023-03-06 20:17:29 +01:00
zelvuska added 1 commit 2023-03-06 21:15:12 +01:00
zelvuska added 1 commit 2023-03-06 21:48:39 +01:00
zelvuska changed title from WIP: Vylepšení odevzdávátka fix #1354 fix #1237 to WIP: Vylepšení odevzdávátka fix #1354 fix #1237 2023-03-13 23:52:41 +01:00
zelvuska changed title from WIP: Vylepšení odevzdávátka fix #1354 fix #1237 to WIP: Vylepšení hodnotítka fix #1354 fix #1237 2023-05-15 19:57:53 +02:00
zelvuska added 1 commit 2023-06-12 22:07:41 +02:00
zelvuska changed title from WIP: Vylepšení hodnotítka fix #1354 fix #1237 to Vylepšení hodnotítka fix #1354 fix #1237 2023-06-12 22:10:38 +02:00
zelvuska merged commit 2ab6e76fbe into master 2023-06-12 22:17:08 +02:00
zelvuska deleted branch vylepseni_odevzdavatka 2023-06-12 22:17:08 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: mam/mamweb#20
No description provided.