Browse Source

Opravy pro Django 2.0

Zatím jen část.
export_seznamu_prednasek
parent
commit
a1731ef157
  1. 8
      galerie/models.py
  2. 11
      korektury/models.py
  3. 2
      mamweb/settings_common.py
  4. 2
      mamweb/settings_local.py
  5. 9
      prednasky/models.py
  6. 2
      seminar/admin.py
  7. 2
      seminar/export.py
  8. 92
      seminar/models.py
  9. 2
      seminar/views.py

8
galerie/models.py

@ -57,7 +57,7 @@ class Obrazek(models.Model):
nazev = models.CharField('Název', max_length=50, blank=True, null=True) nazev = models.CharField('Název', max_length=50, blank=True, null=True)
popis = models.TextField('Popis', blank=True, null=True) popis = models.TextField('Popis', blank=True, null=True)
datum_vlozeni = models.DateTimeField('Datum vložení', auto_now_add=True) datum_vlozeni = models.DateTimeField('Datum vložení', auto_now_add=True)
galerie = models.ForeignKey('Galerie', blank=True, null=True) galerie = models.ForeignKey('Galerie', blank=True, null=True, on_delete=models.SET_NULL)
poradi = models.IntegerField('Pořadí', blank=True, null=True) poradi = models.IntegerField('Pořadí', blank=True, null=True)
def __unicode__(self): def __unicode__(self):
@ -88,8 +88,10 @@ class Galerie(models.Model):
popis = models.TextField('Popis', blank = True, null = True) popis = models.TextField('Popis', blank = True, null = True)
titulni_obrazek = models.ForeignKey(Obrazek, blank = True, null = True, related_name = "+", on_delete = models.SET_NULL) titulni_obrazek = models.ForeignKey(Obrazek, blank = True, null = True, related_name = "+", on_delete = models.SET_NULL)
zobrazit = models.IntegerField('Zobrazit?', default = ORG, choices = VIDITELNOST) zobrazit = models.IntegerField('Zobrazit?', default = ORG, choices = VIDITELNOST)
galerie_up = models.ForeignKey('Galerie', blank = True, null = True) galerie_up = models.ForeignKey('Galerie', blank = True, null = True,
soustredeni = models.ForeignKey(Soustredeni, blank = True, null = True) on_delete=models.SET_NULL)
soustredeni = models.ForeignKey(Soustredeni, blank = True, null = True,
on_delete=models.PROTECT)
poradi = models.IntegerField('Pořadí', blank = True, null = True) poradi = models.IntegerField('Pořadí', blank = True, null = True)
def __unicode__(self): def __unicode__(self):

11
korektury/models.py

@ -50,8 +50,7 @@ class KorekturovanePDF(models.Model):
org = models.ForeignKey(Organizator, blank=True, org = models.ForeignKey(Organizator, blank=True,
help_text='Zodpovědný organizátor za obsah', help_text='Zodpovědný organizátor za obsah',
null=True, null=True, default=None, on_delete=models.SET_NULL)
default=None)
stran = models.IntegerField(u'počet stran', help_text='Počet stran PDF', stran = models.IntegerField(u'počet stran', help_text='Počet stran PDF',
default=0) default=0)
@ -124,7 +123,7 @@ class Oprava(models.Model):
#Interní ID #Interní ID
id = models.AutoField(primary_key = True) id = models.AutoField(primary_key = True)
pdf = models.ForeignKey(KorekturovanePDF, default=-1) pdf = models.ForeignKey(KorekturovanePDF, default=-1, on_delete=models.PROTECT)
strana = models.IntegerField(u'strana s opravou', help_text='Strana s opravou (od 0)') strana = models.IntegerField(u'strana s opravou', help_text='Strana s opravou (od 0)')
@ -146,7 +145,7 @@ class Oprava(models.Model):
autor = models.ForeignKey(Organizator, blank = True, autor = models.ForeignKey(Organizator, blank = True,
help_text='Autor opravy', help_text='Autor opravy',
null = True) null = True, on_delete=models.SET_NULL)
text = models.TextField(u'text opravy',blank = True, help_text='Text opravy') text = models.TextField(u'text opravy',blank = True, help_text='Text opravy')
@ -173,10 +172,10 @@ class Komentar(models.Model):
cas = models.DateTimeField(u'čas komentáře',default=timezone.now,help_text = 'Čas zadání komentáře') cas = models.DateTimeField(u'čas komentáře',default=timezone.now,help_text = 'Čas zadání komentáře')
oprava = models.ForeignKey(Oprava) oprava = models.ForeignKey(Oprava, on_delete=models.CASCADE)
autor = models.ForeignKey(Organizator, blank = True, autor = models.ForeignKey(Organizator, blank = True,
help_text = u'Autor komentáře', help_text = u'Autor komentáře',
null = True) null = True, on_delete=models.SET_NULL)
text = models.TextField(u'text komentáře',blank = True, help_text='Text komentáře') text = models.TextField(u'text komentáře',blank = True, help_text='Text komentáře')

