from django.urls import reverse from django.views.generic import FormView, ListView from seminar.views import formularOKView from .forms import SifrovackaForm, NapovedaForm from .models import OdpovedUcastnika, SpravnaOdpoved, Napoveda, NapovezenoUcastnikovi from personalni.models import Resitel class SifrovackaView(FormView): template_name = 'sifrovacka/sifrovacka.html' form_class = SifrovackaForm def form_valid(self, form): instance = form.save(commit=False) resitel = Resitel.objects.get(osoba__user=self.request.user) instance.resitel = resitel instance.save() sifra = SpravnaOdpoved.objects.filter(sifra=instance.sifra, odpoved__iexact=instance.odpoved.strip()).first() if sifra is None: return formularOKView(self.request, f'

Bohužel vám hvězdy nebyly nakloněny. Rozumějte máte to blbě.

Zkusit znovu.




') instance.uspech = True instance.save() return formularOKView(self.request, f'

{sifra.skryty_text}

Odevzdat další.




') class SifrovackaListView(ListView): template_name = 'sifrovacka/odpovedi_list.html' model = OdpovedUcastnika class NapovedaView(FormView): template_name = 'sifrovacka/napoveda.html' form_class = NapovedaForm def form_valid(self, form): instance = form.save(commit=False) resitel = Resitel.objects.get(osoba__user=self.request.user) instance.resitel = resitel if NapovezenoUcastnikovi.objects.filter(resitel=resitel, sifra=instance.sifra).first() is None: instance.save() napoveda = Napoveda.objects.filter(sifra=instance.sifra).first() return formularOKView(self.request, f'

Nápověda k šifře číslo {instance.sifra} je:

{napoveda.text}

Odevzdat řešení.




') class NapovedaListView(ListView): template_name = 'sifrovacka/napovedy_list.html' model = NapovezenoUcastnikovi class PreskoceniView(FormView): template_name = 'sifrovacka/preskoceni.html' form_class = SifrovackaForm initial = {"odpoved": "=======PŘESKOČENO======="} def form_valid(self, form): instance = form.save(commit=False) instance.odpoved = "=======PŘESKOČENO=======" resitel = Resitel.objects.get(osoba__user=self.request.user) instance.resitel = resitel instance.save() sifra = SpravnaOdpoved.objects.filter(sifra=instance.sifra).first() # FIXME co když je více "správných" odpovědí? return formularOKView(self.request, f'

{sifra.skryty_text}

Zpět na odevzdávátko.




')