Merge branch 'data_migrations' of gimli.ms.mff.cuni.cz:/akce/mam/git/mamweb into data_migrations
This commit is contained in:
commit
5a09d185d8
8 changed files with 63 additions and 30 deletions
|
@ -13,8 +13,8 @@
|
||||||
<script src="{% static 'js/jquery-1.11.1.js' %}"></script>
|
<script src="{% static 'js/jquery-1.11.1.js' %}"></script>
|
||||||
{% include 'autocomplete_light/static.html' %}
|
{% include 'autocomplete_light/static.html' %}
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}fluent_comments/css/ajaxcomments.css" />
|
<link rel="stylesheet" type="text/css" href="{% static 'fluent_comments/css/ajaxcomments.css' %}" />
|
||||||
<script type="text/javascript" src="{{ STATIC_URL }}fluent_comments/js/ajaxcomments.js"></script>
|
<script type="text/javascript" src="{% static 'fluent_comments/js/ajaxcomments.js' %}"></script>
|
||||||
|
|
||||||
{# nastavení MathJaxu, aby nahrazoval i matiku obalenou jednoduchými $ #}
|
{# nastavení MathJaxu, aby nahrazoval i matiku obalenou jednoduchými $ #}
|
||||||
<script type="text/x-mathjax-config">
|
<script type="text/x-mathjax-config">
|
||||||
|
|
|
@ -1162,6 +1162,14 @@ class TreeNode(models.Model):
|
||||||
blank = True,
|
blank = True,
|
||||||
on_delete=models.SET_NULL,
|
on_delete=models.SET_NULL,
|
||||||
verbose_name="další element na stejné úrovni")
|
verbose_name="další element na stejné úrovni")
|
||||||
|
|
||||||
|
def print_tree(self,indent=0):
|
||||||
|
print("{}TreeNode({})".format(" "*indent,self.id))
|
||||||
|
if self.first_child:
|
||||||
|
self.first_child.print_tree(indent=indent+2)
|
||||||
|
if self.succ:
|
||||||
|
self.succ.print_tree(indent=indent)
|
||||||
|
|
||||||
|
|
||||||
class RocnikNode(TreeNode):
|
class RocnikNode(TreeNode):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -1387,4 +1395,7 @@ class Novinky(models.Model):
|
||||||
zverejneno = models.BooleanField('Zveřejněno', default=False)
|
zverejneno = models.BooleanField('Zveřejněno', default=False)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '[' + str(self.datum) + '] ' + self.text[0:50]
|
if self.text:
|
||||||
|
return '[' + str(self.datum) + '] ' + self.text[0:50]
|
||||||
|
else:
|
||||||
|
return '[' + str(self.datum) + '] '
|
||||||
|
|
|
@ -96,25 +96,29 @@
|
||||||
|
|
||||||
|
|
||||||
{% for r in resitele %}
|
{% for r in resitele %}
|
||||||
|
{% with o=r.osoba %}
|
||||||
|
{% with s=r.osoba.skola %}
|
||||||
{% spaceless %}
|
{% spaceless %}
|
||||||
{% if r.zasilat == "do_skoly" %}
|
{% if r.zasilat == "do_skoly" %}
|
||||||
{% if r.stat == "CZ" %}
|
{% if r.stat == "CZ" %}
|
||||||
\obalka{{r.jmeno|sloz}}{{r.prijmeni|sloz}}{{r.skola.nazev|sloz}}{{r.skola.ulice|sloz}}{{r.skola.psc|sloz}}{{r.skola.mesto|sloz}}{{''|sloz}}
|
\obalka{{o.jmeno|sloz}}{{o.prijmeni|sloz}}{{s.nazev|sloz}}{{s.ulice|sloz}}{{s.psc|sloz}}{{s.mesto|sloz}}{{''|sloz}}
|
||||||
{% else %}
|
{% else %}
|
||||||
\obalka{{r.jmeno|sloz}}{{r.prijmeni|sloz}}{{r.skola.nazev|sloz}}{{r.skola.ulice|sloz}}{{r.skola.psc|sloz}}{{r.skola.mesto|sloz}}{{r.stat.name|sloz}}
|
\obalka{{o.jmeno|sloz}}{{o.prijmeni|sloz}}{{s.nazev|sloz}}{{s.ulice|sloz}}{{s.psc|sloz}}{{s.mesto|sloz}}{{o.stat.name|sloz}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% elif r.zasilat == "domu" %}
|
{% elif r.zasilat == "domu" %}
|
||||||
{% if r.stat == "CZ" %}
|
{% if r.stat == "CZ" %}
|
||||||
\obalka{{r.jmeno|sloz}}{{r.prijmeni|sloz}}{{''|sloz}}{{r.ulice|sloz}}{{r.psc|sloz}}{{r.mesto|sloz}}{{''|sloz}}
|
\obalka{{o.jmeno|sloz}}{{o.prijmeni|sloz}}{{''|sloz}}{{o.ulice|sloz}}{{o.psc|sloz}}{{o.mesto|sloz}}{{''|sloz}}
|
||||||
{% else %}
|
{% else %}
|
||||||
\obalka{{r.jmeno|sloz}}{{r.prijmeni|sloz}}{{''|sloz}}{{r.ulice|sloz}}{{r.psc|sloz}}{{r.mesto|sloz}}{{r.stat.name|sloz}}
|
\obalka{{o.jmeno|sloz}}{{o.prijmeni|sloz}}{{''|sloz}}{{o.ulice|sloz}}{{o.psc|sloz}}{{o.mesto|sloz}}{{o.stat.name|sloz}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
% zasilat: {{r.zasilat}}
|
% zasilat: {{r.zasilat}}
|
||||||
%\obalka{{r.jmeno|sloz}}{{r.prijmeni|sloz}}{{''|sloz}}{{r.ulice|sloz}}{{r.psc|sloz}}{{r.mesto|sloz}}{{r.stat.name|sloz}}
|
%\obalka{{r.jmeno|sloz}}{{r.prijmeni|sloz}}{{''|sloz}}{{r.ulice|sloz}}{{r.psc|sloz}}{{r.mesto|sloz}}{{r.stat.name|sloz}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endspaceless %}
|
{% endspaceless %}
|
||||||
|
{% endwith %}
|
||||||
|
{% endwith %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
||||||
|
|
|
@ -25,40 +25,40 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for org in object_list %}
|
{% for org in object_list %}
|
||||||
<h1>
|
<h1>
|
||||||
{{org.user.first_name}}
|
{{org.osoba.jmeno}}
|
||||||
{% if org.prezdivka %}
|
{% if org.prezdivka %}
|
||||||
„{{org.prezdivka}}“
|
„{{org.osoba.prezdivka}}“
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{org.user.last_name}}
|
{{org.osoba.prijmeni}}
|
||||||
</h1>
|
</h1>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div class="foto_org">
|
<div class="foto_org">
|
||||||
{% if org.foto %}
|
{% if org.osoba.foto %}
|
||||||
{# <img src="{{org.foto.url}}" height="{{org.foto.height}}"> #}
|
{# <img src="{{org.osoba.foto.url}}" height="{{org.osoba.foto.height}}"> #}
|
||||||
<a href="{{org.foto.url}}"><img src="{{org.foto_male.url}}" height="{{org.foto_male.height}}" alt="{{org.user.first_name}} {{org.user.last_name}}"></a>
|
<a href="{{org.osoba.foto.url}}"><img src="{{org.osoba.foto_male.url}}" height="{{org.osoba.foto_male.height}}" alt="{{org.osoba.jmeno}} {{org.osoba.prijmeni}}"></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<ul>
|
<ul>
|
||||||
{% if aktivni %}
|
{% if aktivni %}
|
||||||
{% if org.organizuje_od_roku %}
|
{% if org.organizuje_od %}
|
||||||
<li>
|
<li>
|
||||||
Organizuje od roku {{org.organizuje_od_roku}}
|
Organizuje od roku {{org.organizuje_od}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<li>
|
<li>
|
||||||
Aktivní v letech {{org.organizuje_od_roku | default:"?" }}–{{org.organizuje_do_roku | default:"?" }}
|
Aktivní v letech {{org.organizuje_od | default:"?" }}–{{org.organizuje_do | default:"?" }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if org.studuje %}
|
{% if org.skola %}
|
||||||
<li>{{org.studuje}}
|
<li>{{org.studuje}} na {{org.skola}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if org.user.email %}
|
{% if org.osoba.email %}
|
||||||
<li>Pošta:
|
<li>Pošta:
|
||||||
{# zobrazeni e-mailu (na jednom radku, aby nevznikaly mezery navic) #}
|
{# zobrazeni e-mailu (na jednom radku, aby nevznikaly mezery navic) #}
|
||||||
{% for znak in org.user.email %}{% if znak == '@' %} <zavináč> {% elif znak == '.' %} <tečka> {% else %}{{znak}}{% endif %}{% endfor %}
|
{% for znak in org.osoba.email %}{% if znak == '@' %} <zavináč> {% elif znak == '.' %} <tečka> {% else %}{{znak}}{% endif %}{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
{# {{org.strucny_popis_organizatora}} #}
|
{# {{org.strucny_popis_organizatora}} #}
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
<a href="../{{soustredeni.pk}}/seznam_ucastniku">HTML tabulka pro tisk</a>,
|
<a href="../{{soustredeni.pk}}/seznam_ucastniku">HTML tabulka pro tisk</a>,
|
||||||
<a href="../{{soustredeni.pk}}/export_ucastniku">CSV</a>,
|
<a href="../{{soustredeni.pk}}/export_ucastniku">CSV</a>,
|
||||||
<a href="../{{soustredeni.pk}}/maily_ucastniku">E-maily</a><br>
|
<a href="../{{soustredeni.pk}}/maily_ucastniku">E-maily</a><br>
|
||||||
<a href="../{{soustredeni.pk}}/stvrzenky/42">Stvrzenky <i>(42 v URL nahraďte prvním číslem z rozsahu)</i></a>
|
<!--a href="../{{soustredeni.pk}}/stvrzenky/42">Stvrzenky <i>(42 v URL nahraďte prvním číslem z rozsahu)</i></a!-->
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td nowrap>{{sous_ucast.resitel}}</td>
|
<td nowrap>{{sous_ucast.resitel}}</td>
|
||||||
<td nowrap>{{sous_ucast.resitel.rok_maturity}}</td>
|
<td nowrap>{{sous_ucast.resitel.rok_maturity}}</td>
|
||||||
<td nowrap>{{sous_ucast.resitel.telefon}}</td>
|
<td nowrap>{{sous_ucast.resitel.osoba.telefon}}</td>
|
||||||
<td nowrap>{{sous_ucast.poznamka}}</td>
|
<td nowrap>{{sous_ucast.poznamka}}</td>
|
||||||
<td class="fill"></td>
|
<td class="fill"></td>
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import django.contrib.auth
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
import unidecode
|
import unidecode
|
||||||
|
|
||||||
from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Osoba, Organizator, Prijemce, Tema, Uloha, Konfera, KonferaNode, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode
|
from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Osoba, Organizator, Prijemce, Tema, Uloha, Konfera, KonferaNode, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode, Novinky
|
||||||
|
|
||||||
from django.contrib.flatpages.models import FlatPage
|
from django.contrib.flatpages.models import FlatPage
|
||||||
from django.contrib.sites.models import Site
|
from django.contrib.sites.models import Site
|
||||||
|
@ -23,7 +23,7 @@ def gen_osoby(rnd, size):
|
||||||
'Pokora', 'Koch', 'Szegedy', 'Rudý', "von Neumann", "d'Este"]
|
'Pokora', 'Koch', 'Szegedy', 'Rudý', "von Neumann", "d'Este"]
|
||||||
prijmeni_f = ['Novotná', 'Svobodová', 'Machová', 'Zelená', 'Yu-Xin', 'Mlsná', 'Dubná',
|
prijmeni_f = ['Novotná', 'Svobodová', 'Machová', 'Zelená', 'Yu-Xin', 'Mlsná', 'Dubná',
|
||||||
'Mrkvová', 'Suchá', 'Lovelace', 'Holcová', 'Rui']
|
'Mrkvová', 'Suchá', 'Lovelace', 'Holcová', 'Rui']
|
||||||
prezdivka = ['Kaki', 'Hurdur', 'Maracuja', 'Bobbo', "", "", "", "", "",
|
prezdivky = ['Kaki', 'Hurdur', 'Maracuja', 'Bobbo', "", "", "", "", "",
|
||||||
"", "", 'Riki', 'Sapa', "", '', '---', 'Koko']
|
"", "", 'Riki', 'Sapa', "", '', '---', 'Koko']
|
||||||
domain = ['example.com', 'dolujeme.eu', 'mff.cuni.cz', 'strcprstskrzkrk.cz',
|
domain = ['example.com', 'dolujeme.eu', 'mff.cuni.cz', 'strcprstskrzkrk.cz',
|
||||||
'british.co.uk', 'splachni.to', 'haha.org']
|
'british.co.uk', 'splachni.to', 'haha.org']
|
||||||
|
@ -42,16 +42,16 @@ def gen_osoby(rnd, size):
|
||||||
pohlavi = rnd.randint(0,1)
|
pohlavi = rnd.randint(0,1)
|
||||||
jmeno = rnd.choice([jmena_m, jmena_f][pohlavi])
|
jmeno = rnd.choice([jmena_m, jmena_f][pohlavi])
|
||||||
prijmeni = rnd.choice([prijmeni_m, prijmeni_f][pohlavi])
|
prijmeni = rnd.choice([prijmeni_m, prijmeni_f][pohlavi])
|
||||||
prezdivka = rnd.choice([prezdivka])
|
prezdivka = rnd.choice(prezdivky)
|
||||||
email = "@".join([unidecode.unidecode(jmeno), rnd.choice(domain)])
|
email = "@".join([unidecode.unidecode(jmeno), rnd.choice(domain)])
|
||||||
telefon = [rnd.choice([k for k in range(10)]) for i in range(10)]
|
telefon = "".join([str(rnd.choice([k for k in range(10)])) for i in range(9)])
|
||||||
narozeni = datetime.date(rnd.randint(1980, 2020), rnd.randint(1, 12),
|
narozeni = datetime.date(rnd.randint(1980, 2020), rnd.randint(1, 12),
|
||||||
rnd.randint(1, 28))
|
rnd.randint(1, 28))
|
||||||
ulic = rnd.choice(seznam_ulic)
|
ulic = rnd.choice(seznam_ulic)
|
||||||
cp = rnd.randint(1, 99)
|
cp = rnd.randint(1, 99)
|
||||||
ulice = " ".join([ulic, str(cp)])
|
ulice = " ".join([ulic, str(cp)])
|
||||||
mesto = rnd.choice([seznam_mest])
|
mesto = rnd.choice(seznam_mest)
|
||||||
psc = [rnd.choice([k for k in range(10)]) for i in range(6)]
|
psc = "".join([str(rnd.choice([k for k in range(10)])) for i in range(5)])
|
||||||
osoby.append(Osoba.objects.create(jmeno = jmeno, prijmeni = prijmeni,
|
osoby.append(Osoba.objects.create(jmeno = jmeno, prijmeni = prijmeni,
|
||||||
prezdivka = prezdivka, pohlavi_muz = pohlavi, email = email,
|
prezdivka = prezdivka, pohlavi_muz = pohlavi, email = email,
|
||||||
telefon = telefon, datum_narozeni = narozeni, ulice = ulice,
|
telefon = telefon, datum_narozeni = narozeni, ulice = ulice,
|
||||||
|
@ -455,6 +455,19 @@ def gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori)
|
||||||
|
|
||||||
mozna_tema_vcn = mozna_tema_vcn.succ
|
mozna_tema_vcn = mozna_tema_vcn.succ
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def gen_novinky(rnd, organizatori):
|
||||||
|
|
||||||
|
jake = ["zábavné", "veselé", "dobrodružné", "skvělé"]
|
||||||
|
co = ["soustředění", "Fyziklání", "víkendové setkání"]
|
||||||
|
kde = ["na Šumavě", "v Praze", "u Plzně", "na Marsu"]
|
||||||
|
kdy = ["Zítra bude", "10. 10. 2020 bude", "V prosinci bude", "V létě bude"]
|
||||||
|
|
||||||
|
for i in range(5):
|
||||||
|
text_novinky = " ".join([rnd.choice(kdy),rnd.choice(kde),rnd.choice(jake),rnd.choice(co)])
|
||||||
|
novinka = Novinky.objects.create(id=i,autor=rnd.choice(organizatori),text=(text_novinky+", těšíme se na vás!"),zverejneno=rnd.choice([True,False]))
|
||||||
|
novinka.save()
|
||||||
|
return
|
||||||
|
|
||||||
def otec_syn(otec, syn):
|
def otec_syn(otec, syn):
|
||||||
bratr = otec.first_child
|
bratr = otec.first_child
|
||||||
|
@ -501,6 +514,9 @@ def create_test_data(size = 6, rnd = None):
|
||||||
resitele = gen_resitele(rnd, osoby, skoly)
|
resitele = gen_resitele(rnd, osoby, skoly)
|
||||||
organizatori = gen_organizatori(rnd, osoby, last_rocnik, users)
|
organizatori = gen_organizatori(rnd, osoby, last_rocnik, users)
|
||||||
|
|
||||||
|
#generování novinek
|
||||||
|
novinky = gen_novinky(rnd, organizatori)
|
||||||
|
|
||||||
# prijemci
|
# prijemci
|
||||||
prijemci = gen_prijemci(rnd, osoby)
|
prijemci = gen_prijemci(rnd, osoby)
|
||||||
|
|
||||||
|
@ -539,6 +555,8 @@ def create_test_data(size = 6, rnd = None):
|
||||||
# TODO: mezičíslo node
|
# TODO: mezičíslo node
|
||||||
# TODO: přidat ke konferám řešení a dát je do čísel
|
# TODO: přidat ke konferám řešení a dát je do čísel
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# obecné nastavení semináře, musí být už přidané ročníky a čísla, jinak se nastaví divně
|
# obecné nastavení semináře, musí být už přidané ročníky a čísla, jinak se nastaví divně
|
||||||
nastaveni = Nastaveni.objects.create(aktualni_rocnik = Rocnik.objects.last(),
|
nastaveni = Nastaveni.objects.create(aktualni_rocnik = Rocnik.objects.last(),
|
||||||
aktualni_cislo = Cislo.objects.all()[1])
|
aktualni_cislo = Cislo.objects.all()[1])
|
||||||
|
|
|
@ -147,7 +147,7 @@ def aktivniOrganizatori(datum=date.today()):
|
||||||
return Organizator.objects.exclude(
|
return Organizator.objects.exclude(
|
||||||
organizuje_do__isnull=False,
|
organizuje_do__isnull=False,
|
||||||
organizuje_do__lt=datum
|
organizuje_do__lt=datum
|
||||||
).order_by('user__first_name')
|
).order_by('osoba__jmeno')
|
||||||
|
|
||||||
|
|
||||||
class CojemamOrganizatoriView(generic.ListView):
|
class CojemamOrganizatoriView(generic.ListView):
|
||||||
|
@ -593,7 +593,7 @@ def obalkyView(request,resitele):
|
||||||
tex = render(request,'seminar/archiv/obalky.tex', {'resitele': resitele}).content
|
tex = render(request,'seminar/archiv/obalky.tex', {'resitele': resitele}).content
|
||||||
|
|
||||||
tempdir = tempfile.mkdtemp()
|
tempdir = tempfile.mkdtemp()
|
||||||
with open(tempdir+"/obalky.tex","w") as texfile:
|
with open(tempdir+"/obalky.tex","wb") as texfile:
|
||||||
texfile.write(tex)
|
texfile.write(tex)
|
||||||
shutil.copy(os.path.join(settings.STATIC_ROOT, 'seminar/lisak.eps'),tempdir)
|
shutil.copy(os.path.join(settings.STATIC_ROOT, 'seminar/lisak.eps'),tempdir)
|
||||||
subprocess.call(["pdflatex","obalky.tex"],cwd = tempdir)
|
subprocess.call(["pdflatex","obalky.tex"],cwd = tempdir)
|
||||||
|
|
Loading…
Reference in a new issue