Inteligentnější přiřazování seznamu přednášek hlasovátku a upozornění na neexistující seznam

This commit is contained in:
Jonas Havelka 2025-01-21 21:43:43 +01:00
parent a84df1909b
commit 1a2bef328b
3 changed files with 34 additions and 1 deletions

View file

@ -1,3 +1,5 @@
import http
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render, get_object_or_404
from django.views import generic from django.views import generic
from django.shortcuts import HttpResponseRedirect from django.shortcuts import HttpResponseRedirect
@ -7,14 +9,20 @@ from django.forms import Form
from various.views.pomocne import formularOKView from various.views.pomocne import formularOKView
from various.models import Nastaveni
from prednasky.models import Prednaska, Hlasovani, Seznam, STAV_NAVRH from prednasky.models import Prednaska, Hlasovani, Seznam, STAV_NAVRH
from soustredeni.models import Soustredeni from soustredeni.models import Soustredeni
from personalni.models import Osoba from personalni.models import Osoba
def newPrednaska(request): def newPrednaska(request):
# hlasovani se vztahuje k nejnovejsimu soustredeni # hlasovani se vztahuje k nejnovejsimu soustredeni
sous = Soustredeni.objects.first() sous = Nastaveni.get_solo().aktualni_sous
seznam = Seznam.objects.filter(soustredeni = sous, stav = STAV_NAVRH).first() seznam = Seznam.objects.filter(soustredeni = sous, stav = STAV_NAVRH).first()
if sous is None or seznam is None:
return render(request, 'universal.html', {
'title': "Nelze hlasovat",
'text': "Není žádný seznam přednášek, o kterém by se dalo hlasovat.",
}, status=http.HTTPStatus.NOT_FOUND)
osoba = Osoba.objects.filter(user=request.user).first() osoba = Osoba.objects.filter(user=request.user).first()
ucastnik = osoba.plne_jmeno() + ' ' + str(osoba.id) ucastnik = osoba.plne_jmeno() + ' ' + str(osoba.id)
# obsluha formulare # obsluha formulare

View file

@ -0,0 +1,20 @@
# Generated by Django 4.2.16 on 2025-01-21 20:34
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('soustredeni', '0013_alter_soustredeni_kontaktnicek_pdf_and_more'),
('various', '0006_tvorba_post'),
]
operations = [
migrations.AddField(
model_name='nastaveni',
name='aktualni_sous',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='soustredeni.soustredeni', verbose_name='Aktuálně připravovaný sous'),
),
]

View file

@ -26,6 +26,11 @@ class Nastaveni(SingletonModel):
verbose_name="Účastnický poplatek za soustředění", verbose_name="Účastnický poplatek za soustředění",
default=1000) default=1000)
aktualni_sous = models.ForeignKey(
"soustredeni.Soustredeni", verbose_name='Aktuálně připravovaný sous',
null=True, blank=False, on_delete=models.PROTECT,
)
@property @property
def aktualni_rocnik(self): def aktualni_rocnik(self):
return self.aktualni_cislo.rocnik return self.aktualni_cislo.rocnik