Merge branch 'data_migrations' of gimli.ms.mff.cuni.cz:/akce/mam/git/mamweb into data_migrations
This commit is contained in:
commit
2316530542
46 changed files with 704 additions and 209 deletions
|
@ -21,8 +21,8 @@ class Migration(migrations.Migration):
|
|||
('datum_zmeny', models.DateTimeField(auto_now=True, verbose_name=b'Datum posledn\xc3\xad zm\xc4\x9bny')),
|
||||
('popis', models.TextField(null=True, verbose_name=b'Popis', blank=True)),
|
||||
('zobrazit', models.IntegerField(default=1, verbose_name=b'Zobrazit?', choices=[(0, b'V\xc5\xbedy'), (1, b'Organiz\xc3\xa1tor\xc5\xafm'), (2, b'Nikdy')])),
|
||||
('galerie_up', models.ForeignKey(blank=True, to='galerie.Galerie', null=True)),
|
||||
('soustredeni', models.ForeignKey(blank=True, to='seminar.Soustredeni', null=True)),
|
||||
('galerie_up', models.ForeignKey(blank=True, to='galerie.Galerie', null=True, on_delete=models.CASCADE)),
|
||||
('soustredeni', models.ForeignKey(blank=True, to='seminar.Soustredeni', null=True, on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Galerie',
|
||||
|
@ -42,7 +42,7 @@ class Migration(migrations.Migration):
|
|||
('datum_vlozeni', models.DateTimeField(auto_now_add=True, verbose_name=b'Datum vlo\xc5\xbeen\xc3\xad')),
|
||||
('datum', models.DateTimeField(verbose_name=b'Datum po\xc5\x99\xc3\xadzen\xc3\xad fotografie')),
|
||||
('poradi', models.IntegerField(null=True, verbose_name=b'Po\xc5\x99ad\xc3\xad', blank=True)),
|
||||
('galerie', models.ForeignKey(to='galerie.Galerie')),
|
||||
('galerie', models.ForeignKey(to='galerie.Galerie', on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Obr\xe1zek',
|
||||
|
|
|
@ -14,7 +14,7 @@ class Migration(migrations.Migration):
|
|||
migrations.AlterField(
|
||||
model_name='obrazek',
|
||||
name='galerie',
|
||||
field=models.ForeignKey(blank=True, to='galerie.Galerie', null=True),
|
||||
field=models.ForeignKey(blank=True, to='galerie.Galerie', null=True, on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
|
71
galerie/migrations/0008_auto_20190430_2340.py
Normal file
71
galerie/migrations/0008_auto_20190430_2340.py
Normal file
|
@ -0,0 +1,71 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.20 on 2019-04-30 21:40
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import galerie.models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('galerie', '0007_obrazek_odstranen_datum'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='galerie',
|
||||
name='datum_vytvoreni',
|
||||
field=models.DateTimeField(auto_now_add=True, verbose_name='Datum vytvoření'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='galerie',
|
||||
name='datum_zmeny',
|
||||
field=models.DateTimeField(auto_now=True, verbose_name='Datum poslední změny'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='galerie',
|
||||
name='nazev',
|
||||
field=models.CharField(max_length=100, verbose_name='Název'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='galerie',
|
||||
name='popis',
|
||||
field=models.TextField(blank=True, null=True, verbose_name='Popis'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='galerie',
|
||||
name='poradi',
|
||||
field=models.IntegerField(blank=True, null=True, verbose_name='Pořadí'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='galerie',
|
||||
name='zobrazit',
|
||||
field=models.IntegerField(choices=[(0, 'Vždy'), (1, 'Organizátorům'), (2, 'Nikdy')], default=1, verbose_name='Zobrazit?'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='obrazek',
|
||||
name='datum_vlozeni',
|
||||
field=models.DateTimeField(auto_now_add=True, verbose_name='Datum vložení'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='obrazek',
|
||||
name='nazev',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='Název'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='obrazek',
|
||||
name='obrazek_velky',
|
||||
field=models.ImageField(help_text='Lze vložit libovolně velký obrázek. Ideální je, aby alespoň jeden rozměr měl alespoň 500px.', upload_to=galerie.models.obrazek_filename),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='obrazek',
|
||||
name='popis',
|
||||
field=models.TextField(blank=True, null=True, verbose_name='Popis'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='obrazek',
|
||||
name='poradi',
|
||||
field=models.IntegerField(blank=True, null=True, verbose_name='Pořadí'),
|
||||
),
|
||||
]
|
31
galerie/migrations/0009_auto_20190610_2358.py
Normal file
31
galerie/migrations/0009_auto_20190610_2358.py
Normal file
|
@ -0,0 +1,31 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.21 on 2019-06-10 21:58
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('galerie', '0008_auto_20190430_2340'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='galerie',
|
||||
name='galerie_up',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='galerie.Galerie'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='galerie',
|
||||
name='soustredeni',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='seminar.Soustredeni'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='obrazek',
|
||||
name='galerie',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='galerie.Galerie'),
|
||||
),
|
||||
]
|
|
@ -57,7 +57,7 @@ class Obrazek(models.Model):
|
|||
nazev = models.CharField('Název', max_length=50, blank=True, null=True)
|
||||
popis = models.TextField('Popis', blank=True, null=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)
|
||||
|
||||
def __unicode__(self):
|
||||
|
@ -88,8 +88,10 @@ class Galerie(models.Model):
|
|||
popis = models.TextField('Popis', blank = True, null = True)
|
||||
titulni_obrazek = models.ForeignKey(Obrazek, blank = True, null = True, related_name = "+", on_delete = models.SET_NULL)
|
||||
zobrazit = models.IntegerField('Zobrazit?', default = ORG, choices = VIDITELNOST)
|
||||
galerie_up = models.ForeignKey('Galerie', blank = True, null = True)
|
||||
soustredeni = models.ForeignKey(Soustredeni, blank = True, null = True)
|
||||
galerie_up = models.ForeignKey('Galerie', 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)
|
||||
|
||||
def __unicode__(self):
|
||||
|
|
|
@ -50,7 +50,7 @@ class Migration(migrations.Migration):
|
|||
('cas', models.DateTimeField(help_text=b'\xc4\x8cas zad\xc3\xa1n\xc3\xad koment\xc3\xa1\xc5\x99e', verbose_name='\u010das koment\xe1\u0159e')),
|
||||
('autor', models.TextField(help_text=b'Autor koment\xc3\xa1\xc5\x99e', verbose_name='autor koment\xe1\u0159e', blank=True)),
|
||||
('text', models.TextField(help_text=b'Text koment\xc3\xa1\xc5\x99e', verbose_name='text koment\xe1\u0159e', blank=True)),
|
||||
('oprava', models.ForeignKey(to='korektury.Oprava')),
|
||||
('oprava', models.ForeignKey(to='korektury.Oprava', on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['cas'],
|
||||
|
|
|
@ -19,7 +19,7 @@ class Migration(migrations.Migration):
|
|||
('cas', models.DateTimeField(default=django.utils.timezone.now, help_text=b'\xc4\x8cas zad\xc3\xa1n\xc3\xad koment\xc3\xa1\xc5\x99e', verbose_name='\u010das koment\xe1\u0159e')),
|
||||
('autor', models.TextField(help_text=b'Autor koment\xc3\xa1\xc5\x99e', verbose_name='autor koment\xe1\u0159e', blank=True)),
|
||||
('text', models.TextField(help_text=b'Text koment\xc3\xa1\xc5\x99e', verbose_name='text koment\xe1\u0159e', blank=True)),
|
||||
('oprava', models.ForeignKey(to='korektury.Oprava')),
|
||||
('oprava', models.ForeignKey(to='korektury.Oprava', on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['cas'],
|
||||
|
|
|
@ -14,7 +14,7 @@ class Migration(migrations.Migration):
|
|||
migrations.AddField(
|
||||
model_name='oprava',
|
||||
name='pdf',
|
||||
field=models.ForeignKey(default=-1, to='korektury.KorekturovanePDF'),
|
||||
field=models.ForeignKey(default=-1, to='korektury.KorekturovanePDF', on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -15,11 +15,11 @@ class Migration(migrations.Migration):
|
|||
migrations.AddField(
|
||||
model_name='komentar',
|
||||
name='autor_org',
|
||||
field=models.ForeignKey(blank=True, to='seminar.Organizator', help_text='Autor koment\xe1\u0159e', null=True),
|
||||
field=models.ForeignKey(blank=True, to='seminar.Organizator', help_text='Autor koment\xe1\u0159e', null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='oprava',
|
||||
name='autor_org',
|
||||
field=models.ForeignKey(blank=True, to='seminar.Organizator', help_text=b'Autor opravy', null=True),
|
||||
field=models.ForeignKey(blank=True, to='seminar.Organizator', help_text=b'Autor opravy', null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
]
|
||||
|
|
|
@ -16,10 +16,10 @@ class Migration(migrations.Migration):
|
|||
model_name='korekturovanepdf',
|
||||
name='org',
|
||||
field=models.ForeignKey(default=None,
|
||||
blank=True,
|
||||
to='seminar.Organizator',
|
||||
help_text=b'Zodpov\xc4\x9bdn\xc3\xbd\
|
||||
organiz\xc3\xa1tor za obsah',
|
||||
null=True),
|
||||
blank=True,
|
||||
to='seminar.Organizator',
|
||||
help_text=b'Zodpov\xc4\x9bdn\xc3\xbd\
|
||||
organiz\xc3\xa1tor za obsah',
|
||||
null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
]
|
||||
|
|
|
@ -14,6 +14,6 @@ class Migration(migrations.Migration):
|
|||
migrations.AlterField(
|
||||
model_name='korekturovanepdf',
|
||||
name='org',
|
||||
field=models.ForeignKey(default=None, blank=True, to='seminar.Organizator', help_text=b'Zodpov\xc4\x9bdn\xc3\xbd organiz\xc3\xa1tor za obsah', null=True),
|
||||
field=models.ForeignKey(default=None, blank=True, to='seminar.Organizator', help_text=b'Zodpov\xc4\x9bdn\xc3\xbd organiz\xc3\xa1tor za obsah', null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
]
|
||||
|
|
77
korektury/migrations/0016_auto_20190430_2340.py
Normal file
77
korektury/migrations/0016_auto_20190430_2340.py
Normal file
|
@ -0,0 +1,77 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.20 on 2019-04-30 21:40
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('korektury', '0015_auto_20161004_2005'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='komentar',
|
||||
name='cas',
|
||||
field=models.DateTimeField(default=django.utils.timezone.now, help_text='Čas zadání komentáře', verbose_name='čas komentáře'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='komentar',
|
||||
name='text',
|
||||
field=models.TextField(blank=True, help_text='Text komentáře', verbose_name='text komentáře'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='korekturovanepdf',
|
||||
name='cas',
|
||||
field=models.DateTimeField(default=django.utils.timezone.now, help_text='Čas vložení PDF', verbose_name='čas vložení PDF'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='korekturovanepdf',
|
||||
name='komentar',
|
||||
field=models.TextField(blank=True, help_text='Komentář ke korekturovanému PDF (např. na co se zaměřit)', verbose_name='komentář k PDF'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='korekturovanepdf',
|
||||
name='nazev',
|
||||
field=models.CharField(blank=True, help_text='Název (např. 22.1 verze 4) korekturovaného PDF', max_length=50, verbose_name='název PDF'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='korekturovanepdf',
|
||||
name='org',
|
||||
field=models.ForeignKey(blank=True, default=None, help_text='Zodpovědný organizátor za obsah', null=True, on_delete=django.db.models.deletion.CASCADE, to='seminar.Organizator'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='korekturovanepdf',
|
||||
name='status',
|
||||
field=models.CharField(choices=[('pridavani', 'Přidávání korektur'), ('zanaseni', 'Korektury jsou zanášeny'), ('zastarale', 'Stará verze, nekorigovat')], default='pridavani', max_length=16, verbose_name='stav PDF'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='korekturovanepdf',
|
||||
name='stran',
|
||||
field=models.IntegerField(default=0, help_text='Počet stran PDF', verbose_name='počet stran'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='oprava',
|
||||
name='autor',
|
||||
field=models.ForeignKey(blank=True, help_text='Autor opravy', null=True, on_delete=django.db.models.deletion.CASCADE, to='seminar.Organizator'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='oprava',
|
||||
name='status',
|
||||
field=models.CharField(choices=[('k_oprave', 'K opravě'), ('opraveno', 'Opraveno'), ('neni_chyba', 'Není chyba'), ('k_zaneseni', 'K zanesení do TeXu')], default='k_oprave', max_length=16, verbose_name='stav opravy'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='oprava',
|
||||
name='strana',
|
||||
field=models.IntegerField(help_text='Strana s opravou (od 0)', verbose_name='strana s opravou'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='oprava',
|
||||
name='text',
|
||||
field=models.TextField(blank=True, help_text='Text opravy', verbose_name='text opravy'),
|
||||
),
|
||||
]
|
36
korektury/migrations/0017_auto_20190610_2358.py
Normal file
36
korektury/migrations/0017_auto_20190610_2358.py
Normal file
|
@ -0,0 +1,36 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.21 on 2019-06-10 21:58
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('korektury', '0016_auto_20190430_2340'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='komentar',
|
||||
name='autor',
|
||||
field=models.ForeignKey(blank=True, help_text='Autor komentáře', null=True, on_delete=django.db.models.deletion.SET_NULL, to='seminar.Organizator'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='korekturovanepdf',
|
||||
name='org',
|
||||
field=models.ForeignKey(blank=True, default=None, help_text='Zodpovědný organizátor za obsah', null=True, on_delete=django.db.models.deletion.SET_NULL, to='seminar.Organizator'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='oprava',
|
||||
name='autor',
|
||||
field=models.ForeignKey(blank=True, help_text='Autor opravy', null=True, on_delete=django.db.models.deletion.SET_NULL, to='seminar.Organizator'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='oprava',
|
||||
name='pdf',
|
||||
field=models.ForeignKey(default=-1, on_delete=django.db.models.deletion.PROTECT, to='korektury.KorekturovanePDF'),
|
||||
),
|
||||
]
|
|
@ -49,9 +49,8 @@ class KorekturovanePDF(models.Model):
|
|||
pdf = models.FileField(u'PDF', upload_to = generate_filename)
|
||||
|
||||
org = models.ForeignKey(Organizator, blank=True,
|
||||
help_text='Zodpovědný organizátor za obsah',
|
||||
null=True,
|
||||
default=None)
|
||||
help_text='Zodpovědný organizátor za obsah',
|
||||
null=True, default=None, on_delete=models.SET_NULL)
|
||||
|
||||
stran = models.IntegerField(u'počet stran', help_text='Počet stran PDF',
|
||||
default=0)
|
||||
|
@ -124,7 +123,7 @@ class Oprava(models.Model):
|
|||
#Interní ID
|
||||
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)')
|
||||
|
||||
|
@ -146,7 +145,7 @@ class Oprava(models.Model):
|
|||
|
||||
autor = models.ForeignKey(Organizator, blank = True,
|
||||
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')
|
||||
|
||||
|
@ -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')
|
||||
|
||||
oprava = models.ForeignKey(Oprava)
|
||||
oprava = models.ForeignKey(Oprava, on_delete=models.CASCADE)
|
||||
autor = models.ForeignKey(Organizator, blank = True,
|
||||
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')
|
||||
|
||||
|
|
|
@ -23,10 +23,10 @@ class KorekturyListView(generic.ListView):
|
|||
model = KorekturovanePDF
|
||||
# Nefunguje, filtry se vubec nepouziji
|
||||
queryset = KorekturovanePDF.objects.annotate(
|
||||
k_oprave_cnt=Count('oprava',filter=Q(oprava__status='k_oprave')),
|
||||
opraveno_cnt=Count('oprava',filter=Q(oprava__status='opraveno')),
|
||||
neni_chyba_cnt=Count('oprava',filter=Q(oprava__status='neni_chyba')),
|
||||
k_zaneseni_cnt=Count('oprava',filter=Q(oprava__status='k_zaneseni')),
|
||||
k_oprave_cnt=Count('oprava',distinct=True,filter=Q(oprava__status='k_oprave')),
|
||||
opraveno_cnt=Count('oprava',distinct=True,filter=Q(oprava__status='opraveno')),
|
||||
neni_chyba_cnt=Count('oprava',distinct=True,filter=Q(oprava__status='neni_chyba')),
|
||||
k_zaneseni_cnt=Count('oprava',distinct=True,filter=Q(oprava__status='k_zaneseni')),
|
||||
)
|
||||
template_name = 'korektury/seznam.html'
|
||||
|
||||
|
|
|
@ -52,14 +52,15 @@ AUTHENTICATION_BACKENDS = (
|
|||
)
|
||||
|
||||
|
||||
MIDDLEWARE_CLASSES = (
|
||||
MIDDLEWARE = (
|
||||
'reversion.middleware.RevisionMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'mamweb.middleware.LoggedInHintCookieMiddleware',
|
||||
# FIXME: rozbilo se při přechodu na Django 2.0, nevím, jestli
|
||||
# se to dá zahodit bez náhrady
|
||||
# 'mamweb.middleware.LoggedInHintCookieMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
|
||||
|
|
|
@ -10,7 +10,7 @@ import os.path
|
|||
# Import common settings
|
||||
from .settings_common import *
|
||||
|
||||
MIDDLEWARE_CLASSES += (
|
||||
MIDDLEWARE += (
|
||||
'debug_toolbar.middleware.DebugToolbarMiddleware',
|
||||
)
|
||||
|
||||
|
|
|
@ -9,29 +9,29 @@ from django import views
|
|||
urlpatterns = [
|
||||
|
||||
# Admin a nastroje
|
||||
url(r'^admin/', include(admin.site.urls)), # NOQA
|
||||
url(r'^ckeditor/', include('ckeditor_uploader.urls')),
|
||||
url(r'^autocomplete/', include('autocomplete_light.urls')),
|
||||
url('admin/', admin.site.urls), # NOQA
|
||||
url('ckeditor/', include('ckeditor_uploader.urls')),
|
||||
url('autocomplete/', include('autocomplete_light.urls')),
|
||||
|
||||
# Seminarova aplikace (ma vlastni podadresare)
|
||||
url(r'^', include('seminar.urls')),
|
||||
url('', include('seminar.urls')),
|
||||
|
||||
# Korekturovaci aplikace (ma vlastni podadresare)
|
||||
url(r'^', include('korektury.urls')),
|
||||
url('', include('korektury.urls')),
|
||||
|
||||
# Prednaskova aplikace (ma vlastni podadresare)
|
||||
url(r'^', include('prednasky.urls')),
|
||||
url('', include('prednasky.urls')),
|
||||
|
||||
# Comments (interni i verejne)
|
||||
url(r'^comments_dj/', include('django_comments.urls')),
|
||||
url(r'^comments_fl/', include('fluent_comments.urls')),
|
||||
url('comments_dj/', include('django_comments.urls')),
|
||||
url('comments_fl/', include('fluent_comments.urls')),
|
||||
|
||||
]
|
||||
|
||||
# This is only needed when using runserver.
|
||||
if settings.DEBUG:
|
||||
urlpatterns += [
|
||||
url(r'^media/(?P<path>.*)$', views.static.serve, # NOQA
|
||||
url('media/<str:path>', views.static.serve, # NOQA
|
||||
{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
|
||||
]
|
||||
urlpatterns += staticfiles_urlpatterns()
|
||||
|
|
|
@ -4,25 +4,14 @@ WSGI config for mamweb project.
|
|||
It exposes the WSGI callable as a module-level variable named ``application``.
|
||||
|
||||
For more information on this file, see
|
||||
https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/
|
||||
https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/
|
||||
"""
|
||||
|
||||
import sys, os, os.path, traceback, time, signal
|
||||
import os
|
||||
|
||||
from django.core.wsgi import get_wsgi_application
|
||||
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mamweb.settings")
|
||||
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'lib', 'python2.7', 'site-packages')))
|
||||
|
||||
|
||||
try:
|
||||
from django.core.wsgi import get_wsgi_application
|
||||
application = get_wsgi_application()
|
||||
|
||||
except Exception:
|
||||
print('handling WSGI exception')
|
||||
# Error loading applications
|
||||
if 'mod_wsgi' in sys.modules:
|
||||
traceback.print_exc()
|
||||
os.kill(os.getpid(), signal.SIGINT)
|
||||
time.sleep(2)
|
||||
application = get_wsgi_application()
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ class Migration(migrations.Migration):
|
|||
('obtiznost', models.IntegerField(verbose_name=b'Obt\xc3\xad\xc5\xbenost', choices=[(1, b'Lehk\xc3\xa1'), (2, b'St\xc5\x99edn\xc3\xad'), (3, b'T\xc4\x9b\xc5\xbek\xc3\xa1')])),
|
||||
('obor', models.CharField(max_length=5, verbose_name=b'Obor')),
|
||||
('klicova', models.CharField(max_length=200, null=True, verbose_name=b'Kl\xc3\xad\xc4\x8dov\xc3\xa1 slova', blank=True)),
|
||||
('org', models.ForeignKey(to='seminar.Organizator')),
|
||||
('org', models.ForeignKey(to='seminar.Organizator', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
|
@ -40,6 +40,6 @@ class Migration(migrations.Migration):
|
|||
migrations.AddField(
|
||||
model_name='hlasovani',
|
||||
name='prednaska',
|
||||
field=models.ForeignKey(to='prednasky.Prednaska'),
|
||||
field=models.ForeignKey(to='prednasky.Prednaska', on_delete=models.CASCADE),
|
||||
),
|
||||
]
|
||||
|
|
|
@ -14,7 +14,7 @@ class Migration(migrations.Migration):
|
|||
migrations.AddField(
|
||||
model_name='prednaska',
|
||||
name='seznam',
|
||||
field=models.ForeignKey(default=None, blank=True, to='prednasky.Seznam'),
|
||||
field=models.ForeignKey(default=None, blank=True, to='prednasky.Seznam', on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='hlasovani',
|
||||
|
|
|
@ -51,7 +51,7 @@ class Migration(migrations.Migration):
|
|||
migrations.AlterField(
|
||||
model_name='prednaska',
|
||||
name='seznam',
|
||||
field=models.ForeignKey(to='prednasky.Seznam_old'),
|
||||
field=models.ForeignKey(to='prednasky.Seznam_old',on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.AlterModelTable(
|
||||
name='hlasovani',
|
||||
|
|
|
@ -16,7 +16,7 @@ class Migration(migrations.Migration):
|
|||
name='Prednaska_Seznam',
|
||||
fields=[
|
||||
('id', models.AutoField(serialize=False, primary_key=True)),
|
||||
('prednaska', models.ForeignKey(to='prednasky.Prednaska')),
|
||||
('prednaska', models.ForeignKey(to='prednasky.Prednaska', on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'db_table': 'prednasky_prednaska_seznam',
|
||||
|
@ -29,7 +29,7 @@ class Migration(migrations.Migration):
|
|||
fields=[
|
||||
('id', models.AutoField(serialize=False, primary_key=True)),
|
||||
('stav', models.IntegerField(default=2, verbose_name=b'Stav', choices=[(1, b'N\xc3\xa1vrh'), (2, b'Bude')])),
|
||||
('soustredeni', models.ForeignKey(default=None, to='seminar.Soustredeni', null=True)),
|
||||
('soustredeni', models.ForeignKey(default=None, to='seminar.Soustredeni', null=True, on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['soustredeni', 'stav'],
|
||||
|
@ -44,6 +44,6 @@ class Migration(migrations.Migration):
|
|||
migrations.AddField(
|
||||
model_name='prednaska_seznam',
|
||||
name='seznam',
|
||||
field=models.ForeignKey(to='prednasky.Seznam'),
|
||||
field=models.ForeignKey(to='prednasky.Seznam', on_delete=models.CASCADE),
|
||||
),
|
||||
]
|
||||
|
|
|
@ -14,7 +14,7 @@ class Migration(migrations.Migration):
|
|||
migrations.AddField(
|
||||
model_name='hlasovani',
|
||||
name='seznam',
|
||||
field=models.ForeignKey(default=1, to='prednasky.Seznam'),
|
||||
field=models.ForeignKey(default=1, to='prednasky.Seznam', on_delete=models.CASCADE),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
|
|
40
prednasky/migrations/0011_auto_20190430_2340.py
Normal file
40
prednasky/migrations/0011_auto_20190430_2340.py
Normal file
|
@ -0,0 +1,40 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.20 on 2019-04-30 21:40
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('prednasky', '0010_auto_20160929_0508'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='hlasovani',
|
||||
name='body',
|
||||
field=models.IntegerField(choices=[(-1, '-1'), (0, '0'), (1, '1')], default=0, verbose_name='Body'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='hlasovani',
|
||||
name='ucastnik',
|
||||
field=models.CharField(max_length=100, verbose_name='Účastník'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='prednaska',
|
||||
name='anotace',
|
||||
field=models.TextField(blank=True, help_text='Veřejná anotace v hlasování', null=True, verbose_name='Anotace'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='prednaska',
|
||||
name='obtiznost',
|
||||
field=models.IntegerField(choices=[(1, 'Lehká'), (2, 'Střední'), (3, 'Těžká')], verbose_name='Obtížnost'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='seznam',
|
||||
name='stav',
|
||||
field=models.IntegerField(choices=[(1, 'Návrh'), (2, 'Bude')], default=1, verbose_name='Stav'),
|
||||
),
|
||||
]
|
31
prednasky/migrations/0012_auto_20190610_2358.py
Normal file
31
prednasky/migrations/0012_auto_20190610_2358.py
Normal file
|
@ -0,0 +1,31 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.21 on 2019-06-10 21:58
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('prednasky', '0011_auto_20190430_2340'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='hlasovani',
|
||||
name='seznam',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='prednasky.Seznam'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='prednaska',
|
||||
name='org',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='seminar.Organizator'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='seznam',
|
||||
name='soustredeni',
|
||||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.PROTECT, to='seminar.Soustredeni'),
|
||||
),
|
||||
]
|
|
@ -25,7 +25,8 @@ class Seznam(models.Model):
|
|||
ordering = ['soustredeni', 'stav']
|
||||
|
||||
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)
|
||||
|
||||
def __str__(self):
|
||||
|
@ -55,7 +56,7 @@ class Prednaska(models.Model):
|
|||
|
||||
id = models.AutoField(primary_key = True)
|
||||
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')
|
||||
anotace = models.TextField('Anotace',null = True, blank = True, help_text = 'Veřejná anotace v hlasování')
|
||||
obtiznost = models.IntegerField('Obtížnost', choices=CHOICES_OBTIZNOST)
|
||||
|
@ -75,10 +76,10 @@ class Hlasovani(models.Model):
|
|||
verbose_name_plural = 'Hlasování'
|
||||
ordering = ['ucastnik', 'prednaska']
|
||||
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)
|
||||
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):
|
||||
return force_unicode("{} dal {} bodů {} v seznamu {}".format(self.ucastnik,
|
||||
|
|
|
@ -1,30 +1,30 @@
|
|||
# basic libs
|
||||
|
||||
psycopg2==2.7.5
|
||||
html5lib==1.0.1
|
||||
ipython==5.8.0
|
||||
Pillow==5.2.0
|
||||
pytz==2018.5
|
||||
six==1.10.0
|
||||
pexpect==4.6.0
|
||||
traitlets==4.3.2
|
||||
Unidecode==1.0.22
|
||||
psycopg2
|
||||
html5lib
|
||||
ipython
|
||||
Pillow
|
||||
pytz
|
||||
six
|
||||
pexpect
|
||||
traitlets
|
||||
Unidecode
|
||||
|
||||
# Django and modules
|
||||
|
||||
Django>=1.11.17,<2.0
|
||||
Django<2.3
|
||||
#django-bootstrap-sass
|
||||
django-mptt==0.9.1
|
||||
django-reversion==2.0.13
|
||||
django-sekizai==0.10.0
|
||||
django-countries==5.3.1
|
||||
django-solo==1.1.3
|
||||
django-ckeditor==5.6.1
|
||||
django-flat-theme==1.1.4
|
||||
django-taggit==0.23.0
|
||||
django-mptt
|
||||
django-reversion
|
||||
django-sekizai
|
||||
django-countries
|
||||
django-solo
|
||||
django-ckeditor
|
||||
django-flat-theme
|
||||
django-taggit
|
||||
django-autocomplete-light==2.3.6
|
||||
django-crispy-forms==1.7.2
|
||||
django-imagekit==4.0.2
|
||||
django-crispy-forms
|
||||
django-imagekit
|
||||
|
||||
# Comments
|
||||
akismet==1.0.1
|
||||
|
@ -49,3 +49,7 @@ Werkzeug==0.14.1
|
|||
|
||||
# uWSGI
|
||||
uWSGI==2.0.17.1
|
||||
|
||||
# Potřeba pro test data
|
||||
|
||||
lorem
|
||||
|
|
|
@ -9,7 +9,7 @@ from ckeditor_uploader.widgets import CKEditorUploadingWidget
|
|||
from django.db.models import Count
|
||||
from django.db import models
|
||||
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
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import datetime, django
|
||||
from django.shortcuts import get_object_or_404, render
|
||||
from django.http import HttpResponse
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.urls import reverse
|
||||
from django.views import generic
|
||||
from django.utils.encoding import force_text
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ class Migration(migrations.Migration):
|
|||
name='Nastaveni',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('aktualni_cislo', models.ForeignKey(verbose_name='posledn\xed vydan\xe9 \u010d\xedslo', to='seminar.Cislo')),
|
||||
('aktualni_cislo', models.ForeignKey(verbose_name='posledn\xed vydan\xe9 \u010d\xedslo', to='seminar.Cislo', on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'db_table': 'seminar_nastaveni',
|
||||
|
@ -98,10 +98,10 @@ class Migration(migrations.Migration):
|
|||
('text_problemu', models.TextField(verbose_name='ve\u0159ejn\xfd text zad\xe1n\xed a \u0159e\u0161en\xed', blank=True)),
|
||||
('kod', models.CharField(default=b'', help_text='\u010c\xedslo/k\xf3d \xfalohy v \u010d\xedsle nebo k\xf3d t\xe9matu/\u010dl\xe1nku/seri\xe1lu v ro\u010dn\xedku', max_length=32, verbose_name='lok\xe1ln\xed k\xf3d', blank=True)),
|
||||
('body', models.IntegerField(null=True, verbose_name='maximum bod\u016f', blank=True)),
|
||||
('autor', models.ForeignKey(related_name='autor_uloh', verbose_name='autor probl\xe9mu', to=settings.AUTH_USER_MODEL)),
|
||||
('cislo_reseni', models.ForeignKey(related_name='resene_problemy', blank=True, to='seminar.Cislo', help_text='\u010c\xedslo s \u0159e\u0161en\xedm \xfalohy, jen pro \xfalohy', null=True, verbose_name='\u010d\xedslo \u0159e\u0161en\xed')),
|
||||
('cislo_zadani', models.ForeignKey(related_name='zadane_problemy', verbose_name='\u010d\xedslo zad\xe1n\xed', blank=True, to='seminar.Cislo', null=True)),
|
||||
('opravovatel', models.ForeignKey(related_name='opravovatel_uloh', verbose_name='opravovatel', blank=True, to=settings.AUTH_USER_MODEL, null=True)),
|
||||
('autor', models.ForeignKey(related_name='autor_uloh', verbose_name='autor probl\xe9mu', to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
|
||||
('cislo_reseni', models.ForeignKey(related_name='resene_problemy', blank=True, to='seminar.Cislo', help_text='\u010c\xedslo s \u0159e\u0161en\xedm \xfalohy, jen pro \xfalohy', null=True, verbose_name='\u010d\xedslo \u0159e\u0161en\xed', on_delete=models.CASCADE)),
|
||||
('cislo_zadani', models.ForeignKey(related_name='zadane_problemy', verbose_name='\u010d\xedslo zad\xe1n\xed', blank=True, to='seminar.Cislo', null=True, on_delete=models.CASCADE)),
|
||||
('opravovatel', models.ForeignKey(related_name='opravovatel_uloh', verbose_name='opravovatel', blank=True, to=settings.AUTH_USER_MODEL, null=True, on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'db_table': 'seminar_problemy',
|
||||
|
@ -117,8 +117,8 @@ class Migration(migrations.Migration):
|
|||
('body', models.IntegerField(null=True, verbose_name='body', blank=True)),
|
||||
('timestamp', models.DateTimeField(auto_now=True, verbose_name='vytvo\u0159eno')),
|
||||
('poznamka', models.TextField(help_text='Neve\u0159ejn\xe1 pozn\xe1mka k \u0159e\u0161en\xed (plain text)', verbose_name='neve\u0159ejn\xe1 pozn\xe1mka', blank=True)),
|
||||
('cislo_body', models.ForeignKey(related_name='bodovana_reseni', verbose_name='\u010d\xedslo pro body', blank=True, to='seminar.Cislo', null=True)),
|
||||
('problem', models.ForeignKey(related_name='reseni', verbose_name='probl\xe9m', to='seminar.Problem')),
|
||||
('cislo_body', models.ForeignKey(related_name='bodovana_reseni', verbose_name='\u010d\xedslo pro body', blank=True, to='seminar.Cislo', null=True, on_delete=models.CASCADE)),
|
||||
('problem', models.ForeignKey(related_name='reseni', verbose_name='probl\xe9m', to='seminar.Problem', on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['problem', 'resitel'],
|
||||
|
@ -201,7 +201,7 @@ class Migration(migrations.Migration):
|
|||
('datum_konce', models.DateField(help_text='Posledn\xed den soust\u0159ed\u011bn\xed', null=True, verbose_name='datum konce', blank=True)),
|
||||
('verejne_db', models.BooleanField(default=False, verbose_name='soust\u0159ed\u011bn\xed zve\u0159ejn\u011bno', db_column='verejne')),
|
||||
('misto', models.CharField(default=b'', help_text='M\xedsto (n\xe1zev obce, voliteln\u011b t\xe9\u017e objektu', max_length=256, verbose_name='m\xedsto soust\u0159ed\u011bn\xed', blank=True)),
|
||||
('rocnik', models.ForeignKey(related_name='soustredeni', verbose_name='ro\u010dn\xedk', to='seminar.Rocnik')),
|
||||
('rocnik', models.ForeignKey(related_name='soustredeni', verbose_name='ro\u010dn\xedk', to='seminar.Rocnik', on_delete=models.CASCADE)),
|
||||
('ucastnici', models.ManyToManyField(help_text='Seznam \xfa\u010dastn\xedk\u016f soust\u0159ed\u011bn\xed', to='seminar.Resitel', db_table='seminar_soustredeni_ucastnici', verbose_name='\xfa\u010dastn\xedci soust\u0159ed\u011bn\xed')),
|
||||
],
|
||||
options={
|
||||
|
@ -215,37 +215,37 @@ class Migration(migrations.Migration):
|
|||
migrations.AddField(
|
||||
model_name='resitel',
|
||||
name='skola',
|
||||
field=models.ForeignKey(verbose_name='\u0161kola', blank=True, to='seminar.Skola', null=True),
|
||||
field=models.ForeignKey(verbose_name='\u0161kola', blank=True, to='seminar.Skola', null=True, on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='resitel',
|
||||
name='user',
|
||||
field=models.OneToOneField(null=True, blank=True, to=settings.AUTH_USER_MODEL, verbose_name='u\u017eivatel'),
|
||||
field=models.OneToOneField(null=True, blank=True, to=settings.AUTH_USER_MODEL, verbose_name='u\u017eivatel', on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='reseni',
|
||||
name='resitel',
|
||||
field=models.ForeignKey(related_name='reseni', verbose_name='\u0159e\u0161itel', to='seminar.Resitel'),
|
||||
field=models.ForeignKey(related_name='reseni', verbose_name='\u0159e\u0161itel', to='seminar.Resitel', on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='prilohareseni',
|
||||
name='reseni',
|
||||
field=models.ForeignKey(related_name='prilohy', verbose_name='\u0159e\u0161en\xed', to='seminar.Reseni'),
|
||||
field=models.ForeignKey(related_name='prilohy', verbose_name='\u0159e\u0161en\xed', to='seminar.Reseni', on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='nastaveni',
|
||||
name='aktualni_rocnik',
|
||||
field=models.ForeignKey(verbose_name='aktu\xe1ln\xed ro\u010dn\xedk', to='seminar.Rocnik'),
|
||||
field=models.ForeignKey(verbose_name='aktu\xe1ln\xed ro\u010dn\xedk', to='seminar.Rocnik', on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='cislo',
|
||||
name='rocnik',
|
||||
field=models.ForeignKey(related_name='cisla', verbose_name='ro\u010dn\xedk', to='seminar.Rocnik'),
|
||||
field=models.ForeignKey(related_name='cisla', verbose_name='ro\u010dn\xedk', to='seminar.Rocnik', on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -15,7 +15,7 @@ class Migration(migrations.Migration):
|
|||
migrations.AlterField(
|
||||
model_name='problem',
|
||||
name='autor',
|
||||
field=models.ForeignKey(related_name='autor_uloh', verbose_name='autor probl\xe9mu', blank=True, to=settings.AUTH_USER_MODEL, null=True),
|
||||
field=models.ForeignKey(related_name='autor_uloh', verbose_name='autor probl\xe9mu', blank=True, to=settings.AUTH_USER_MODEL, null=True, on_delete=models.CASCADE),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -16,8 +16,8 @@ class Migration(migrations.Migration):
|
|||
fields=[
|
||||
('id', models.AutoField(serialize=False, primary_key=True)),
|
||||
('poznamka', models.CharField(default=b'', help_text='Neve\u0159ejn\xe1 pozn\xe1mka k \xfa\u010dasti (plain text)', max_length=64, verbose_name='neve\u0159ejn\xe1 pozn\xe1mka', blank=True)),
|
||||
('resitel', models.ForeignKey(verbose_name='\u0159e\u0161itel', to='seminar.Resitel')),
|
||||
('soustredeni', models.ForeignKey(verbose_name='soust\u0159ed\u011bn\xed', to='seminar.Soustredeni')),
|
||||
('resitel', models.ForeignKey(verbose_name='\u0159e\u0161itel', to='seminar.Resitel', on_delete=models.CASCADE)),
|
||||
('soustredeni', models.ForeignKey(verbose_name='soust\u0159ed\u011bn\xed', to='seminar.Soustredeni',on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['soustredeni', 'resitel'],
|
||||
|
|
|
@ -21,7 +21,7 @@ class Migration(migrations.Migration):
|
|||
('text', models.TextField(null=True, verbose_name=b'Text novinky', blank=True)),
|
||||
('obrazek', models.ImageField(upload_to=b'image_novinky/%Y/%m/%d/', null=True, verbose_name=b'Obr\xc3\xa1zek', blank=True)),
|
||||
('zverejneno', models.BooleanField(default=False, verbose_name=b'Zve\xc5\x99ejn\xc4\x9bno')),
|
||||
('autor', models.ForeignKey(verbose_name=b'Autor novinky', to=settings.AUTH_USER_MODEL)),
|
||||
('autor', models.ForeignKey(verbose_name=b'Autor novinky', to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE))
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Novinka',
|
||||
|
|
|
@ -24,7 +24,7 @@ class Migration(migrations.Migration):
|
|||
('strucny_popis_organizatora', models.TextField(null=True, verbose_name=b'Stru\xc4\x8dn\xc3\xbd popis organiz\xc3\xa1tora', blank=True)),
|
||||
('foto', models.ImageField(help_text=b'Vlo\xc5\xbe fotografii organiz\xc3\xa1tora o libovon\xc3\xa9 velikosti', upload_to=b'image_organizatori/%Y/', null=True, verbose_name=b'Fotografie organiz\xc3\xa1tora', blank=True)),
|
||||
('foto_male', models.ImageField(upload_to=b'image_organizatori/male/%Y/', null=True, editable=False, blank=True)),
|
||||
('user', models.OneToOneField(verbose_name=b'Osoba', to=settings.AUTH_USER_MODEL, help_text=b'Vyber \xc3\xba\xc4\x8det sp\xc5\x99a\xc5\xbeen\xc3\xbd s organiz\xc3\xa1torem.')),
|
||||
('user', models.OneToOneField(verbose_name=b'Osoba', to=settings.AUTH_USER_MODEL, help_text=b'Vyber \xc3\xba\xc4\x8det sp\xc5\x99a\xc5\xbeen\xc3\xbd s organiz\xc3\xa1torem.',on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Organiz\xe1tor',
|
||||
|
|
|
@ -16,8 +16,8 @@ class Migration(migrations.Migration):
|
|||
fields=[
|
||||
('id', models.AutoField(serialize=False, primary_key=True)),
|
||||
('poznamka', models.TextField(help_text='Neve\u0159ejn\xe1 pozn\xe1mka k \xfa\u010dasti organiz\xe1tora (plain text)', verbose_name='neve\u0159ejn\xe1 pozn\xe1mka', blank=True)),
|
||||
('organizator', models.ForeignKey(verbose_name='organiz\xe1tor', to='seminar.Organizator')),
|
||||
('soustredeni', models.ForeignKey(verbose_name='soust\u0159ed\u011bn\xed', to='seminar.Soustredeni')),
|
||||
('organizator', models.ForeignKey(verbose_name='organiz\xe1tor', to='seminar.Organizator', on_delete=models.CASCADE)),
|
||||
('soustredeni', models.ForeignKey(verbose_name='soust\u0159ed\u011bn\xed', to='seminar.Soustredeni', on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['soustredeni', 'organizator'],
|
||||
|
|
|
@ -19,8 +19,8 @@ class Migration(migrations.Migration):
|
|||
('text_org', models.TextField(null=True, verbose_name=b'Orgovsk\xc3\xbd text', blank=True)),
|
||||
('text_resitel', models.TextField(null=True, verbose_name=b'\xc5\x98e\xc5\xa1itelsk\xc3\xbd text', blank=True)),
|
||||
('zverejnit', models.BooleanField(verbose_name=b'Zve\xc5\x99ejnit?')),
|
||||
('problem', models.ForeignKey(verbose_name=b'Probl\xc3\xa9m', to='seminar.Problem')),
|
||||
('reseni', models.OneToOneField(null=True, blank=True, to='seminar.Reseni', verbose_name=b'\xc5\x98e\xc5\xa1en\xc3\xad')),
|
||||
('problem', models.ForeignKey(verbose_name=b'Probl\xc3\xa9m', to='seminar.Problem', on_delete=models.CASCADE)),
|
||||
('reseni', models.OneToOneField(null=True, blank=True, to='seminar.Reseni', verbose_name=b'\xc5\x98e\xc5\xa1en\xc3\xad', on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
|
|
|
@ -21,8 +21,8 @@ class Migration(migrations.Migration):
|
|||
('text', models.TextField(verbose_name='Text poh\xe1dky')),
|
||||
('pred', models.BooleanField(default=True, verbose_name='P\u0159ed \xfalohou')),
|
||||
('timestamp', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Vytvo\u0159eno', editable=False, blank=True)),
|
||||
('autor', models.ForeignKey(verbose_name=b'Autor poh\xc3\xa1dky', to=settings.AUTH_USER_MODEL)),
|
||||
('uloha', models.ForeignKey(related_name='pohadky', verbose_name='\xdaloha', to='seminar.Problem')),
|
||||
('autor', models.ForeignKey(verbose_name=b'Autor poh\xc3\xa1dky', to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
|
||||
('uloha', models.ForeignKey(related_name='pohadky', verbose_name='\xdaloha', to='seminar.Problem',on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['uloha__cislo_zadani', 'uloha__kod', '-pred'],
|
||||
|
|
|
@ -15,6 +15,6 @@ class Migration(migrations.Migration):
|
|||
migrations.AlterField(
|
||||
model_name='pohadka',
|
||||
name='autor',
|
||||
field=models.ForeignKey(verbose_name=b'Autor poh\xc3\xa1dky', to=settings.AUTH_USER_MODEL, null=True),
|
||||
field=models.ForeignKey(verbose_name=b'Autor poh\xc3\xa1dky', to=settings.AUTH_USER_MODEL, null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
]
|
||||
|
|
|
@ -37,8 +37,9 @@ class Migration(migrations.Migration):
|
|||
fields=[
|
||||
('id', models.AutoField(serialize=False, primary_key=True)),
|
||||
('poznamka', models.TextField(help_text='Neve\u0159ejn\xe1 pozn\xe1mka k \xfa\u010dasti (plain text)', verbose_name='neve\u0159ejn\xe1 pozn\xe1mka', blank=True)),
|
||||
('konfera', models.ForeignKey(verbose_name='konfera', to='seminar.Konfera')),
|
||||
('resitel', models.ForeignKey(verbose_name='\u0159e\u0161itel', to='seminar.Resitel')),
|
||||
('konfera', models.ForeignKey(verbose_name='konfera', to='seminar.Konfera',
|
||||
on_delete=models.PROTECT)),
|
||||
('resitel', models.ForeignKey(verbose_name='\u0159e\u0161itel', to='seminar.Resitel',on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['konfera', 'resitel'],
|
||||
|
|
162
seminar/migrations/0064_auto_20190610_2358.py
Normal file
162
seminar/migrations/0064_auto_20190610_2358.py
Normal file
|
@ -0,0 +1,162 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.21 on 2019-06-10 21:58
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('seminar', '0063_procisteni_migraci'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cislo',
|
||||
name='rocnik',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='cisla', to='seminar.Rocnik', verbose_name='ročník'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='clanek',
|
||||
name='cislo',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='seminar.Cislo', verbose_name='číslo'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='hodnoceni',
|
||||
name='cislo_body',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='hodnoceni', to='seminar.Cislo', verbose_name='číslo pro body'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='hodnoceni',
|
||||
name='problem',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='seminar.Problem', verbose_name='problém'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='konfery_ucastnici',
|
||||
name='konfera',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='seminar.Konfera', verbose_name='konfera'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='konfery_ucastnici',
|
||||
name='resitel',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='seminar.Resitel', verbose_name='řešitel'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='nastaveni',
|
||||
name='aktualni_cislo',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='seminar.Cislo', verbose_name='poslední vydané číslo'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='nastaveni',
|
||||
name='aktualni_rocnik',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='seminar.Rocnik', verbose_name='aktuální ročník'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='novinky',
|
||||
name='autor',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='seminar.Organizator', verbose_name='Autor novinky'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='organizator',
|
||||
name='osoba',
|
||||
field=models.OneToOneField(help_text='osobní údaje organizátora', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='org', to='seminar.Osoba', verbose_name='osoba'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='osoba',
|
||||
name='user',
|
||||
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL, verbose_name='uživatel'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='pohadka',
|
||||
name='autor',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='seminar.Organizator', verbose_name='Autor pohádky'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='problem',
|
||||
name='autor',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='autor_problemu_problem', to='seminar.Organizator', verbose_name='autor problému'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='problem',
|
||||
name='garant',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='garant_problemu_problem', to='seminar.Organizator', verbose_name='garant zadaného problému'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='problem',
|
||||
name='nadproblem',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='nadproblem_problem', to='seminar.Problem', verbose_name='nadřazený problém'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='reseni',
|
||||
name='text_cely',
|
||||
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='reseni_cely_set', to='seminar.Text', verbose_name='Plná verze textu řešení'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='reseni_resitele',
|
||||
name='resitele',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='seminar.Resitel', verbose_name='řešitel'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='resitel',
|
||||
name='osoba',
|
||||
field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.SET_NULL, to='seminar.Osoba', verbose_name='osoba'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='resitel',
|
||||
name='skola',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='seminar.Skola', verbose_name='škola'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='skola',
|
||||
name='kontaktni_osoba',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='seminar.Osoba', verbose_name='Kontaktní osoba'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='soustredeni',
|
||||
name='rocnik',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='soustredeni', to='seminar.Rocnik', verbose_name='ročník'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='soustredeni_organizatori',
|
||||
name='organizator',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='seminar.Organizator', verbose_name='organizátor'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='soustredeni_organizatori',
|
||||
name='soustredeni',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='seminar.Soustredeni', verbose_name='soustředění'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='soustredeni_ucastnici',
|
||||
name='resitel',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='seminar.Resitel', verbose_name='řešitel'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='soustredeni_ucastnici',
|
||||
name='soustredeni',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='seminar.Soustredeni', verbose_name='soustředění'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='tema',
|
||||
name='rocnik',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='seminar.Rocnik', verbose_name='ročník'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='uloha',
|
||||
name='cislo_deadline',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='deadlinove_ulohy', to='seminar.Cislo', verbose_name='číslo deadlinu'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='uloha',
|
||||
name='cislo_reseni',
|
||||
field=models.ForeignKey(blank=True, help_text='Číslo s řešením úlohy, jen pro úlohy', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='resene_ulohy', to='seminar.Cislo', verbose_name='číslo řešení'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='uloha',
|
||||
name='cislo_zadani',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='zadane_ulohy', to='seminar.Cislo', verbose_name='číslo zadání'),
|
||||
),
|
||||
]
|
|
@ -9,7 +9,7 @@ from django.conf import settings
|
|||
from django.utils.encoding import python_2_unicode_compatible
|
||||
from django.utils.encoding import force_text
|
||||
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.exceptions import ObjectDoesNotExist
|
||||
from django.utils.text import get_valid_filename
|
||||
|
@ -64,7 +64,7 @@ class Osoba(SeminarModelBase):
|
|||
|
||||
# User, pokud má na webu účet
|
||||
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í)
|
||||
pohlavi_muz = models.BooleanField('pohlaví (muž)', default=False)
|
||||
|
@ -185,7 +185,7 @@ class Skola(SeminarModelBase):
|
|||
help_text='Neveřejná poznámka ke škole (plain text)')
|
||||
|
||||
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):
|
||||
return '{}, {}, {}'.format(self.nazev, self.ulice, self.mesto)
|
||||
|
@ -204,7 +204,8 @@ class Prijemce(SeminarModelBase):
|
|||
help_text='Neveřejná poznámka k příemci čísel (plain text)')
|
||||
|
||||
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: a možná taky posílání na mail a možná taky přes něj chceme posílat i řešitelům
|
||||
|
@ -225,9 +226,12 @@ class Resitel(SeminarModelBase):
|
|||
# Interní ID
|
||||
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ů
|
||||
rok_maturity = models.IntegerField('rok maturity', blank=True, null=True)
|
||||
|
@ -387,7 +391,8 @@ class Cislo(SeminarModelBase):
|
|||
# Interní ID
|
||||
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,
|
||||
help_text='Většinou jen "1", vyjímečně "7-8", lexikograficky určuje pořadí v ročníku!')
|
||||
|
@ -467,7 +472,8 @@ class Organizator(SeminarModelBase):
|
|||
# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu
|
||||
|
||||
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(
|
||||
'Vytvořeno',
|
||||
|
@ -517,7 +523,8 @@ class Soustredeni(SeminarModelBase):
|
|||
# Interní ID
|
||||
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,
|
||||
help_text='První den soustředění')
|
||||
|
@ -589,7 +596,8 @@ class Problem(SeminarModelBase):
|
|||
|
||||
# Problém má podproblémy
|
||||
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_ZADANY = 'zadany'
|
||||
|
@ -610,10 +618,12 @@ class Problem(SeminarModelBase):
|
|||
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',
|
||||
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',
|
||||
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é',
|
||||
blank=True, related_name='opravovatele_%(class)s')
|
||||
|
@ -676,7 +686,8 @@ class Tema(Problem):
|
|||
tema_typ = models.CharField('Typ tématu', max_length=16, choices=TEMA_CHOICES,
|
||||
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):
|
||||
if self.stav == 'zadany':
|
||||
|
@ -691,7 +702,8 @@ class Clanek(Problem):
|
|||
verbose_name = 'Článek'
|
||||
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)
|
||||
|
||||
# má OneToOneField s:
|
||||
# ClanekNode
|
||||
|
@ -730,14 +742,15 @@ class Uloha(Problem):
|
|||
verbose_name_plural = 'Úlohy'
|
||||
|
||||
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,
|
||||
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,
|
||||
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ů',
|
||||
blank=True, null=True)
|
||||
|
@ -790,7 +803,8 @@ class Reseni(SeminarModelBase):
|
|||
default=FORMA_EMAIL)
|
||||
|
||||
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í',
|
||||
help_text='Seznam úryvků z řešení',related_name="reseni_zkraceny_set")
|
||||
|
@ -829,11 +843,11 @@ class Hodnoceni(SeminarModelBase):
|
|||
blank=False, null=False)
|
||||
|
||||
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):
|
||||
return "{}, {}, {}".format(self.problem, self.reseni, self.body)
|
||||
|
@ -884,7 +898,8 @@ class PrilohaReseni(SeminarModelBase):
|
|||
# Interní ID
|
||||
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)
|
||||
|
||||
|
@ -915,7 +930,8 @@ class Pohadka(SeminarModelBase):
|
|||
|
||||
# Při nahrávání z TeXu není vyplnění vyžadováno, v adminu je
|
||||
null=True,
|
||||
blank=False
|
||||
blank=False,
|
||||
on_delete=models.SET_NULL
|
||||
)
|
||||
|
||||
vytvoreno = models.DateTimeField(
|
||||
|
@ -946,9 +962,10 @@ class Soustredeni_Ucastnici(SeminarModelBase):
|
|||
# Interní ID
|
||||
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,
|
||||
help_text='Neveřejná poznámka k účasti (plain text)')
|
||||
|
@ -970,9 +987,11 @@ class Soustredeni_Organizatori(SeminarModelBase):
|
|||
# Interní ID
|
||||
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,
|
||||
help_text='Neveřejná poznámka k účasti organizátora (plain text)')
|
||||
|
@ -1003,6 +1022,7 @@ class Konfera(models.Model):
|
|||
organizator = models.ForeignKey(Organizator, verbose_name='organizátor', related_name='konfery',
|
||||
on_delete = models.SET_NULL, null=True)
|
||||
|
||||
# FIXME: Umíme omezit jen na účastníky daného soustřeďka?
|
||||
ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci konfery',
|
||||
help_text='Seznam účastníků konfery', through='Konfery_Ucastnici')
|
||||
|
||||
|
@ -1052,9 +1072,9 @@ class Reseni_Resitele(models.Model):
|
|||
# Interní ID
|
||||
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
|
||||
# - pouziti v budoucnu, pokud by resitele nemeli dostat vsichni stejne bodu za spolecne reseni
|
||||
|
@ -1075,9 +1095,9 @@ class Konfery_Ucastnici(models.Model):
|
|||
# Interní ID
|
||||
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,
|
||||
help_text='Neveřejná poznámka k účasti (plain text)')
|
||||
|
@ -1099,7 +1119,8 @@ class Obrazek(SeminarModelBase):
|
|||
null=True, blank=True)
|
||||
|
||||
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',
|
||||
help_text = 'Barevná verze obrázku do čísla',
|
||||
|
@ -1318,10 +1339,11 @@ class Nastaveni(SingletonModel):
|
|||
db_table = 'seminar_nastaveni'
|
||||
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',
|
||||
null=False)
|
||||
null=False, on_delete=models.PROTECT)
|
||||
|
||||
def __str__(self):
|
||||
return 'Nastavení semináře'
|
||||
|
@ -1355,7 +1377,8 @@ class Novinky(models.Model):
|
|||
],
|
||||
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)
|
||||
|
||||
|
|
|
@ -10,6 +10,6 @@ def seminar_rocniky(parser, token):
|
|||
'rocniky': Rocnik.objects.all()
|
||||
}
|
||||
|
||||
@register.assignment_tag
|
||||
@register.simple_tag
|
||||
def aktualni_rocniky():
|
||||
return Rocnik.objects.all()
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
|
||||
import datetime
|
||||
import random
|
||||
import lorem
|
||||
import django.contrib.auth
|
||||
from django.db import transaction
|
||||
import unidecode
|
||||
|
||||
from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Osoba, Organizator, Prijemce, Tema, Uloha
|
||||
from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Osoba, Organizator, Prijemce, Tema, Uloha, Konfera, KonferaNode, Konfera_Ucastnici
|
||||
|
||||
from django.contrib.flatpages.models import FlatPage
|
||||
from django.contrib.sites.models import Site
|
||||
|
@ -59,6 +60,7 @@ def gen_osoby(rnd, size):
|
|||
datum_registrace = datetime.date(rnd.randint(2019, 2029),
|
||||
rnd.randint(1, 12), rnd.randint(1, 28))))
|
||||
#TODO pridat foto male a velke. Jak?
|
||||
# Pavel tvrdí, že to necháme a přidáme až do adminu
|
||||
|
||||
return osoby
|
||||
|
||||
|
@ -205,19 +207,24 @@ def gen_ulohy_do_cisla(rnd, cislo, organizatori, resitele, slovnik_cisel, size):
|
|||
)
|
||||
return
|
||||
|
||||
def gen_soustredeni():
|
||||
# TODO: vice soustredeni a k nim nahodne podmnoziny organizatoru a ucastniku
|
||||
# TODO: pozor, organizatori a ucastnici jsou ManyToManyField, musí se přiřadit
|
||||
# mimo create() a pak dát save()
|
||||
sous = Soustredeni.objects.create(rocnik=Rocnik.objects.first(),
|
||||
verejne_db=True,
|
||||
misto=u'Někde',
|
||||
datum_zacatku=datetime.date(2000, 11, 23),
|
||||
datum_konce=datetime.date(2000, 11, 27)
|
||||
)
|
||||
for res in rnd.sample(resitele, min(len(resitele), 20)):
|
||||
Soustredeni_Ucastnici.objects.create(resitel=res, soustredeni=sous)
|
||||
sous.save()
|
||||
def gen_soustredeni(rnd, resitele, organizatori):
|
||||
soustredeni = []
|
||||
for _ in range(1, size): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?)
|
||||
datum_zacatku=datetime.date(randint(2000, 2020), randint(1, 12), radint(1, 28))
|
||||
working_sous = Soustredeni.objects.create(
|
||||
rocnik=Rocnik.objects.order_by('?').first(),
|
||||
verejne_db=rnd.choice([True, False]),
|
||||
misto=rnd.choice(['Kremrolovice', 'Indiánov', 'U zmzliny', 'Vafláreň', 'Větrník', 'Horní Rakvička', 'Dolní cheesecake']),
|
||||
typ=rnd.choice(['jarni', 'podzmini', 'vikend']),
|
||||
datum_zacatku=datum_zacatku,
|
||||
datum_konce=datum_zacatku + datetime.timedelta(weeks=1))
|
||||
for res in rnd.sample(resitele, min(len(resitele), 20)):
|
||||
Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous)
|
||||
for org in rnd.sample(organizatori, min(len(organizatori), 20)):
|
||||
Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous)
|
||||
working_sous.save()
|
||||
soustredeni.append(working_sous)
|
||||
return soustredeni
|
||||
|
||||
def gen_rocniky(last_rocnik, size):
|
||||
rocniky = []
|
||||
|
@ -229,6 +236,26 @@ def gen_rocniky(last_rocnik, size):
|
|||
rocniky.append(rocnik)
|
||||
return rocniky
|
||||
|
||||
def gen_konfery(rnd, reseni, organizatori, ucastnici, soustredeni):
|
||||
konfery = []
|
||||
for _ in range(1, size): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?)
|
||||
konfera = Konfera.objects.create(
|
||||
nazev=rnd.choice(['Pozorování', 'Zkoumání', 'Modelování', 'Počítání', 'Zkoušení']) + rnd.choice(' vlastností', ' jevů', ' charakteristik']) + rnd.choice([' vektorových prostorů', ' kinetické terorie látek', ' molekulární biologie', ' syntentických stromů']),
|
||||
anotace=lorem.paragraph(),
|
||||
abstrakt=lorem.paragraph(),
|
||||
organizator=rnd.choice(organizatori),
|
||||
soustredeni=rnd.choice(soustredeni),
|
||||
reseni=rnd.choice(reseni),
|
||||
typ_prezentace=rnd.choice(['veletrh', 'prezentace']))
|
||||
for res in rnd.sample(ucastnici, min(len(ucastnici), randint(3, 6))):
|
||||
Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera)
|
||||
konfery.append(konfera)
|
||||
konfera.save()
|
||||
|
||||
konferanode = KonferaNode.objects.create(konfera=konfera)
|
||||
konferanode.save()
|
||||
return konfery
|
||||
|
||||
def gen_cisla(rocniky):
|
||||
slovnik_rocnik_cisla = {}
|
||||
for rocnik in rocniky:
|
||||
|
|
|
@ -9,100 +9,100 @@ staff_member_required = user_passes_test(lambda u: u.is_staff)
|
|||
|
||||
urlpatterns = [
|
||||
# REDIRECTy
|
||||
url(r'^jak-resit/$', RedirectView.as_view(url='/co-je-MaM/jak-resit/')),
|
||||
url('jak-resit/', RedirectView.as_view(url='/co-je-MaM/jak-resit/')),
|
||||
|
||||
# Organizatori
|
||||
url(r'^co-je-MaM/organizatori/$', views.CojemamOrganizatoriView.as_view(), name='organizatori'),
|
||||
url(r'^co-je-MaM/organizatori/organizovali/$', views.CojemamOrganizatoriStariView.as_view(), name='stari_organizatori'),
|
||||
url('co-je-MaM/organizatori/', views.CojemamOrganizatoriView.as_view(), name='organizatori'),
|
||||
url('co-je-MaM/organizatori/organizovali/', views.CojemamOrganizatoriStariView.as_view(), name='stari_organizatori'),
|
||||
|
||||
# Archiv
|
||||
url(r'^archiv/cisla/$', views.ArchivView.as_view()),
|
||||
url(r'^archiv/temata/$', views.ArchivTemataView.as_view()),
|
||||
url('archiv/cisla/', views.ArchivView.as_view()),
|
||||
url('archiv/temata/', views.ArchivTemataView.as_view()),
|
||||
|
||||
url(r'^rocnik/(?P<rocnik>\d+)/$', views.RocnikView.as_view(), name='seminar_rocnik'),
|
||||
#url(r'^cislo/(?P<rocnik>\d+)\.(?P<cislo>[0-9-]+)/$', views.CisloView.as_view(), name='seminar_cislo'),
|
||||
url(r'^problem/(?P<pk>\d+)/$', views.ProblemView.as_view(), name='seminar_problem'),
|
||||
#url(r'^problem/(?P<pk>\d+)/(?P<prispevek>\d+)/$', views.PrispevekView.as_view(), name='seminar_problem_prispevek'),
|
||||
url('rocnik/<int:rocnik>/', views.RocnikView.as_view(), name='seminar_rocnik'),
|
||||
#url('cislo/<int:rocnik>.<int:cislo>/', views.CisloView.as_view(), name='seminar_cislo'),
|
||||
url('problem/<int:pk>/', views.ProblemView.as_view(), name='seminar_problem'),
|
||||
#url('problem/(?P<pk>\d+)/(?P<prispevek>\d+)/', views.PrispevekView.as_view(), name='seminar_problem_prispevek'),
|
||||
|
||||
# Soustredeni
|
||||
url(
|
||||
r'^soustredeni/probehlo/$',
|
||||
'soustredeni/probehlo/',
|
||||
views.SoustredeniListView.as_view(),
|
||||
name='seminar_seznam_soustredeni'
|
||||
),
|
||||
url(
|
||||
r'^soustredeni/probehlo/(?P<soustredeni>\d+)/$',
|
||||
'soustredeni/probehlo/<int:soustredeni>/',
|
||||
views.SoustredeniView.as_view(),
|
||||
name='seminar_soustredeni'
|
||||
),
|
||||
url(
|
||||
r'^soustredeni/(?P<soustredeni>\d+)/seznam_ucastniku$',
|
||||
'soustredeni/<int:soustredeni>/seznam_ucastniku',
|
||||
staff_member_required(views.SoustredeniUcastniciView.as_view()),
|
||||
name='soustredeni_ucastnici'
|
||||
),
|
||||
url(
|
||||
r'^soustredeni/(?P<soustredeni>\d+)/maily_ucastniku$',
|
||||
'soustredeni/<int:soustredeni>/maily_ucastniku',
|
||||
staff_member_required(views.SoustredeniMailyUcastnikuView.as_view()),
|
||||
name='maily_ucastniku'
|
||||
),
|
||||
url(
|
||||
r'^soustredeni/(?P<soustredeni>\d+)/export_ucastniku$',
|
||||
'soustredeni/<int:soustredeni>/export_ucastniku',
|
||||
staff_member_required(views.soustredeniUcastniciExportView),
|
||||
name='soustredeni_ucastnici_export'
|
||||
),
|
||||
url(
|
||||
r'^soustredeni/(?P<soustredeni>\d+)/fotogalerie/',
|
||||
'soustredeni/<int:soustredeni>/fotogalerie/',
|
||||
include('galerie.urls')
|
||||
),
|
||||
|
||||
# Zadani
|
||||
url(r'^zadani/aktualni/$', views.AktualniZadaniView, name='seminar_aktualni_zadani'),
|
||||
url(r'^zadani/temata/$', views.ZadaniTemataView, name='seminar_temata'),
|
||||
#url(r'^zadani/vysledkova-listina/$', views.ZadaniAktualniVysledkovkaView, name='seminar_vysledky'),
|
||||
url(r'^$', views.TitulniStranaView.as_view(), name='titulni_strana'),
|
||||
url(r'^stare-novinky/$', views.StareNovinkyView.as_view(), name='stare_novinky'),
|
||||
url('zadani/aktualni/', views.AktualniZadaniView, name='seminar_aktualni_zadani'),
|
||||
url('zadani/temata/', views.ZadaniTemataView, name='seminar_temata'),
|
||||
#url('zadani/vysledkova-listina/', views.ZadaniAktualniVysledkovkaView, name='seminar_vysledky'),
|
||||
url('', views.TitulniStranaView.as_view(), name='titulni_strana'),
|
||||
url('stare-novinky/', views.StareNovinkyView.as_view(), name='stare_novinky'),
|
||||
|
||||
# Clanky
|
||||
url(r'^clanky/resitel/$', views.ClankyResitelView.as_view(), name='clanky_resitel'),
|
||||
#url(r'^clanky/org/$', views.ClankyOrganizatorView.as_view(), name='clanky_organizator'),
|
||||
url('clanky/resitel/', views.ClankyResitelView.as_view(), name='clanky_resitel'),
|
||||
#url('clanky/org/', views.ClankyOrganizatorView.as_view(), name='clanky_organizator'),
|
||||
|
||||
# Aesop
|
||||
url(r'^aesop-export/mam-rocnik-(?P<prvni_rok>\d+)\.csv$', export.ExportRocnikView.as_view(), name='seminar_export_rocnik'),
|
||||
url(r'^aesop-export/mam-sous-(?P<datum_zacatku>[\d-]+)\.csv$', export.ExportSousView.as_view(), name='seminar_export_sous'),
|
||||
url(r'^aesop-export/index.csv$', export.ExportIndexView.as_view(), name='seminar_export_index'),
|
||||
url('aesop-export/mam-rocnik-<int:prvni_rok>.csv', export.ExportRocnikView.as_view(), name='seminar_export_rocnik'),
|
||||
url('aesop-export/mam-sous-<str:datum_zacatku>.csv', export.ExportSousView.as_view(), name='seminar_export_sous'),
|
||||
url('aesop-export/index.csv', export.ExportIndexView.as_view(), name='seminar_export_index'),
|
||||
|
||||
# Stranky viditelne pouze pro orgy:
|
||||
#url(
|
||||
# r'^rocnik/(?P<rocnik>\d+)/vysledkovka.tex$',
|
||||
# 'rocnik/(?P<rocnik>\d+)/vysledkovka.tex',
|
||||
# staff_member_required(views.RocnikVysledkovkaView.as_view()),
|
||||
# name='seminar_cislo_vysledkovka'
|
||||
#),
|
||||
#url(r'^cislo/(?P<rocnik>\d+).(?P<cislo>[0-9-]+)/vysledkovka.tex$',
|
||||
#url('cislo/(?P<rocnik>\d+).(?P<cislo>[0-9-]+)/vysledkovka.tex',
|
||||
# staff_member_required(views.CisloVysledkovkaView.as_view()), name='seminar_cislo_vysledkovka'),
|
||||
url(r'^cislo/(?P<rocnik>\d+).(?P<cislo>[0-9-]+)/obalky.pdf$',
|
||||
url('cislo/<int:rocnik>.<int:cislo>/obalky.pdf',
|
||||
staff_member_required(views.cisloObalkyView), name='seminar_cislo_obalky'),
|
||||
|
||||
#url(r'^cislo/(?P<rocnik>\d+).(?P<cislo>[0-9-]+)/tituly.tex$',
|
||||
#url('cislo/(?P<rocnik>\d+).(?P<cislo>[0-9-]+)/tituly.tex',
|
||||
# staff_member_required(views.TitulyView), name='seminar_cislo_titul'),
|
||||
url(r'^stav$',
|
||||
url('stav',
|
||||
staff_member_required(views.StavDatabazeView), name='stav_databaze'),
|
||||
url(r'^cislo/(?P<rocnik>\d+).(?P<cislo>[0-9-]+)/obalkovani$',
|
||||
url('cislo/<int:rocnik>.<int:cislo>/obalkovani',
|
||||
staff_member_required(views.obalkovaniView), name='seminar_cislo_resitel_obalkovani'),
|
||||
url(r'^cislo/(?P<rocnik>\d+).(?P<cislo>[0-9-]+)/tex-download.json$',
|
||||
url('cislo/<int:rocnik>.<int:cislo>/tex-download.json',
|
||||
staff_member_required(views.texDownloadView), name='seminar_tex_download'),
|
||||
url(r'^soustredeni/(?P<soustredeni>\d+)/obalky.pdf',
|
||||
url('soustredeni/<int:soustredeni>/obalky.pdf',
|
||||
staff_member_required(views.soustredeniObalkyView), name='seminar_soustredeni_obalky'),
|
||||
|
||||
url(r'^tex-upload/login/$', views.LoginView, name='seminar_login'),
|
||||
url('tex-upload/login/', views.LoginView, name='seminar_login'),
|
||||
url(
|
||||
r'^tex-upload/$',
|
||||
'tex-upload/',
|
||||
staff_member_required(views.texUploadView),
|
||||
name='seminar_tex_upload'
|
||||
),
|
||||
url(r'^prihlaska/$',views.get_name),
|
||||
url('prihlaska/',views.get_name),
|
||||
|
||||
# Ceka na autocomplete v3
|
||||
# url(r'^autocomplete/organizatori/$',
|
||||
# url('autocomplete/organizatori/',
|
||||
# staff_member_required(views.OrganizatorAutocomplete.as_view()),
|
||||
# name='seminar_autocomplete_organizator')
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
from django.shortcuts import get_object_or_404, render
|
||||
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.views import generic
|
||||
from django.utils.translation import ugettext as _
|
||||
|
|
Loading…
Reference in a new issue