2016-04-17 23:48:39 +02:00
|
|
|
from django.db import models
|
2016-09-29 03:59:28 +02:00
|
|
|
|
2024-05-01 15:37:54 +02:00
|
|
|
from soustredeni.models import Soustredeni
|
2025-01-24 15:13:37 +01:00
|
|
|
from personalni.models import Organizator, Osoba
|
2016-09-29 01:19:35 +02:00
|
|
|
|
|
|
|
|
2016-09-29 01:54:22 +02:00
|
|
|
class Seznam(models.Model):
|
2019-04-16 22:18:49 +02:00
|
|
|
class Meta:
|
|
|
|
db_table = 'prednasky_seznam'
|
|
|
|
verbose_name = 'Seznam přednášek'
|
|
|
|
verbose_name_plural = 'Seznamy přednášek'
|
|
|
|
ordering = ['soustredeni', 'stav']
|
2016-09-29 01:54:22 +02:00
|
|
|
|
2025-01-24 15:36:33 +01:00
|
|
|
class Stav(models.IntegerChoices):
|
|
|
|
NAVRH = 1, "Návrh"
|
|
|
|
BUDE = 2, "Bude"
|
|
|
|
|
2019-04-16 22:18:49 +02:00
|
|
|
id = models.AutoField(primary_key = True)
|
2019-06-10 23:55:45 +02:00
|
|
|
soustredeni = models.ForeignKey(Soustredeni,null = True, default = None,
|
|
|
|
on_delete=models.PROTECT)
|
2025-01-24 15:36:33 +01:00
|
|
|
stav = models.IntegerField('Stav', choices=Stav.choices, default=Stav.NAVRH)
|
2016-09-29 03:59:28 +02:00
|
|
|
|
2019-04-16 22:18:49 +02:00
|
|
|
def __str__(self):
|
2019-06-20 22:16:35 +02:00
|
|
|
return "Seznam {}přednášek na {}".format("návrhů "
|
2025-01-24 15:36:33 +01:00
|
|
|
if self.stav == Seznam.Stav.NAVRH else "", self.soustredeni)
|
2016-04-17 23:48:39 +02:00
|
|
|
|
|
|
|
class Prednaska(models.Model):
|
2019-04-16 22:18:49 +02:00
|
|
|
class Meta:
|
|
|
|
db_table = 'prednasky_prednaska'
|
|
|
|
verbose_name = 'Přednáška'
|
|
|
|
verbose_name_plural = 'Přednášky'
|
|
|
|
ordering = ['org', 'nazev']
|
|
|
|
|
2025-01-24 15:36:33 +01:00
|
|
|
class Obtiznost(models.IntegerChoices):
|
|
|
|
LEHKA = 1, "Lehká"
|
|
|
|
STREDNI = 2, "Střední"
|
|
|
|
TEZKA = 3, "Těžká"
|
|
|
|
|
2019-04-16 22:18:49 +02:00
|
|
|
id = models.AutoField(primary_key = True)
|
|
|
|
nazev = models.CharField('Název', max_length = 300)
|
2019-06-10 23:55:45 +02:00
|
|
|
org = models.ForeignKey(Organizator, on_delete=models.PROTECT)
|
2019-04-16 22:18:49 +02:00
|
|
|
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í')
|
2025-01-24 15:36:33 +01:00
|
|
|
obtiznost = models.IntegerField('Obtížnost', choices=Obtiznost.choices)
|
2019-04-16 22:18:49 +02:00
|
|
|
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)
|
|
|
|
|
|
|
|
def __str__(self):
|
2019-06-20 22:16:35 +02:00
|
|
|
return "{} ({})".format(self.nazev, self.org)
|
2016-09-29 01:19:35 +02:00
|
|
|
|
2016-04-17 23:48:39 +02:00
|
|
|
|
2025-01-24 15:13:37 +01:00
|
|
|
class Znalost(models.Model):
|
|
|
|
class Meta:
|
|
|
|
db_table = 'prednasky_znalost'
|
|
|
|
verbose_name = 'Znalost k přednáškám'
|
|
|
|
verbose_name_plural = 'Znalosti k přednáškám'
|
|
|
|
|
|
|
|
nazev = models.CharField('Nadpis', max_length=200, blank=False, null=False, help_text = 'Např. Neuronové sítě')
|
|
|
|
text = models.TextField('Detailní popis', blank=True, null=True, help_text="Např. Perceptron, vrstevnatá síť, forward a backward propagation")
|
|
|
|
seznamy = models.ManyToManyField(Seznam)
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return self.nazev
|
|
|
|
|
|
|
|
|
|
|
|
class HlasovaniOZnalostech(models.Model):
|
|
|
|
class ODPOVED(models.IntegerChoices):
|
|
|
|
UMIM = -1, 'Tohle celkem umím'
|
|
|
|
CIRCA = 0, 'Už jsem o tom slyšel, ale neřekl bychm, že to úplně umím'
|
|
|
|
NEUMIM = 1, 'Tohle vůbec neznám'
|
|
|
|
|
|
|
|
odpoved = models.CharField(u'odpověď', max_length=16, choices=ODPOVED.choices, blank=False, null=False)
|
|
|
|
znalost = models.ForeignKey(Znalost, on_delete=models.CASCADE, blank=False, null=False)
|
|
|
|
ucastnik = models.ForeignKey(Osoba, on_delete=models.CASCADE, blank=False, null=False)
|
|
|
|
seznam = models.ForeignKey(Seznam, on_delete=models.SET_NULL, blank=True, null=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-17 23:48:39 +02:00
|
|
|
class Hlasovani(models.Model):
|
2019-04-16 22:18:49 +02:00
|
|
|
class Meta:
|
|
|
|
db_table = 'prednasky_hlasovani'
|
|
|
|
verbose_name = 'Hlasování'
|
|
|
|
verbose_name_plural = 'Hlasování'
|
|
|
|
ordering = ['ucastnik', 'prednaska']
|
2025-01-24 15:36:33 +01:00
|
|
|
|
|
|
|
class Body(models.IntegerChoices):
|
|
|
|
NECHCI = -1, "rozhodně nechci"
|
|
|
|
JEDNO = 0, "je mi to jedno"
|
|
|
|
CHCI = 1, "rozhodně chci"
|
|
|
|
|
2019-04-16 22:18:49 +02:00
|
|
|
id = models.AutoField(primary_key = True)
|
2019-06-10 23:55:45 +02:00
|
|
|
prednaska = models.ForeignKey(Prednaska, on_delete=models.CASCADE)
|
2025-01-24 15:36:33 +01:00
|
|
|
body = models.IntegerField('Body', default = Body.JEDNO, choices = Body.choices)
|
2019-04-16 22:18:49 +02:00
|
|
|
ucastnik = models.CharField('Účastník', max_length = 100)
|
2019-06-10 23:55:45 +02:00
|
|
|
seznam = models.ForeignKey(Seznam,null=True,on_delete=models.SET_NULL)
|
2019-04-16 22:18:49 +02:00
|
|
|
|
|
|
|
def __str__(self):
|
2019-06-20 22:16:35 +02:00
|
|
|
return "{} dal {} bodů {} v seznamu {}".format(self.ucastnik,
|
|
|
|
self.body, self.prednaska, self.seznam)
|
2016-04-17 23:48:39 +02:00
|
|
|
|