From 02a7076397aa7a2a14358b84e2ac1507f8f013aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Koci=C3=A1n?= Date: Tue, 8 Nov 2016 12:30:24 +0100 Subject: [PATCH 1/2] =?UTF-8?q?TeX=20upload:=20nevytv=C3=A1=C5=99ej=20Prob?= =?UTF-8?q?l=C3=A9my?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/views.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/seminar/views.py b/seminar/views.py index 141e9492..aefea9a5 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -670,7 +670,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 = { @@ -680,8 +679,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 @@ -698,14 +697,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 From e0882def44d36a5edf2c95598d50937fc7cfb7b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Koci=C3=A1n?= Date: Sat, 12 Nov 2016 21:27:25 +0100 Subject: [PATCH 2/2] =?UTF-8?q?TeX=20API:=20povoleno=20jen=20v=20ur=C4=8Di?= =?UTF-8?q?t=C3=BDch=20f=C3=A1z=C3=ADch=20=C4=8D=C3=ADsla?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/views.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/seminar/views.py b/seminar/views.py index aefea9a5..5ceabcb8 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -752,6 +752,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 @@ -788,4 +794,7 @@ def texDownloadView(request, rocnik, cislo): } for p in resene ], } + + cislo.faze = Cislo.FAZE_TEX + cislo.save() return JsonResponse(response)