Choices na Enum (u přednášek)
This commit is contained in:
parent
2f814956a7
commit
e933c6978d
3 changed files with 24 additions and 31 deletions
|
@ -4,7 +4,7 @@ from reversion.admin import VersionAdmin
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from django.utils.html import escape
|
from django.utils.html import escape
|
||||||
|
|
||||||
from .models import Prednaska, Seznam, STAV_NAVRH, Znalost
|
from .models import Prednaska, Seznam, Znalost
|
||||||
from soustredeni.models import Soustredeni
|
from soustredeni.models import Soustredeni
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ class PrednaskaAdmin(VersionAdmin):
|
||||||
|
|
||||||
def move_to_soustredeni(self, request, queryset):
|
def move_to_soustredeni(self, request, queryset):
|
||||||
sous = Soustredeni.objects.first()
|
sous = Soustredeni.objects.first()
|
||||||
seznam = Seznam.objects.filter(soustredeni=sous, stav=STAV_NAVRH)
|
seznam = Seznam.objects.filter(soustredeni=sous, stav=Seznam.Stav.NAVRH)
|
||||||
if len(seznam) == 0:
|
if len(seznam) == 0:
|
||||||
self.message_user(
|
self.message_user(
|
||||||
request,
|
request,
|
||||||
|
|
|
@ -3,15 +3,6 @@ from django.db import models
|
||||||
from soustredeni.models import Soustredeni
|
from soustredeni.models import Soustredeni
|
||||||
from personalni.models import Organizator, Osoba
|
from personalni.models import Organizator, Osoba
|
||||||
|
|
||||||
STAV_NAVRH = 1
|
|
||||||
STAV_BUDE = 2
|
|
||||||
|
|
||||||
|
|
||||||
STAV_CHOICES = (
|
|
||||||
(STAV_NAVRH, 'Návrh'),
|
|
||||||
(STAV_BUDE, 'Bude')
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class Seznam(models.Model):
|
class Seznam(models.Model):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -20,27 +11,18 @@ class Seznam(models.Model):
|
||||||
verbose_name_plural = 'Seznamy přednášek'
|
verbose_name_plural = 'Seznamy přednášek'
|
||||||
ordering = ['soustredeni', 'stav']
|
ordering = ['soustredeni', 'stav']
|
||||||
|
|
||||||
|
class Stav(models.IntegerChoices):
|
||||||
|
NAVRH = 1, "Návrh"
|
||||||
|
BUDE = 2, "Bude"
|
||||||
|
|
||||||
id = models.AutoField(primary_key = True)
|
id = models.AutoField(primary_key = True)
|
||||||
soustredeni = models.ForeignKey(Soustredeni,null = True, default = None,
|
soustredeni = models.ForeignKey(Soustredeni,null = True, default = None,
|
||||||
on_delete=models.PROTECT)
|
on_delete=models.PROTECT)
|
||||||
stav = models.IntegerField('Stav',choices=STAV_CHOICES,default = STAV_NAVRH)
|
stav = models.IntegerField('Stav', choices=Stav.choices, default=Stav.NAVRH)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "Seznam {}přednášek na {}".format("návrhů "
|
return "Seznam {}přednášek na {}".format("návrhů "
|
||||||
if self.stav == STAV_NAVRH else "", self.soustredeni)
|
if self.stav == Seznam.Stav.NAVRH else "", self.soustredeni)
|
||||||
|
|
||||||
|
|
||||||
CHOICES_OBTIZNOST = (
|
|
||||||
(1, 'Lehká'),
|
|
||||||
(2, 'Střední'),
|
|
||||||
(3, 'Těžká'),
|
|
||||||
)
|
|
||||||
|
|
||||||
CHOICES_BODY = (
|
|
||||||
(-1, '-1'),
|
|
||||||
(0, '0'),
|
|
||||||
(1, '1'),
|
|
||||||
)
|
|
||||||
|
|
||||||
class Prednaska(models.Model):
|
class Prednaska(models.Model):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -49,12 +31,17 @@ class Prednaska(models.Model):
|
||||||
verbose_name_plural = 'Přednášky'
|
verbose_name_plural = 'Přednášky'
|
||||||
ordering = ['org', 'nazev']
|
ordering = ['org', 'nazev']
|
||||||
|
|
||||||
|
class Obtiznost(models.IntegerChoices):
|
||||||
|
LEHKA = 1, "Lehká"
|
||||||
|
STREDNI = 2, "Střední"
|
||||||
|
TEZKA = 3, "Těžká"
|
||||||
|
|
||||||
id = models.AutoField(primary_key = True)
|
id = models.AutoField(primary_key = True)
|
||||||
nazev = models.CharField('Název', max_length = 300)
|
nazev = models.CharField('Název', max_length = 300)
|
||||||
org = models.ForeignKey(Organizator, on_delete=models.PROTECT)
|
org = models.ForeignKey(Organizator, on_delete=models.PROTECT)
|
||||||
popis = models.TextField('Popis pro orgy',null = True, blank = True,help_text = 'Neveřejný popis pro ostatní orgy')
|
popis = models.TextField('Popis pro orgy',null = True, blank = True,help_text = 'Neveřejný popis pro ostatní orgy')
|
||||||
anotace = models.TextField('Anotace',null = True, blank = True, help_text = 'Veřejná anotace v hlasování')
|
anotace = models.TextField('Anotace',null = True, blank = True, help_text = 'Veřejná anotace v hlasování')
|
||||||
obtiznost = models.IntegerField('Obtížnost', choices=CHOICES_OBTIZNOST)
|
obtiznost = models.IntegerField('Obtížnost', choices=Obtiznost.choices)
|
||||||
obor = models.CharField('Obor', max_length = 5, help_text = 'Podmnožina MFIOB')
|
obor = models.CharField('Obor', max_length = 5, help_text = 'Podmnožina MFIOB')
|
||||||
klicova = models.CharField('Klíčová slova', max_length = 200, null = True, blank = True)
|
klicova = models.CharField('Klíčová slova', max_length = 200, null = True, blank = True)
|
||||||
seznamy = models.ManyToManyField(Seznam)
|
seznamy = models.ManyToManyField(Seznam)
|
||||||
|
@ -96,9 +83,15 @@ class Hlasovani(models.Model):
|
||||||
verbose_name = 'Hlasování'
|
verbose_name = 'Hlasování'
|
||||||
verbose_name_plural = 'Hlasování'
|
verbose_name_plural = 'Hlasování'
|
||||||
ordering = ['ucastnik', 'prednaska']
|
ordering = ['ucastnik', 'prednaska']
|
||||||
|
|
||||||
|
class Body(models.IntegerChoices):
|
||||||
|
NECHCI = -1, "rozhodně nechci"
|
||||||
|
JEDNO = 0, "je mi to jedno"
|
||||||
|
CHCI = 1, "rozhodně chci"
|
||||||
|
|
||||||
id = models.AutoField(primary_key = True)
|
id = models.AutoField(primary_key = True)
|
||||||
prednaska = models.ForeignKey(Prednaska, on_delete=models.CASCADE)
|
prednaska = models.ForeignKey(Prednaska, on_delete=models.CASCADE)
|
||||||
body = models.IntegerField('Body', default = 0, choices = CHOICES_BODY)
|
body = models.IntegerField('Body', default = Body.JEDNO, choices = Body.choices)
|
||||||
ucastnik = models.CharField('Účastník', max_length = 100)
|
ucastnik = models.CharField('Účastník', max_length = 100)
|
||||||
seznam = models.ForeignKey(Seznam,null=True,on_delete=models.SET_NULL)
|
seznam = models.ForeignKey(Seznam,null=True,on_delete=models.SET_NULL)
|
||||||
|
|
||||||
|
|
|
@ -10,14 +10,14 @@ from django.forms import Form
|
||||||
from various.views.pomocne import formularOKView
|
from various.views.pomocne import formularOKView
|
||||||
|
|
||||||
from various.models import Nastaveni
|
from various.models import Nastaveni
|
||||||
from prednasky.models import Prednaska, Hlasovani, Seznam, STAV_NAVRH
|
from prednasky.models import Prednaska, Hlasovani, Seznam
|
||||||
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 = Nastaveni.get_solo().aktualni_sous
|
sous = Nastaveni.get_solo().aktualni_sous
|
||||||
seznam = Seznam.objects.filter(soustredeni = sous, stav = STAV_NAVRH).first()
|
seznam = Seznam.objects.filter(soustredeni = sous, stav=Seznam.Stav.NAVRH).first()
|
||||||
if sous is None or seznam is None:
|
if sous is None or seznam is None:
|
||||||
return render(request, 'universal.html', {
|
return render(request, 'universal.html', {
|
||||||
'title': "Nelze hlasovat",
|
'title': "Nelze hlasovat",
|
||||||
|
@ -87,7 +87,7 @@ class SeznamListView(generic.ListView):
|
||||||
|
|
||||||
# hlasovani se vztahuje k nejnovejsimu soustredeni
|
# hlasovani se vztahuje k nejnovejsimu soustredeni
|
||||||
sous = Soustredeni.objects.first()
|
sous = Soustredeni.objects.first()
|
||||||
seznam = Seznam.objects.filter(soustredeni = sous, stav = STAV_NAVRH).first()
|
seznam = Seznam.objects.filter(soustredeni = sous, stav=Seznam.Stav.NAVRH).first()
|
||||||
|
|
||||||
for obj in self.object_list:
|
for obj in self.object_list:
|
||||||
hlasovani_set = obj.hlasovani_set.filter(seznam=seznam).only('body')
|
hlasovani_set = obj.hlasovani_set.filter(seznam=seznam).only('body')
|
||||||
|
|
Loading…
Reference in a new issue