2
mamweb/settings_common.py

@ -52,7 +52,7 @@ AUTHENTICATION_BACKENDS = (
) )
MIDDLEWARE_CLASSES = ( MIDDLEWARE = (
'reversion.middleware.RevisionMiddleware', 'reversion.middleware.RevisionMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware', 'django.middleware.common.CommonMiddleware',

2
mamweb/settings_local.py

@ -10,7 +10,7 @@ import os.path
# Import common settings # Import common settings
from .settings_common import * from .settings_common import *
MIDDLEWARE_CLASSES += ( MIDDLEWARE += (
'debug_toolbar.middleware.DebugToolbarMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware',
) )

9
prednasky/models.py

@ -25,7 +25,8 @@ class Seznam(models.Model):
ordering = ['soustredeni', 'stav'] ordering = ['soustredeni', 'stav']
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)
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):
@ -55,7 +56,7 @@ class Prednaska(models.Model):
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) 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=CHOICES_OBTIZNOST)
@ -75,10 +76,10 @@ class Hlasovani(models.Model):
verbose_name_plural = 'Hlasování' verbose_name_plural = 'Hlasování'
ordering = ['ucastnik', 'prednaska'] ordering = ['ucastnik', 'prednaska']
id = models.AutoField(primary_key = True) id = models.AutoField(primary_key = True)
prednaska = models.ForeignKey(Prednaska) prednaska = models.ForeignKey(Prednaska, on_delete=models.CASCADE)
body = models.IntegerField('Body', default = 0, choices = CHOICES_BODY) body = models.IntegerField('Body', default = 0, choices = CHOICES_BODY)
ucastnik = models.CharField('Účastník', max_length = 100) ucastnik = models.CharField('Účastník', max_length = 100)
seznam = models.ForeignKey(Seznam) seznam = models.ForeignKey(Seznam,null=True,on_delete=models.SET_NULL)
def __str__(self): def __str__(self):
return force_unicode("{} dal {} bodů {} v seznamu {}".format(self.ucastnik, return force_unicode("{} dal {} bodů {} v seznamu {}".format(self.ucastnik,

2
seminar/admin.py

@ -9,7 +9,7 @@ from ckeditor_uploader.widgets import CKEditorUploadingWidget
from django.db.models import Count from django.db.models import Count
from django.db import models from django.db import models
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.core.urlresolvers import reverse from django.urls import reverse
from django.contrib.auth.models import User from django.contrib.auth.models import User

2
seminar/export.py

@ -1,7 +1,7 @@
import datetime, django import datetime, django
from django.shortcuts import get_object_or_404, render from django.shortcuts import get_object_or_404, render
from django.http import HttpResponse from django.http import HttpResponse
from django.core.urlresolvers import reverse from django.urls import reverse
from django.views import generic from django.views import generic
from django.utils.encoding import force_text from django.utils.encoding import force_text

92
seminar/models.py

@ -9,7 +9,7 @@ from django.conf import settings
from django.utils.encoding import python_2_unicode_compatible from django.utils.encoding import python_2_unicode_compatible
from django.utils.encoding import force_text from django.utils.encoding import force_text
from django.utils.text import slugify from django.utils.text import slugify
from django.core.urlresolvers import reverse from django.urls import reverse
from django.core.cache import cache from django.core.cache import cache
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.utils.text import get_valid_filename from django.utils.text import get_valid_filename
@ -64,7 +64,7 @@ class Osoba(SeminarModelBase):
# User, pokud má na webu účet # User, pokud má na webu účet
user = models.OneToOneField(settings.AUTH_USER_MODEL, blank=True, null=True, user = models.OneToOneField(settings.AUTH_USER_MODEL, blank=True, null=True,
verbose_name='uživatel') verbose_name='uživatel', on_delete=models.DO_NOTHING)
# Pohlaví. Že ho neznáme se snad nestane (a ušetří to práci při programování) # Pohlaví. Že ho neznáme se snad nestane (a ušetří to práci při programování)
pohlavi_muz = models.BooleanField('pohlaví (muž)', default=False) pohlavi_muz = models.BooleanField('pohlaví (muž)', default=False)
@ -180,7 +180,7 @@ class Skola(SeminarModelBase):
help_text='Neveřejná poznámka ke škole (plain text)') help_text='Neveřejná poznámka ke škole (plain text)')
kontaktni_osoba = models.ForeignKey(Osoba, verbose_name='Kontaktní osoba', kontaktni_osoba = models.ForeignKey(Osoba, verbose_name='Kontaktní osoba',
blank=True, null=True) blank=True, null=True, on_delete=models.SET_NULL)
def __str__(self): def __str__(self):
return '{}, {}, {}'.format(self.nazev, self.ulice, self.mesto) return '{}, {}, {}'.format(self.nazev, self.ulice, self.mesto)
@ -199,7 +199,8 @@ class Prijemce(SeminarModelBase):
help_text='Neveřejná poznámka k příemci čísel (plain text)') help_text='Neveřejná poznámka k příemci čísel (plain text)')
osoba = models.OneToOneField(Osoba, verbose_name='komu', blank=False, null=False, osoba = models.OneToOneField(Osoba, verbose_name='komu', blank=False, null=False,
help_text='Které osobě či na jakou adresu se mají zasílat čísla') help_text='Které osobě či na jakou adresu se mají zasílat čísla',
on_delete=models.CASCADE)
# FIXME: možná chceme něco jako vazbu na osobu XOR školu a počet kusů k zaslání # FIXME: možná chceme něco jako vazbu na osobu XOR školu a počet kusů k zaslání
# FIXME: a možná taky posílání na mail a možná taky přes něj chceme posílat i řešitelům # FIXME: a možná taky posílání na mail a možná taky přes něj chceme posílat i řešitelům
@ -220,9 +221,12 @@ class Resitel(SeminarModelBase):
# Interní ID # Interní ID
id = models.AutoField(primary_key = True) id = models.AutoField(primary_key = True)
osoba = models.OneToOneField(Osoba, blank=False, null=True, verbose_name='osoba') # FIXME opravit po prvni migraci osoba = models.OneToOneField(Osoba, blank=False, null=True, verbose_name='osoba',
on_delete=models.SET_NULL) # FIXME opravit po prvni migraci
skola = models.ForeignKey(Skola, blank=True, null=True, verbose_name='škola') skola = models.ForeignKey(Skola, blank=True, null=True, verbose_name='škola',
on_delete=models.SET_NULL)
# Očekávaný rok maturity a vyřazení z aktivních řešitelů # Očekávaný rok maturity a vyřazení z aktivních řešitelů
rok_maturity = models.IntegerField('rok maturity', blank=True, null=True) rok_maturity = models.IntegerField('rok maturity', blank=True, null=True)
@ -378,7 +382,8 @@ class Cislo(SeminarModelBase):
# Interní ID # Interní ID
id = models.AutoField(primary_key = True) id = models.AutoField(primary_key = True)
rocnik = models.ForeignKey(Rocnik, verbose_name='ročník', related_name='cisla', db_index=True) rocnik = models.ForeignKey(Rocnik, verbose_name='ročník', related_name='cisla',
db_index=True,on_delete=models.PROTECT)
cislo = models.CharField('název čísla', max_length=32, db_index=True, cislo = models.CharField('název čísla', max_length=32, db_index=True,
help_text='Většinou jen "1", vyjímečně "7-8", lexikograficky určuje pořadí v ročníku!') help_text='Většinou jen "1", vyjímečně "7-8", lexikograficky určuje pořadí v ročníku!')
@ -456,7 +461,8 @@ class Organizator(SeminarModelBase):
# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu # zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu
osoba = models.OneToOneField(Osoba, verbose_name='osoba', related_name='org', osoba = models.OneToOneField(Osoba, verbose_name='osoba', related_name='org',
help_text='osobní údaje organizátora', null=True, blank=False) #FIXME opravit po migraci help_text='osobní údaje organizátora', null=True, blank=False,
on_delete=models.SET_NULL) #FIXME opravit po migraci
vytvoreno = models.DateTimeField( vytvoreno = models.DateTimeField(
'Vytvořeno', 'Vytvořeno',
@ -506,7 +512,8 @@ class Soustredeni(SeminarModelBase):
# Interní ID # Interní ID
id = models.AutoField(primary_key = True) id = models.AutoField(primary_key = True)
rocnik = models.ForeignKey(Rocnik, verbose_name='ročník', related_name='soustredeni') rocnik = models.ForeignKey(Rocnik, verbose_name='ročník', related_name='soustredeni',
on_delete=models.PROTECT)
datum_zacatku = models.DateField('datum začátku', blank=True, null=True, datum_zacatku = models.DateField('datum začátku', blank=True, null=True,
help_text='První den soustředění') help_text='První den soustředění')
@ -575,7 +582,8 @@ class Problem(SeminarModelBase):
# Problém má podproblémy # Problém má podproblémy
nadproblem = models.ForeignKey('self', verbose_name='nadřazený problém', nadproblem = models.ForeignKey('self', verbose_name='nadřazený problém',
related_name='nadproblem_%(class)s', null=True, blank=True) related_name='nadproblem_%(class)s', null=True, blank=True,
on_delete=models.SET_NULL)
STAV_NAVRH = 'navrh' STAV_NAVRH = 'navrh'
STAV_ZADANY = 'zadany' STAV_ZADANY = 'zadany'
@ -596,10 +604,12 @@ class Problem(SeminarModelBase):
help_text='Neveřejný návrh úlohy, návrh řešení, text zadání, poznámky ...') help_text='Neveřejný návrh úlohy, návrh řešení, text zadání, poznámky ...')
autor = models.ForeignKey(Organizator, verbose_name='autor problému', autor = models.ForeignKey(Organizator, verbose_name='autor problému',
related_name='autor_problemu_%(class)s', null=True, blank=True) related_name='autor_problemu_%(class)s', null=True, blank=True,
on_delete=models.SET_NULL)
garant = models.ForeignKey(Organizator, verbose_name='garant zadaného problému', garant = models.ForeignKey(Organizator, verbose_name='garant zadaného problému',
related_name='garant_problemu_%(class)s', null=True, blank=True) related_name='garant_problemu_%(class)s', null=True, blank=True,
on_delete=models.SET_NULL)
opravovatele = models.ManyToManyField(Organizator, verbose_name='opravovatelé', opravovatele = models.ManyToManyField(Organizator, verbose_name='opravovatelé',
blank=True, related_name='opravovatele_%(class)s') blank=True, related_name='opravovatele_%(class)s')
@ -662,7 +672,8 @@ class Tema(Problem):
tema_typ = models.CharField('Typ tématu', max_length=16, choices=TEMA_CHOICES, tema_typ = models.CharField('Typ tématu', max_length=16, choices=TEMA_CHOICES,
blank=False, default=TEMA_TEMA) blank=False, default=TEMA_TEMA)
rocnik = models.ForeignKey(Rocnik, verbose_name='ročník',blank=True, null=True) rocnik = models.ForeignKey(Rocnik, verbose_name='ročník',blank=True, null=True,
on_delete=models.PROTECT)
def kod_v_rocniku(self): def kod_v_rocniku(self):
if self.stav == 'zadany': if self.stav == 'zadany':
@ -677,7 +688,8 @@ class Clanek(Problem):
verbose_name = 'Článek' verbose_name = 'Článek'
verbose_name_plural = 'Články' verbose_name_plural = 'Články'
cislo = models.ForeignKey(Cislo, verbose_name='číslo', blank=True, null=True) cislo = models.ForeignKey(Cislo, verbose_name='číslo', blank=True, null=True,
on_delete=models.PROTECT)
def kod_v_rocniku(self): def kod_v_rocniku(self):
if self.stav == 'zadany': if self.stav == 'zadany':
# Nemělo by být potřeba # Nemělo by být potřeba
@ -708,14 +720,15 @@ class Uloha(Problem):
verbose_name_plural = 'Úlohy' verbose_name_plural = 'Úlohy'
cislo_zadani = models.ForeignKey(Cislo, verbose_name='číslo zadání', blank=True, cislo_zadani = models.ForeignKey(Cislo, verbose_name='číslo zadání', blank=True,
null=True, related_name='zadane_ulohy') null=True, related_name='zadane_ulohy', on_delete=models.PROTECT)
cislo_deadline = models.ForeignKey(Cislo, verbose_name='číslo deadlinu', blank=True, cislo_deadline = models.ForeignKey(Cislo, verbose_name='číslo deadlinu', blank=True,
null=True, related_name='deadlinove_ulohy') null=True, related_name='deadlinove_ulohy', on_delete=models.PROTECT)
cislo_reseni = models.ForeignKey(Cislo, verbose_name='číslo řešení', blank=True, cislo_reseni = models.ForeignKey(Cislo, verbose_name='číslo řešení', blank=True,
null=True, related_name='resene_ulohy', null=True, related_name='resene_ulohy',
help_text='Číslo s řešením úlohy, jen pro úlohy') help_text='Číslo s řešením úlohy, jen pro úlohy',
on_delete=models.PROTECT)
max_body = models.DecimalField(max_digits=8, decimal_places=1, verbose_name='maximum bodů', max_body = models.DecimalField(max_digits=8, decimal_places=1, verbose_name='maximum bodů',
blank=True, null=True) blank=True, null=True)
@ -765,7 +778,8 @@ class Reseni(SeminarModelBase):
default=FORMA_EMAIL) default=FORMA_EMAIL)
text_cely = models.OneToOneField(Text, verbose_name='Plná verze textu řešení', text_cely = models.OneToOneField(Text, verbose_name='Plná verze textu řešení',
blank=True, null=True, related_name="reseni_cely_set") blank=True, null=True, related_name="reseni_cely_set",
on_delete=models.SET_NULL)
text_zkraceny = models.ManyToManyField(Text, verbose_name='zkrácené verze řešení', text_zkraceny = models.ManyToManyField(Text, verbose_name='zkrácené verze řešení',
help_text='Seznam úryvků z řešení',related_name="reseni_zkraceny_set") help_text='Seznam úryvků z řešení',related_name="reseni_zkraceny_set")
@ -801,11 +815,11 @@ class Hodnoceni(SeminarModelBase):
blank=False, null=False) blank=False, null=False)
cislo_body = models.ForeignKey(Cislo, verbose_name='číslo pro body', cislo_body = models.ForeignKey(Cislo, verbose_name='číslo pro body',
related_name='hodnoceni', blank=False, null=False) related_name='hodnoceni', blank=False, null=False, on_delete=models.PROTECT)
reseni = models.ForeignKey(Reseni, verbose_name='řešení') reseni = models.ForeignKey(Reseni, verbose_name='řešení', on_delete=models.CASCADE)
problem = models.ForeignKey(Problem, verbose_name='problém') problem = models.ForeignKey(Problem, verbose_name='problém', on_delete=models.PROTECT)
def __str__(self): def __str__(self):
return "{}, {}, {}".format(self.problem, self.reseni, self.body) return "{}, {}, {}".format(self.problem, self.reseni, self.body)
@ -856,7 +870,8 @@ class PrilohaReseni(SeminarModelBase):
# Interní ID # Interní ID
id = models.AutoField(primary_key = True) id = models.AutoField(primary_key = True)
reseni = models.ForeignKey(Reseni, verbose_name='řešení', related_name='prilohy') reseni = models.ForeignKey(Reseni, verbose_name='řešení', related_name='prilohy',
on_delete=models.CASCADE)
vytvoreno = models.DateTimeField('vytvořeno', default=timezone.now, blank=True, editable=False) vytvoreno = models.DateTimeField('vytvořeno', default=timezone.now, blank=True, editable=False)
@ -887,7 +902,8 @@ class Pohadka(SeminarModelBase):
# Při nahrávání z TeXu není vyplnění vyžadováno, v adminu je # Při nahrávání z TeXu není vyplnění vyžadováno, v adminu je
null=True, null=True,
blank=False blank=False,
on_delete=models.SET_NULL
) )
vytvoreno = models.DateTimeField( vytvoreno = models.DateTimeField(
@ -915,9 +931,10 @@ class Soustredeni_Ucastnici(SeminarModelBase):
# Interní ID # Interní ID
id = models.AutoField(primary_key = True) id = models.AutoField(primary_key = True)
resitel = models.ForeignKey(Resitel, verbose_name='řešitel') resitel = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT)
soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění') soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění',
on_delete=models.PROTECT)
poznamka = models.TextField('neveřejná poznámka', blank=True, poznamka = models.TextField('neveřejná poznámka', blank=True,
help_text='Neveřejná poznámka k účasti (plain text)') help_text='Neveřejná poznámka k účasti (plain text)')
@ -939,9 +956,11 @@ class Soustredeni_Organizatori(SeminarModelBase):
# Interní ID # Interní ID
id = models.AutoField(primary_key = True) id = models.AutoField(primary_key = True)
organizator = models.ForeignKey(Organizator, verbose_name='organizátor') organizator = models.ForeignKey(Organizator, verbose_name='organizátor',
on_delete=models.PROTECT)
soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění') soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění',
on_delete=models.PROTECT)
poznamka = models.TextField('neveřejná poznámka', blank=True, poznamka = models.TextField('neveřejná poznámka', blank=True,
help_text='Neveřejná poznámka k účasti organizátora (plain text)') help_text='Neveřejná poznámka k účasti organizátora (plain text)')
@ -1018,9 +1037,9 @@ class Reseni_Resitele(models.Model):
# Interní ID # Interní ID
id = models.AutoField(primary_key = True) id = models.AutoField(primary_key = True)
resitele = models.ForeignKey(Resitel, verbose_name='řešitel') resitele = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT)
reseni = models.ForeignKey(Reseni, verbose_name='řešení') reseni = models.ForeignKey(Reseni, verbose_name='řešení', on_delete=models.CASCADE)
# podil - jakou merou se ktery resitel podilel na danem reseni # podil - jakou merou se ktery resitel podilel na danem reseni
# - pouziti v budoucnu, pokud by resitele nemeli dostat vsichni stejne bodu za spolecne reseni # - pouziti v budoucnu, pokud by resitele nemeli dostat vsichni stejne bodu za spolecne reseni
@ -1041,9 +1060,9 @@ class Konfery_Ucastnici(models.Model):
# Interní ID # Interní ID
id = models.AutoField(primary_key = True) id = models.AutoField(primary_key = True)
resitel = models.ForeignKey(Resitel, verbose_name='řešitel') resitel = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT)
konfera = models.ForeignKey(Konfera, verbose_name='konfera') konfera = models.ForeignKey(Konfera, verbose_name='konfera', on_delete=models.CASCADE)
poznamka = models.TextField('neveřejná poznámka', blank=True, poznamka = models.TextField('neveřejná poznámka', blank=True,
help_text='Neveřejná poznámka k účasti (plain text)') help_text='Neveřejná poznámka k účasti (plain text)')
@ -1065,7 +1084,8 @@ class Obrazek(SeminarModelBase):
null=True, blank=True) null=True, blank=True)
text = models.ForeignKey(Text, verbose_name='text', text = models.ForeignKey(Text, verbose_name='text',
help_text='text, ve kterém se obrázek vyskytuje', null=False, blank=False) help_text='text, ve kterém se obrázek vyskytuje',
null=False, blank=False, on_delete=models.CASCADE)
do_cisla_barevny = models.FileField('barevný obrázek do čísla', do_cisla_barevny = models.FileField('barevný obrázek do čísla',
help_text = 'Barevná verze obrázku do čísla', help_text = 'Barevná verze obrázku do čísla',
@ -1284,10 +1304,11 @@ class Nastaveni(SingletonModel):
db_table = 'seminar_nastaveni' db_table = 'seminar_nastaveni'
verbose_name = 'Nastavení semináře' verbose_name = 'Nastavení semináře'
aktualni_rocnik = models.ForeignKey(Rocnik, verbose_name='aktuální ročník', null=False) aktualni_rocnik = models.ForeignKey(Rocnik, verbose_name='aktuální ročník',
null=False, on_delete=models.PROTECT)
aktualni_cislo = models.ForeignKey(Cislo, verbose_name='poslední vydané číslo', aktualni_cislo = models.ForeignKey(Cislo, verbose_name='poslední vydané číslo',
null=False) null=False, on_delete=models.PROTECT)
def __str__(self): def __str__(self):
return 'Nastavení semináře' return 'Nastavení semináře'
@ -1321,7 +1342,8 @@ class Novinky(models.Model):
], ],
options={'quality': 95}) options={'quality': 95})
autor = models.ForeignKey(Organizator, verbose_name='Autor novinky', null=True) autor = models.ForeignKey(Organizator, verbose_name='Autor novinky', null=True,
on_delete=models.SET_NULL)
zverejneno = models.BooleanField('Zveřejněno', default=False) zverejneno = models.BooleanField('Zveřejněno', default=False)

2
seminar/views.py

@ -2,7 +2,7 @@
from django.shortcuts import get_object_or_404, render from django.shortcuts import get_object_or_404, render
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, JsonResponse from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, JsonResponse
from django.core.urlresolvers import reverse from django.urls import reverse
from django.core.exceptions import PermissionDenied, ObjectDoesNotExist from django.core.exceptions import PermissionDenied, ObjectDoesNotExist
from django.views import generic from django.views import generic
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _

Loading…
Cancel
Save