mamweb/prednasky/models.py

84 lines
2.5 KiB
Python
Raw Normal View History

2016-04-17 23:48:39 +02:00
# -*- coding: utf-8 -*-
from django.db import models
2019-04-16 22:18:49 +02:00
from django.utils.encoding import force_text
2019-04-16 22:18:49 +02:00
from seminar.models import Organizator, Soustredeni
STAV_NAVRH = 1
STAV_BUDE = 2
STAV_CHOICES = (
(STAV_NAVRH, 'Návrh'),
(STAV_BUDE, 'Bude')
)
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']
2019-04-16 22:18:49 +02:00
id = models.AutoField(primary_key = True)
soustredeni = models.ForeignKey(Soustredeni,null = True, default = None,
on_delete=models.PROTECT)
2019-04-16 22:18:49 +02:00
stav = models.IntegerField('Stav',choices=STAV_CHOICES,default = STAV_NAVRH)
2019-04-16 22:18:49 +02:00
def __str__(self):
return "Seznam {}přednášek na {}".format("návrhů "
if self.stav == STAV_NAVRH else "", self.soustredeni)
2016-04-17 23:48:39 +02:00
CHOICES_OBTIZNOST = (
2019-05-11 01:15:05 +02:00
(1, 'Lehká'),
(2, 'Střední'),
(3, 'Těžká'),
)
2016-04-17 23:48:39 +02:00
CHOICES_BODY = (
2019-04-16 22:18:49 +02:00
(-1, '-1'),
(0, '0'),
(1, '1'),
)
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']
id = models.AutoField(primary_key = True)
nazev = models.CharField('Název', max_length = 300)
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í')
obtiznost = models.IntegerField('Obtížnost', choices=CHOICES_OBTIZNOST)
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):
return "{} ({})".format(self.nazev, self.org)
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']
id = models.AutoField(primary_key = True)
prednaska = models.ForeignKey(Prednaska, on_delete=models.CASCADE)
2019-04-16 22:18:49 +02:00
body = models.IntegerField('Body', default = 0, choices = CHOICES_BODY)
ucastnik = models.CharField('Účastník', max_length = 100)
seznam = models.ForeignKey(Seznam,null=True,on_delete=models.SET_NULL)
2019-04-16 22:18:49 +02:00
def __str__(self):
return "{} dal {} bodů {} v seznamu {}".format(self.ucastnik,
self.body, self.prednaska, self.seznam)
2016-04-17 23:48:39 +02:00