Merge pull request 'Sifrovacka Sifry Jako Text' (!93) from sifrovacka_sifry-jako-text into master
Reviewed-on: #93
This commit is contained in:
commit
72cab67dbd
4 changed files with 45 additions and 12 deletions
sifrovacka
|
@ -13,8 +13,8 @@ class SifrovackaForm(ModelForm):
|
|||
|
||||
def clean_sifra(self):
|
||||
sifra = self.cleaned_data.get('sifra')
|
||||
if SpravnaOdpoved.objects.filter(sifra=sifra).count() == 0:
|
||||
raise ValidationError("Tohle číslo šifry v databázi nemáme. Zkontrolujte si ho prosím.")
|
||||
if SpravnaOdpoved.objects.filter(sifra__iexact=sifra).count() == 0:
|
||||
raise ValidationError("Tuhle šifru v databázi nemáme. Zkontrolujte si, že jste zadali název správně.")
|
||||
return sifra
|
||||
|
||||
|
||||
|
@ -25,6 +25,6 @@ class NapovedaForm(ModelForm):
|
|||
|
||||
def clean_sifra(self):
|
||||
sifra = self.cleaned_data.get('sifra')
|
||||
if Napoveda.objects.filter(sifra=sifra).count() == 0:
|
||||
raise ValidationError("K tomuto číslu šifry nemáme nápovědu. Zkontrolujte si ho prosím.")
|
||||
if Napoveda.objects.filter(sifra__iexact=sifra).count() == 0:
|
||||
raise ValidationError("K této šifře nemáme nápovědu. Zkontrolujte si, že jste zadali název správně.")
|
||||
return sifra
|
||||
|
|
33
sifrovacka/migrations/0007_alter_napoveda_sifra_and_more.py
Normal file
33
sifrovacka/migrations/0007_alter_napoveda_sifra_and_more.py
Normal file
|
@ -0,0 +1,33 @@
|
|||
# Generated by Django 4.2.18 on 2025-03-19 20:12
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('sifrovacka', '0006_personalni_post_migrate'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='napoveda',
|
||||
name='sifra',
|
||||
field=models.CharField(max_length=255),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='napovezenoucastnikovi',
|
||||
name='sifra',
|
||||
field=models.CharField(max_length=255, verbose_name='Šifra'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='odpoveducastnika',
|
||||
name='sifra',
|
||||
field=models.CharField(max_length=255, verbose_name='Šifra'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='spravnaodpoved',
|
||||
name='sifra',
|
||||
field=models.CharField(max_length=255),
|
||||
),
|
||||
]
|
|
@ -10,14 +10,14 @@ class OdpovedUcastnika(models.Model):
|
|||
|
||||
resitel = models.ForeignKey(Resitel, blank=False, null=False, on_delete=models.CASCADE)
|
||||
odpoved = models.TextField("Tajenka bez diakritiky", blank=False, null=False,)
|
||||
sifra = models.IntegerField("Číslo šifry", blank=False, null=False,)
|
||||
sifra = models.CharField("Šifra", max_length=255, blank=False, null=False,)
|
||||
timestamp = models.DateTimeField("Timestamp", blank=False, null=False, default=timezone.now)
|
||||
uspech = models.BooleanField("Úspěch", blank=False, null=False, default=False)
|
||||
|
||||
|
||||
class SpravnaOdpoved(models.Model):
|
||||
odpoved = models.TextField(blank=False, null=False,)
|
||||
sifra = models.IntegerField(blank=False, null=False,)
|
||||
sifra = models.CharField(max_length=255, blank=False, null=False,)
|
||||
skryty_text = models.TextField(blank=False, null=False,)
|
||||
|
||||
def __str__(self):
|
||||
|
@ -29,13 +29,13 @@ class NapovezenoUcastnikovi(models.Model):
|
|||
ordering = ["-timestamp"]
|
||||
|
||||
resitel = models.ForeignKey(Resitel, blank=False, null=False, on_delete=models.CASCADE)
|
||||
sifra = models.IntegerField("Číslo šifry", blank=False, null=False,)
|
||||
sifra = models.CharField("Šifra", max_length=255, blank=False, null=False,)
|
||||
timestamp = models.DateTimeField("Timestamp", blank=False, null=False, default=timezone.now)
|
||||
|
||||
|
||||
class Napoveda(models.Model):
|
||||
text = models.TextField(blank=False, null=False,)
|
||||
sifra = models.IntegerField(blank=False, null=False,)
|
||||
sifra = models.CharField(max_length=255, blank=False, null=False,)
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.sifra}: {self.text}"
|
||||
|
|
|
@ -16,7 +16,7 @@ class SifrovackaView(FormView):
|
|||
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()
|
||||
sifra = SpravnaOdpoved.objects.filter(sifra__iexact=instance.sifra, odpoved__iexact=instance.odpoved.strip()).first()
|
||||
if sifra is None:
|
||||
return formularOKView(self.request, f'<h1>Bohužel vám hvězdy nebyly nakloněny. Rozumějte <i>máte to blbě</i>.</h1> <p><a href="{reverse("sifrovacka")}">Zkusit znovu.</a></p><br><br><br>')
|
||||
|
||||
|
@ -40,10 +40,10 @@ class NapovedaView(FormView):
|
|||
resitel = Resitel.objects.get(osoba__user=self.request.user)
|
||||
instance.resitel = resitel
|
||||
|
||||
if NapovezenoUcastnikovi.objects.filter(resitel=resitel, sifra=instance.sifra).first() is None:
|
||||
if NapovezenoUcastnikovi.objects.filter(resitel=resitel, sifra__iexact=instance.sifra).first() is None:
|
||||
instance.save()
|
||||
|
||||
napoveda = Napoveda.objects.filter(sifra=instance.sifra).first()
|
||||
napoveda = Napoveda.objects.filter(sifra__iexact=instance.sifra).first()
|
||||
return formularOKView(self.request, f'<h1>Nápověda k šifře číslo {instance.sifra} je:</h1><p>{napoveda.text}</p> <p><a href="{reverse("sifrovacka")}">Odevzdat řešení.</a></p><br><br><br>')
|
||||
|
||||
|
||||
|
@ -63,6 +63,6 @@ class PreskoceniView(FormView):
|
|||
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í?
|
||||
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'<h1>{sifra.skryty_text}</h1> <p><a href="{reverse("sifrovacka")}">Zpět na odevzdávátko.</a></p><br><br><br>')
|
||||
|
|
Loading…
Reference in a new issue