Hlasitější výstup při odstraněné znalosti/přednášce v exportu

This commit is contained in:
Jonas Havelka 2025-02-22 16:38:11 +01:00
parent 46e2bb6b12
commit 19448ce6c0

View file

@ -157,6 +157,8 @@ def PrednaskyExportView(request: HttpRequest, seznam: int, **kwargs) -> HttpResp
# A po inicializaci sloupců vyplníme tabulku # A po inicializaci sloupců vyplníme tabulku
table: [str, list[str|Prednaska|Znalost,]] = {} table: [str, list[str|Prednaska|Znalost,]] = {}
errors = []
for h in hlasovani: for h in hlasovani:
if h.ucastnik not in table: # Pokud jsme účastníka ještě neviděli, předgenerujeme si jeho řádek if h.ucastnik not in table: # Pokud jsme účastníka ještě neviděli, předgenerujeme si jeho řádek
table[h.ucastnik] = [h.ucastnik] + ([""] * width) table[h.ucastnik] = [h.ucastnik] + ([""] * width)
@ -164,7 +166,7 @@ def PrednaskyExportView(request: HttpRequest, seznam: int, **kwargs) -> HttpResp
if h.prednaska.id in prednasky_map: if h.prednaska.id in prednasky_map:
table[h.ucastnik][prednasky_map[h.prednaska.id]] = h.body table[h.ucastnik][prednasky_map[h.prednaska.id]] = h.body
else: else:
pass # TODO Padat hlasitě? errors.append(f"Přednáška {h.prednaska.id} ({h.prednaska}) dostala od Účastníka {h.ucastnik} následující hodnocení: {h.body}")
for h in hlasovani_o_znalostech: for h in hlasovani_o_znalostech:
ucastnik = str(h.ucastnik) + ' ' + str(h.ucastnik.id) # id, kvůli kolizi jmen ucastnik = str(h.ucastnik) + ' ' + str(h.ucastnik.id) # id, kvůli kolizi jmen
@ -174,8 +176,11 @@ def PrednaskyExportView(request: HttpRequest, seznam: int, **kwargs) -> HttpResp
if h.znalost.id in znalosti_map: if h.znalost.id in znalosti_map:
table[ucastnik][znalosti_map[h.znalost.id]] = h.odpoved table[ucastnik][znalosti_map[h.znalost.id]] = h.odpoved
else: else:
pass # TODO Padat hlasitě? errors.append(f"Znalost {h.znalost.id} ({h.znalost}) dostala od Účastníka {h.ucastnik.id} následující odpověď: {h.odpoved}")
if len(errors) > 0:
logger.error("Při exportování hlasování o přednáškách a znalostech se neexportovali hodnocení z následujícího infa (pravděpodobně se od hlasování vyškrtla nějaká znalost/přednáška ze seznamu).")
logger.info("\n".join(errors))
response = HttpResponse(content_type="text/csv", charset="utf-8") response = HttpResponse(content_type="text/csv", charset="utf-8")
response["Content-Disposition"] = 'attachment; filename="hlasovani.csv"' response["Content-Disposition"] = 'attachment; filename="hlasovani.csv"'