Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Přehled postupou registrací - Implementovat seznam studentů, splněno/nesplněno & co chybí #128

Open
Xopabyteh opened this issue Apr 9, 2024 · 6 comments
Assignees
Labels
Difficulty: Advanced up for grabs Kdokoliv se toho může ujmout a implementovat.

Comments

@Xopabyteh
Copy link
Contributor

Xopabyteh commented Apr 9, 2024

Dříve StudentsWithSigningRulesList - komponenta/stránka zoobrazovala studenty a to, jestli měli splněné všechna zápisová pravidla.

I Teď by měla ukazovat stav studentů - jestli mají splěné podmínky.

@Xopabyteh Xopabyteh changed the title StudentWithSigningRuleList.razor - Implementovat, zakomentováno StudentWithSigningRuleList.razor - Implementovat a přejmenovat Apr 9, 2024
@Xopabyteh Xopabyteh added the up for grabs Kdokoliv se toho může ujmout a implementovat. label Apr 9, 2024
@hakenr
Copy link
Member

hakenr commented Apr 11, 2024

Tohle budeme muset ještě nějak rozepsat, že to má být grid a jaké sloupce do něj dát, popř. jaké filtry k tomu.

@Xopabyteh Xopabyteh added this to the 1 - High Priority milestone May 4, 2024
@Xopabyteh
Copy link
Contributor Author

Měl by to být úplně smiple grid, říkala, že to co bylo minulý rok bylo v pořádku:

  1. Student
  2. Jméno předmětu
  3. Možná třída ( minulý rok tam bylo i zápisové pravidlo, ale to teď nepoužíváme, takže budou nejspíš stačit jen tyhle sloupce. )

Paní ředitelka chce více variant zoobrazení:

1: Tabulku podle tříd prima - septima, pak seřazeno podle příjmení.
2. Tabulku podle předmětu, pak seřazeno podle příjmení (tady by se asi hodilo zoobrazit i třídu)

  1. Pak by nejspíš mělo vzniknout i něco, kde budou vidět studenti podle tříd, kde bude vidět postupy registrací studentů - mají splněno/nemají a co chybí.

@hakenr
Copy link
Member

hakenr commented May 7, 2024

Měl by to být úplně smiple grid, říkala, že to co bylo minulý rok bylo v pořádku:

  1. Student
  2. Jméno předmětu
  3. Možná třída ( minulý rok tam bylo i zápisové pravidlo, ale to teď nepoužíváme, takže budou nejspíš stačit jen tyhle sloupce. )

Paní ředitelka chce více variant zoobrazení:

1: Tabulku podle tříd prima - septima, pak seřazeno podle příjmení.
2. Tabulku podle předmětu, pak seřazeno podle příjmení (tady by se asi hodilo zoobrazit i třídu)

To mi přijde, že splňuje dnešní podoba https://intranet.mensagymnazium.cz/electives/registrations, ne? Stačí to jen zafiltrovat dle ročníku nebo dle předmětu a seřadit grid podle potřeby. Jen tam nemáme to příjmení, to můžeme zkusit nějak z toho jména vydloubat.

Pak by nejspíš mělo vzniknout i něco, kde budou vidět studenti podle tříd, kde bude vidět postupy registrací studentů - mají splněno/nemají a co chybí.

Hmm, to je dost obecné zadání, ale můžeme zkusit něco navrhnout.

@Xopabyteh
Copy link
Contributor Author

Xopabyteh commented May 18, 2024

Pravda!
Tak už zbývá jenom přehled o postupu registrace u studentů. To co vidí student v HomeIndexMyElectives, ale nějak kompaktněji, třeba jenom Splněno/Nesplněno & možná výčet toho, co chybí, pokud něco.

@Xopabyteh Xopabyteh changed the title StudentWithSigningRuleList.razor - Implementovat a přejmenovat Přehled postupou registrací - Implementovat seznam studentů, splněno/nesplněno & co chybí May 18, 2024
@Xopabyteh Xopabyteh self-assigned this May 20, 2024
@Xopabyteh
Copy link
Contributor Author

@hakenr Potřebuju poradit, nevím jak na to. Chci vyrobit grid a pro něj vyrobit query s filterem, která si načte studenty podle filtru, potom pro všechny spočítá ten jejich progress a vrátí to jako fragment. Napadají mě 3 cesty.

  1. Počítat ten progress vždycky znova v té query, ale to mi přijde hrozně drahý. A kdyby se tam přidal filtr na jenom incomplete registrace, tak to bude potřeba počítat pro úplně všechny studenty a pak opět filtrovat in-memory. Zase ta aplikace má max 200 uživatelů, ale nedovedu vyhodnotit, jestli je to moc, nebo v pohodě na přenačítání do paměti na každý request.
  2. Nebo si cachovat (třeba InMemory) postupy těch studentů a invalidovat cache, kdykoliv vznikne/zanikne nová registrace toho studenta. Potom tu query odbavovat celou z cache s tím, že už je to předpočítané, takže samý problém s pamětí, ale rychlejší read.
  3. Nebo si to předpočítat a přidat si sloupečeky ke studentovi v DB, takže celý ten request bude jenom query dotaz do databáze.

Nebo jsem úplně mimo a přehlížím to snadné řešení :D

@hakenr
Copy link
Member

hakenr commented May 24, 2024

V podstatě bych šel cestou 1., tj. vytáhnul si z DB jen seznam studentů dle filtru a k nim pak in-process dopočítal (pro každého zvlášť) to splnění pravidel. A podle výsledku případně dořešil filtr, že něco dalšího má vypadnout.

Až kdyby se ukázalo, že to je výkonově nepoužitelný, tak bych tam dodělal nějaké cachování výsledků vyhodnocení splnění požadavků - to se dá doplnit do té service kdykoliv dodatečně. Problém ve skutečnosti není to cachování, ale invalidace cache při změnách.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Difficulty: Advanced up for grabs Kdokoliv se toho může ujmout a implementovat.
Projects
None yet
Development

No branches or pull requests

2 participants