# from django.shortcuts import get_object_or_404 # from django.urls import reverse # from django.views.generic import FormView, ListView # # from various.views.pomocne import formularOKView # from .forms import SifrovackaForm, NapovedaForm # from .models import OdpovedUcastnika, SpravnaOdpoved, Napoveda, NapovezenoUcastnikovi, Sifrovacka # 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__iexact=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 SifrovackaNektereListView(SifrovackaListView): # def get_queryset(self): # seznam = get_object_or_404(Sifrovacka, jmeno=self.kwargs['seznam']) # orig = super().get_queryset() # return orig.filter(sifra__in=seznam.sifry.all().values('sifra')) # poslední je kvůli tomu, že máme odkaz na celý objekt a ne jen na jméno šifry. # # # 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__iexact=instance.sifra).first() is None: # instance.save() # # napoveda = Napoveda.objects.filter(sifra__iexact=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__iexact=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.




')