|
|
@ -675,7 +675,6 @@ def texUploadView(request): |
|
|
|
# Řešení má nastavené číslo svojí úlohy, ale obrázky jsou |
|
|
|
# ukládány do čísla, kde řešení vyšlo |
|
|
|
c = meta["cislo_reseni"] |
|
|
|
uloz_soubory(request.FILES.items(), meta["rocnik"], c) |
|
|
|
|
|
|
|
# Zjistíme typ ukládaného problému |
|
|
|
typy = { |
|
|
@ -685,8 +684,8 @@ def texUploadView(request): |
|
|
|
} |
|
|
|
problem_typ = typy[meta["typ"]] |
|
|
|
|
|
|
|
|
|
|
|
# Pokud už problém existuje, vytáhneme jej z db a upravíme |
|
|
|
# Pokud neexistuje, vytvoříme jej jedině pokud je to vynucené |
|
|
|
|
|
|
|
# Pokud ročník/číslo ještě neexistuje, vyhodí to výjimku -> |
|
|
|
# číslo/ročník se musí založit ručně v adminu |
|
|
@ -703,14 +702,22 @@ def texUploadView(request): |
|
|
|
problem = None |
|
|
|
if existujici: |
|
|
|
problem = existujici[0] |
|
|
|
# Jinak vytvoříme nový |
|
|
|
else: |
|
|
|
elif "vytvor" in q: |
|
|
|
# vytvoříme nový |
|
|
|
problem = Problem( |
|
|
|
typ=problem_typ, |
|
|
|
stav=Problem.STAV_ZADANY, |
|
|
|
kod=meta["kod"], |
|
|
|
cislo_zadani=cislo |
|
|
|
) |
|
|
|
else: |
|
|
|
return JsonResponse({ |
|
|
|
"error": "Problém neexistuje: {} {}.{} kód {}".format( |
|
|
|
meta["typ"], meta["rocnik"], meta["cislo"], meta["kod"] |
|
|
|
) |
|
|
|
}) |
|
|
|
|
|
|
|
uloz_soubory(request.FILES.items(), meta["rocnik"], c) |
|
|
|
|
|
|
|
if meta["typ"] == "reseni": |
|
|
|
problem.text_reseni = html |
|
|
@ -750,6 +757,12 @@ def texDownloadView(request, rocnik, cislo): |
|
|
|
"""View posílající JSON se zadanými a řešenými problémy pro založení čísla |
|
|
|
""" |
|
|
|
cislo = Cislo.objects.get(rocnik__rocnik=rocnik, cislo=cislo) |
|
|
|
if cislo.faze == cislo.FAZE_NAHRANO: |
|
|
|
# obsah byl nahrán z TeXu na web, už je příliš složitý |
|
|
|
return JsonResponse( |
|
|
|
{"error": "Obsah čísla už byl nahrán z TeXu na web."} |
|
|
|
) |
|
|
|
|
|
|
|
zadane = Problem.objects.filter( |
|
|
|
cislo_zadani=cislo, |
|
|
|
stav=Problem.STAV_ZADANY |
|
|
@ -786,6 +799,9 @@ def texDownloadView(request, rocnik, cislo): |
|
|
|
} for p in resene |
|
|
|
], |
|
|
|
} |
|
|
|
|
|
|
|
cislo.faze = Cislo.FAZE_TEX |
|
|
|
cislo.save() |
|
|
|
return JsonResponse(response) |
|
|
|
|
|
|
|
|
|
|
|