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 # Create your views here. 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.




')