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

Ankety zobrazuji pouze jednoho hlasujiciho #29

Closed
Tracked by #24
Martian-0007 opened this issue Jul 28, 2023 · 2 comments · Fixed by #24
Closed
Tracked by #24

Ankety zobrazuji pouze jednoho hlasujiciho #29

Martian-0007 opened this issue Jul 28, 2023 · 2 comments · Fixed by #24
Labels
bug Something isn't working

Comments

@Martian-0007
Copy link
Collaborator

Popiš bug co nejjasněji!
Kdyz hlasuje vice lidi v ankete, je videt pouze ten posledni kdo hlasoval pro danou moznost

Jak jsi reprodukoval bug? Jde to reprodukovat?
S Elfem jsme vytvorili anketu a hlasovali

Očekávané chování
Zobrazi vsechny kdo hlasovaly pro danou moznost

Nějaké další informace, co bychom měli vědět?
Test probehl v Discord serveru

@Martian-0007 Martian-0007 added the bug Something isn't working label Jul 28, 2023
@TheXer
Copy link
Owner

TheXer commented Jul 28, 2023

Reprodukce bugu je následovná:

  1. Vytvořit anketu s pomocí /anketa
  2. Hlasovat na jedno tlačítko - ideálně dva lidi naráz
  3. Embed nestíhá zpracovávat requesty, tak zobrazí jen posledního hlasujícího bez dalších lidí
  4. Ostatní tlačítka fungují při hlasování, hlas se zobrazí, ale nelze odhlasovat zpět, hlas tam zůstane

Při vytvoření nových anket poté fungují hlasy, ale nejde odhlasovat.

Možný problém:
Databáze nyní zpracovává requesty po jednom, tzn. někdo bude hlasovat, jeho hlas se přidá do db, druhý začne hlasovat, jeho hlas se také přidá do db, ale pokud dva lidi naráz spamují hlasy, tak databáze nestíhá přidávat a vyndávat hlasy, což vyústí v jeho korupci dat.

Možné řešení problému
Jednou z možností je vytvořit Queue třídu, která by do fronty přidávala hlasy (případně její odhlasování) s pomocí logiky FIFO a databáze jej zpracovávala svým tempem. Další z možností je asyncio.create_task(), podívat se na to do dokumentace.

@TheXer TheXer mentioned this issue Jul 28, 2023
8 tasks
@TheXer TheXer linked a pull request Jul 28, 2023 that will close this issue
8 tasks
TheXer added a commit that referenced this issue Aug 25, 2023
Pull request míří na úpravu anket podle issues. Zejména se jedná o tyto
věci:

- Přidání možnosti po vytvoření ankety
- Anketa, když jí vyprší čas, by se měla automaticky smazat a odeslat
prázdný embed s pouze hlasy.
- Malé grafické úpravy

Tyto změny by měly obecně prospět anketám a byly by mnohem přehlednější.

Související issues: 

- [x] #29 
- [x] #22 
- [x] #21 

TODO: 

- [x] Code cleanup
- [x] Přidat type hinting
- [ ] Ozkoušet a otestovat kód
- [x] Přidat error handling
- [x] Vyřešit bug, že `raise` keyword automaticky nepošle error. 

#30 bude místo, kde se bude hromadně testovat každá funkcionalita Jáchyma. Pro teď merguji.
TheXer added a commit that referenced this issue Sep 3, 2023
Hlavní pull-request na to, aby se nakonec všechny věci zrecenzovaly a
byly na jednom místě, než tyto věci dáme na produkci.

Co je nového? 
- #16 
- #21 
- #23 
- #24 
- Optimalizace hlasování - #29 
- Vytvořena CI pipeline

Co dál dělat?
- Počkat, až bude PR #24 hotový, teprve pak můžeme kód otestovat a
mergnout ho.

Kdo si zaslouží dík? 
- @Martian-0007 Díky moc! :)
@TheXer
Copy link
Owner

TheXer commented Sep 4, 2023

Closed

@TheXer TheXer closed this as completed Sep 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants