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.html import escape
|
||||
|
||||
from .models import Prednaska, Seznam, STAV_NAVRH, Znalost
|
||||
from .models import Prednaska, Seznam, Znalost
|
||||
from soustredeni.models import Soustredeni
|
||||
|
||||
|
||||
|
@ -71,7 +71,7 @@ class PrednaskaAdmin(VersionAdmin):
|
|||
|
||||
def move_to_soustredeni(self, request, queryset):
|
||||
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:
|
||||
self.message_user(
|
||||
request,
|
||||
|
|
|
@ -3,15 +3,6 @@ from django.db import models
|
|||
from soustredeni.models import Soustredeni
|
||||
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 Meta:
|
||||
|
@ -20,27 +11,18 @@ class Seznam(models.Model):
|
|||
verbose_name_plural = 'Seznamy přednášek'
|
||||
ordering = ['soustredeni', 'stav']
|
||||
|
||||
class Stav(models.IntegerChoices):
|
||||
NAVRH = 1, "Návrh"
|
||||
BUDE = 2, "Bude"
|
||||
|
||||
id = models.AutoField(primary_key = True)
|
||||
soustredeni = models.ForeignKey(Soustredeni,null = True, default = None,
|
||||
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):
|
||||
return "Seznam {}přednášek na {}".format("návrhů "
|
||||
if self.stav == STAV_NAVRH else "", self.soustredeni)
|
||||
|
||||
|
||||
CHOICES_OBTIZNOST = (
|
||||
(1, 'Lehká'),
|
||||
(2, 'Střední'),
|
||||
(3, 'Těžká'),
|
||||
)
|
||||
|
||||
CHOICES_BODY = (
|
||||
(-1, '-1'),
|
||||
(0, '0'),
|
||||
(1, '1'),
|
||||
)
|
||||
if self.stav == Seznam.Stav.NAVRH else "", self.soustredeni)
|
||||
|
||||
class Prednaska(models.Model):
|
||||
class Meta:
|
||||
|
@ -49,12 +31,17 @@ class Prednaska(models.Model):
|
|||
verbose_name_plural = 'Přednášky'
|
||||
ordering = ['org', 'nazev']
|
||||
|
||||
class Obtiznost(models.IntegerChoices):
|
||||
LEHKA = 1, "Lehká"
|
||||
STREDNI = 2, "Střední"
|
||||
TEZKA = 3, "Těžká"
|
||||
|
||||
id = models.AutoField(primary_key = True)
|
||||
nazev = models.CharField('Název', max_length = 300)
|
||||
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')
|
||||
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')
|
||||
klicova = models.CharField('Klíčová slova', max_length = 200, null = True, blank = True)
|
||||
seznamy = models.ManyToManyField(Seznam)
|
||||
|
@ -96,9 +83,15 @@ class Hlasovani(models.Model):
|
|||
verbose_name = 'Hlasování'
|
||||
verbose_name_plural = 'Hlasování'
|
||||
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)
|
||||
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)
|
||||
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.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 personalni.models import Osoba
|
||||
|
||||
def newPrednaska(request):
|
||||
# hlasovani se vztahuje k nejnovejsimu soustredeni
|
||||
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:
|
||||
return render(request, 'universal.html', {
|
||||
'title': "Nelze hlasovat",
|
||||
|
@ -87,7 +87,7 @@ class SeznamListView(generic.ListView):
|
|||
|
||||
# hlasovani se vztahuje k nejnovejsimu soustredeni
|
||||
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:
|
||||
hlasovani_set = obj.hlasovani_set.filter(seznam=seznam).only('body')
|
||||
|
|
Loading…
Reference in a new issue