diff --git a/prednasky/admin.py b/prednasky/admin.py index d4bb925c..f79c7b0a 100644 --- a/prednasky/admin.py +++ b/prednasky/admin.py @@ -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, diff --git a/prednasky/models.py b/prednasky/models.py index da21b48d..5f1e1a76 100644 --- a/prednasky/models.py +++ b/prednasky/models.py @@ -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) diff --git a/prednasky/views.py b/prednasky/views.py index a2a2594c..dd64047f 100644 --- a/prednasky/views.py +++ b/prednasky/views.py @@ -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')