Browse Source

Merge branch 'tex-upload'

remotes/origin/prednasky
Matěj Kocián 8 years ago
parent
commit
43601257cf
  1. 24
      seminar/views.py

24
seminar/views.py

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

Loading…
Cancel
Save