From 6d9c2ea02101d0e24340bbb4bf448cfae1bec139 Mon Sep 17 00:00:00 2001 From: LEdoian Date: Mon, 17 Sep 2018 00:01:16 +0200 Subject: [PATCH 01/80] =?UTF-8?q?Zm=C4=9Bna=20NoArgsCommand=20na=20BaseCom?= =?UTF-8?q?mand=20kv=C5=AFli=20upgrade=20Djanga?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://docs.djangoproject.com/en/1.11/releases/1.8/ django.core.management.NoArgsCommand The class NoArgsCommand is now deprecated and will be removed in Django 1.10. Use BaseCommand instead, which takes no arguments by default. --- seminar/management/commands/auth.py | 4 ++-- seminar/management/commands/testdata.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/seminar/management/commands/auth.py b/seminar/management/commands/auth.py index 1aa504dd..894a87bc 100644 --- a/seminar/management/commands/auth.py +++ b/seminar/management/commands/auth.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- -from django.core.management.base import NoArgsCommand +from django.core.management.base import BaseCommand from django.contrib.sessions.models import Session from django.contrib.auth.models import User -class Command(NoArgsCommand): +class Command(BaseCommand): u"""Vypiš username přihlášeného orga s daným session_key. Příkaz pro manage.py, který ze vstupu přečte session_key (tak, jak je diff --git a/seminar/management/commands/testdata.py b/seminar/management/commands/testdata.py index dda7b097..aaa59462 100644 --- a/seminar/management/commands/testdata.py +++ b/seminar/management/commands/testdata.py @@ -4,7 +4,7 @@ import datetime import os import random -from django.core.management.base import NoArgsCommand +from django.core.management.base import BaseCommand from django.core.management import call_command from django.conf import settings @@ -14,7 +14,7 @@ import django.contrib.auth User = django.contrib.auth.get_user_model() -class Command(NoArgsCommand): +class Command(BaseCommand): help = "Clear database and load testing data." def handle_noargs(self, **options): From d4317ae9f2b52b308302b3d7b5940e25da597f21 Mon Sep 17 00:00:00 2001 From: LEdoian Date: Mon, 17 Sep 2018 00:10:00 +0200 Subject: [PATCH 02/80] =?UTF-8?q?Fix=20(nebyla=20definov=C3=A1na=20metoda?= =?UTF-8?q?=20handle)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://stackoverflow.com/questions/43107630/from-django-core-management-base-import-noargscommand-commanderror-importerror --- seminar/management/commands/auth.py | 2 +- seminar/management/commands/testdata.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/seminar/management/commands/auth.py b/seminar/management/commands/auth.py index 894a87bc..71757418 100644 --- a/seminar/management/commands/auth.py +++ b/seminar/management/commands/auth.py @@ -11,7 +11,7 @@ class Command(BaseCommand): uložen v cookie sessionid) a pokud session existuje a příslušný přihlášený uživatel má právo přihlásit se do admina, vypíše jeho username. """ - def handle_noargs(self, **options): + def handle(self, *args, **options): session_key = raw_input() s = Session.objects.get(pk=session_key).get_decoded() user_id = s['_auth_user_id'] diff --git a/seminar/management/commands/testdata.py b/seminar/management/commands/testdata.py index aaa59462..9f38ab57 100644 --- a/seminar/management/commands/testdata.py +++ b/seminar/management/commands/testdata.py @@ -17,7 +17,7 @@ User = django.contrib.auth.get_user_model() class Command(BaseCommand): help = "Clear database and load testing data." - def handle_noargs(self, **options): + def handle(self, *args, **options): assert settings.DEBUG == True dbfile = settings.DATABASES['default']['NAME'] if os.path.exists(dbfile): From ba5ceb14ba4a945aa39c5d9e56c9526c58e151ae Mon Sep 17 00:00:00 2001 From: LEdoian Date: Mon, 17 Sep 2018 22:18:27 +0200 Subject: [PATCH 03/80] =?UTF-8?q?Makefile:=20mo=C5=BEnost=20deploy=5Ftest?= =?UTF-8?q?=20deploynout=20i=20jinou=20branch.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 51bbdfad..7abd5a36 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ PYTHON=python2.7 VE_VER=16.0.0 LOCAL_PYTHON=bin/python +TEST_BRANCH?=test all: install @@ -66,7 +67,7 @@ deploy_test: @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi @if [ `pwd` != "/akce/mam/www/mamweb-test" ]; then echo "Only possible in /akce/mam/www/mamweb-test"; exit 1; fi @echo "Installing version from origin/test ..." - git pull origin test + git pull origin $(TEST_BRANCH) git clean -f make install ./manage.py migrate From 2e9ff73eacb3e6c6905f72aa04849df831c13596 Mon Sep 17 00:00:00 2001 From: LEdoian Date: Tue, 18 Sep 2018 02:07:01 +0200 Subject: [PATCH 04/80] =?UTF-8?q?Korektury:=20rozd=C4=9Blen=C3=AD=20aktu?= =?UTF-8?q?=C3=A1ln=C3=ADch=20a=20star=C3=BDch=20na=20dv=C4=9B=20str=C3=A1?= =?UTF-8?q?nky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- korektury/templates/korektury/base.html | 4 ++++ korektury/templates/korektury/help.html | 7 +++++++ korektury/templates/korektury/seznam.html | 12 ++++++++++++ korektury/templates/korektury/submenu.html | 13 +++++++++++++ korektury/urls.py | 3 ++- korektury/views.py | 13 +++++++++++++ 6 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 korektury/templates/korektury/submenu.html diff --git a/korektury/templates/korektury/base.html b/korektury/templates/korektury/base.html index b31d5d47..886a15e1 100644 --- a/korektury/templates/korektury/base.html +++ b/korektury/templates/korektury/base.html @@ -1,5 +1,9 @@ {% extends "base.html" %} +{% block submenu %} + {% include "korektury/submenu.html" %} +{% endblock %} + {% block content %} {# blok do kterého se nacita text, v pripade jinyhc templatu obalit vlastnim blokem #} {% endblock %} diff --git a/korektury/templates/korektury/help.html b/korektury/templates/korektury/help.html index 0024848e..f2ddafb9 100644 --- a/korektury/templates/korektury/help.html +++ b/korektury/templates/korektury/help.html @@ -1,4 +1,11 @@ {% extends "korektury/base.html" %} + +{% block submenu %} + {% with "help" as selected %} + {% include "korektury/submenu.html" %} + {% endwith %} +{% endblock %} + {% load staticfiles %} {% block title %} Nápověda ke korigovátku {% endblock title %} diff --git a/korektury/templates/korektury/seznam.html b/korektury/templates/korektury/seznam.html index 7531679b..6420ec7d 100644 --- a/korektury/templates/korektury/seznam.html +++ b/korektury/templates/korektury/seznam.html @@ -1,6 +1,18 @@ {% extends "korektury/base.html" %} {% load staticfiles %} +{% block submenu %} + {% if aktualni %} + {% with "aktualni" as selected %} + {% include "korektury/submenu.html" %} + {% endwith %} + {% else %} + {% with "zastarale" as selected %} + {% include "korektury/submenu.html" %} + {% endwith %} + {% endif %} +{% endblock %} + {% block script%} {% endblock %} diff --git a/korektury/templates/korektury/submenu.html b/korektury/templates/korektury/submenu.html new file mode 100644 index 00000000..0a5ed988 --- /dev/null +++ b/korektury/templates/korektury/submenu.html @@ -0,0 +1,13 @@ +{% with "/korektury" as cesta %} + + + +{% endwith %} + + diff --git a/korektury/urls.py b/korektury/urls.py index 2f131516..ecad4804 100644 --- a/korektury/urls.py +++ b/korektury/urls.py @@ -6,7 +6,8 @@ from . import views staff_member_required = user_passes_test(lambda u: u.is_staff) urlpatterns = [ - url(r'^korektury/$', staff_member_required(views.KorekturyListView.as_view()), name='korektury-list'), + url(r'^korektury/$', staff_member_required(views.KorekturyAktualniListView.as_view()), name='korektury-list'), + url(r'^korektury/zastarale/$', staff_member_required(views.KorekturyZastaraleListView.as_view()), name='korektury-list-zastarale'), url(r'^korektury/(?P\d+)/$', staff_member_required(views.KorekturyView.as_view()), name='korektury'), url(r'^korektury/help/', staff_member_required(views.KorekturyHelpView.as_view()), name='korektury-help'), ] diff --git a/korektury/views.py b/korektury/views.py index 1e5a9298..bc2acdd8 100644 --- a/korektury/views.py +++ b/korektury/views.py @@ -21,6 +21,19 @@ class KorekturyListView(generic.ListView): model = KorekturovanePDF template_name = 'korektury/seznam.html' +class KorekturyAktualniListView(KorekturyListView): + def __init__ (self): + self.queryset=self.get_queryset().exclude(status="zastarale") + + def get_context_data(self, **kwargs): + context = super(KorekturyAktualniListView,self).get_context_data(**kwargs) + context['aktualni'] = True + return context + +class KorekturyZastaraleListView(KorekturyListView): + def __init__ (self): + self.queryset=self.get_queryset().filter(status="zastarale") + ### Korektury class KorekturyView(generic.TemplateView): model = Oprava From 52d14c667aa59e9348387993994160de81fd6ab8 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Tue, 18 Sep 2018 02:20:55 +0200 Subject: [PATCH 05/80] =?UTF-8?q?Revert=20"Makefile:=20mo=C5=BEnost=20depl?= =?UTF-8?q?oy=5Ftest=20deploynout=20i=20jinou=20branch."?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tohle stejně nefungovalo. Asi je to dobrý nápad, ale git se chová jinak, než jsem si myslel. This reverts commit ba5ceb14ba4a945aa39c5d9e56c9526c58e151ae. --- Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 7abd5a36..51bbdfad 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,6 @@ PYTHON=python2.7 VE_VER=16.0.0 LOCAL_PYTHON=bin/python -TEST_BRANCH?=test all: install @@ -67,7 +66,7 @@ deploy_test: @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi @if [ `pwd` != "/akce/mam/www/mamweb-test" ]; then echo "Only possible in /akce/mam/www/mamweb-test"; exit 1; fi @echo "Installing version from origin/test ..." - git pull origin $(TEST_BRANCH) + git pull origin test git clean -f make install ./manage.py migrate From 8d22ab3c91b33eedaa930c66d8707714068262b8 Mon Sep 17 00:00:00 2001 From: LEdoian Date: Fri, 21 Sep 2018 00:25:54 +0200 Subject: [PATCH 06/80] =?UTF-8?q?Hez=C4=8D=C3=AD=20verze?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- korektury/templates/korektury/seznam.html | 10 +--------- korektury/views.py | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/korektury/templates/korektury/seznam.html b/korektury/templates/korektury/seznam.html index 6420ec7d..2498fbce 100644 --- a/korektury/templates/korektury/seznam.html +++ b/korektury/templates/korektury/seznam.html @@ -2,15 +2,7 @@ {% load staticfiles %} {% block submenu %} - {% if aktualni %} - {% with "aktualni" as selected %} - {% include "korektury/submenu.html" %} - {% endwith %} - {% else %} - {% with "zastarale" as selected %} - {% include "korektury/submenu.html" %} - {% endwith %} - {% endif %} + {% include "korektury/submenu.html" %} {% endblock %} {% block script%} diff --git a/korektury/views.py b/korektury/views.py index bc2acdd8..56f198f2 100644 --- a/korektury/views.py +++ b/korektury/views.py @@ -22,17 +22,26 @@ class KorekturyListView(generic.ListView): template_name = 'korektury/seznam.html' class KorekturyAktualniListView(KorekturyListView): - def __init__ (self): - self.queryset=self.get_queryset().exclude(status="zastarale") + def get_queryset(self, *args, **kwargs): + queryset=super(KorekturyAktualniListView,self).get_queryset() + queryset=queryset.exclude(status="zastarale") + return queryset def get_context_data(self, **kwargs): context = super(KorekturyAktualniListView,self).get_context_data(**kwargs) - context['aktualni'] = True + context['selected'] = 'aktualni' return context class KorekturyZastaraleListView(KorekturyListView): - def __init__ (self): - self.queryset=self.get_queryset().filter(status="zastarale") + def get_queryset(self, *args, **kwargs): + queryset=super(KorekturyZastaraleListView,self).get_queryset() + queryset=queryset.filter(status="zastarale") + return queryset + + def get_context_data(self, **kwargs): + context = super(KorekturyZastaraleListView,self).get_context_data(**kwargs) + context['selected'] = 'zastarale' + return context ### Korektury class KorekturyView(generic.TemplateView): From 0eadd8fcda4ac734efba4944dea6fbc519d83a67 Mon Sep 17 00:00:00 2001 From: LEdoian Date: Wed, 5 Dec 2018 23:42:26 +0100 Subject: [PATCH 07/80] =?UTF-8?q?Korekturov=C3=A1tko:=20Snad=20fix=20rozbi?= =?UTF-8?q?t=C3=A9ho=20ImageMagicku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- korektury/models.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/korektury/models.py b/korektury/models.py index 1430ec75..e5b6e01a 100644 --- a/korektury/models.py +++ b/korektury/models.py @@ -82,16 +82,25 @@ class KorekturovanePDF(models.Model): self.stran = 0 while True: res = subprocess.call([ - "convert", - "-density", "180x180", - "-geometry", " 1024x1448", - "%s[%d]" % (self.pdf.path, self.stran), - os.path.join( + #Parametry inspirovány chybovou hláškou imagemagicku + "gs", + "-sstdout=%stderr", + "-dSAFER", + "-dNOPAUSE", + "-dBATCH", + "-dNOPROMPT", + "-sDEVICE=pngalpha", + "-r180x180", + "-dFirstPage=%d" % (self.stran+1), + "-dLastPage=%d" % (self.stran+1), + "-sOutputFile="+os.path.join( dirname, - "%s-%d.png" % (self.get_prefix(), self.stran) - ) + "%s-%d.png" % (self.get_prefix(), self.stran)), + "-f%s" % (self.pdf.path) ]) - if res == 1: + if not os.path.exists(os.path.join( + dirname, + "%s-%d.png" % (self.get_prefix(), self.stran))): break self.stran += 1 # Změnil se počet stran, ukládáme From a7480f179612d05f7ed0e052d909436e2a94ec5a Mon Sep 17 00:00:00 2001 From: LEdoian Date: Mon, 10 Dec 2018 03:39:22 +0100 Subject: [PATCH 08/80] =?UTF-8?q?=C3=9Aprava=20textu=20v=20/zadani/temata?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Už to není flatpage, tak se to musí změnit tu. K zamyšlení: nechceme nějakou metodu úpravy statických textů na dynamických stránkách z adminu? --- seminar/templates/seminar/zadani/Temata.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/seminar/templates/seminar/zadani/Temata.html b/seminar/templates/seminar/zadani/Temata.html index ec700a1f..ae19de1a 100644 --- a/seminar/templates/seminar/zadani/Temata.html +++ b/seminar/templates/seminar/zadani/Temata.html @@ -17,10 +17,10 @@

- Témata jsou hlavním obsahem časopisu M&M. Obvykle představují - složitější a obecnější problémy než samostatné úlohy. Navíc je v jejich - zadání vždy prostor pro tvůrčí rozšíření. Za pěkný článek k tématu lze - získat třeba i 20 bodů, určitě se tedy vyplatí se tématy zabývat. + Témata jsou texty nejen z oblasti matematiky, fyziky a informatiky, které + popisují nějaký problém a jsou doprovázeny návodnými úlohami. Vaším úkolem + je zamyslet se nad daným problémem a sepsat vaše úvahy ve formě krátkého + textu.

Jak řešit téma? From fe7c4f601513c2045d58612918e7b1c82b371883 Mon Sep 17 00:00:00 2001 From: LEdoian Date: Wed, 6 Feb 2019 01:44:30 +0100 Subject: [PATCH 09/80] =?UTF-8?q?V=C3=BDsledkovka:=20V=C3=ADce=20=C5=99e?= =?UTF-8?q?=C5=A1en=C3=AD=20ke=20stejn=C3=A9mu=20=C5=99e=C5=A1iteli=20a=20?= =?UTF-8?q?=C4=8D=C3=ADslu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Například: nějaké nepravidelné získání bodů (DOD), pozdní dodání starého řešení, několik příspěvků ke stejnému témátku, ... --- seminar/views.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/seminar/views.py b/seminar/views.py index 25d72f7f..16a0e872 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -319,8 +319,10 @@ def vysledkovka_rocniku(rocnik, jen_verejne=True): #zobrazim jen je-li vysledkovka verejna body_za_cislo = VysledkyZaCislo.objects.filter(cislo__rocnik=rocnik).filter(cislo = cis).filter(resitel = v.resitel) if body_za_cislo: - #neprazdne vysledky by mely obsahovat prave jeden vysledek - v.body_cisla.append(body_za_cislo[0].body) + soucet = 0.0 + for x in body_za_cislo: + soucet += x.body + v.body_cisla.append(soucet) else: #resitel nema za cislo body v.body_cisla.append(0) From ce5884914891c43b04d01f3c6c5714544ade54d5 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Wed, 6 Feb 2019 02:33:05 +0100 Subject: [PATCH 10/80] =?UTF-8?q?Revert=20"V=C3=BDsledkovka:=20V=C3=ADce?= =?UTF-8?q?=20=C5=99e=C5=A1en=C3=AD=20ke=20stejn=C3=A9mu=20=C5=99e=C5=A1it?= =?UTF-8?q?eli=20a=20=C4=8D=C3=ADslu"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit fe7c4f601513c2045d58612918e7b1c82b371883. Změnil jsem špatný kód a navíc nefungoval --- seminar/views.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/seminar/views.py b/seminar/views.py index 16a0e872..25d72f7f 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -319,10 +319,8 @@ def vysledkovka_rocniku(rocnik, jen_verejne=True): #zobrazim jen je-li vysledkovka verejna body_za_cislo = VysledkyZaCislo.objects.filter(cislo__rocnik=rocnik).filter(cislo = cis).filter(resitel = v.resitel) if body_za_cislo: - soucet = 0.0 - for x in body_za_cislo: - soucet += x.body - v.body_cisla.append(soucet) + #neprazdne vysledky by mely obsahovat prave jeden vysledek + v.body_cisla.append(body_za_cislo[0].body) else: #resitel nema za cislo body v.body_cisla.append(0) From 028e249df2eda4d0f7b6a12c6aec4401d724c741 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Wed, 6 Feb 2019 04:51:12 +0100 Subject: [PATCH 11/80] =?UTF-8?q?V=C3=BDsledkovka:=20Sou=C4=8Det=20bod?= =?UTF-8?q?=C5=AF=20=C5=99e=C5=A1en=C3=AD=20ke=20stejn=C3=A9mu=20probl?= =?UTF-8?q?=C3=A9mu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dosud se součet za číslo sečetl správně, ale body u problému byly jen z posledního zpracovaného řešení. Tohle je potřeba na: DODové úložky, více článků ke stejnému témátku (třeba postupně během jednoho čísla), opožděné submity, ... Pavel --- seminar/views.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/seminar/views.py b/seminar/views.py index 25d72f7f..55e8aa7a 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -491,7 +491,12 @@ class CisloView(generic.DetailView): # za každé řešení doplníme k příslušnému řešiteli a úloze body for r in reseni: - vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = r.body + if r.body is None or vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] is None: + vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = None + elif vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] == '': + vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = r.body + else: + vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] += r.body context['vysledkovka'] = vysledkovka context['problemy'] = problemy From 5e9bdbfef08953441187ed501f2e40e0d7fcc9be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= Date: Tue, 5 Mar 2019 20:52:09 +0100 Subject: [PATCH 12/80] =?UTF-8?q?Zm=C4=9Bna=20obr=C3=A1zk=C5=AF=20v=20?= =?UTF-8?q?=C3=BAvodn=C3=ADm=20grafu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/titulnistrana.html | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/seminar/templates/seminar/titulnistrana.html b/seminar/templates/seminar/titulnistrana.html index d73e65e3..a9f3df66 100644 --- a/seminar/templates/seminar/titulnistrana.html +++ b/seminar/templates/seminar/titulnistrana.html @@ -39,19 +39,19 @@ M&M je korespondenční seminář. Několikrát do roka zdarma vydáváme č - - - + + + - - - + + + - + From 828aa7e52330fe1738a789a07877ecf4900c31ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= Date: Tue, 5 Mar 2019 20:52:09 +0100 Subject: [PATCH 13/80] =?UTF-8?q?Zm=C4=9Bna=20obr=C3=A1zk=C5=AF=20v=20?= =?UTF-8?q?=C3=BAvodn=C3=ADm=20grafu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/titulnistrana.html | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/seminar/templates/seminar/titulnistrana.html b/seminar/templates/seminar/titulnistrana.html index d73e65e3..a9f3df66 100644 --- a/seminar/templates/seminar/titulnistrana.html +++ b/seminar/templates/seminar/titulnistrana.html @@ -39,19 +39,19 @@ M&M je korespondenční seminář. Několikrát do roka zdarma vydáváme č - - - + + + - - - + + + - + From d2367d28fb33b4dcdf2895b8e4bf95bbaabc328a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= Date: Tue, 5 Mar 2019 21:09:14 +0100 Subject: [PATCH 14/80] =?UTF-8?q?Oprava=20rozbit=C3=BDch=20p=C5=99=C3=ADpo?= =?UTF-8?q?n=20obr=C3=A1zk=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/titulnistrana.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seminar/templates/seminar/titulnistrana.html b/seminar/templates/seminar/titulnistrana.html index a9f3df66..3134de45 100644 --- a/seminar/templates/seminar/titulnistrana.html +++ b/seminar/templates/seminar/titulnistrana.html @@ -51,11 +51,11 @@ M&M je korespondenční seminář. Několikrát do roka zdarma vydáváme č - + - + From 7b3f423a74ed6611d7fa42be26707c69491d8738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= Date: Tue, 5 Mar 2019 21:09:14 +0100 Subject: [PATCH 15/80] =?UTF-8?q?Oprava=20rozbit=C3=BDch=20p=C5=99=C3=ADpo?= =?UTF-8?q?n=20obr=C3=A1zk=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/titulnistrana.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seminar/templates/seminar/titulnistrana.html b/seminar/templates/seminar/titulnistrana.html index a9f3df66..3134de45 100644 --- a/seminar/templates/seminar/titulnistrana.html +++ b/seminar/templates/seminar/titulnistrana.html @@ -51,11 +51,11 @@ M&M je korespondenční seminář. Několikrát do roka zdarma vydáváme č - + - + From 66715166d494e71d2ae0ce027c3e0bb19d92e22c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= Date: Wed, 6 Mar 2019 00:19:47 +0100 Subject: [PATCH 16/80] galerie/views.py: oprava sorteni obrazku --- galerie/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/galerie/views.py b/galerie/views.py index 46860810..f7ace3c8 100644 --- a/galerie/views.py +++ b/galerie/views.py @@ -38,7 +38,7 @@ def nahled(request, pk, soustredeni): if not request.user.is_staff: podgalerie = podgalerie.filter(zobrazit__lt=1) - obrazky = Obrazek.objects.filter(galerie = galerie) + obrazky = Obrazek.objects.filter(galerie = galerie).order_by('poradi') preview = zobrazit(galerie, request) sourozenci = [] @@ -82,7 +82,7 @@ def detail(request, pk, fotka, soustredeni): galerie = get_object_or_404(Galerie, pk=pk) preview = zobrazit(galerie, request) obrazek = get_object_or_404(Obrazek, pk=fotka) - obrazky = galerie.obrazek_set.all() + obrazky = galerie.obrazek_set.all().order_by('poradi') # vytvoreni a obslouzeni formulare if request.method == 'POST': From ec8ac3e3093fca287954bf174e6dbcf79d7721dd Mon Sep 17 00:00:00 2001 From: LEdoian Date: Wed, 6 Mar 2019 00:52:34 +0100 Subject: [PATCH 17/80] =?UTF-8?q?Galerie:=20Mo=C5=BEnost=20=C3=BApravy=20p?= =?UTF-8?q?o=C5=99ad=C3=AD=20fotek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- galerie/admin.py | 6 +++--- galerie/views.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/galerie/admin.py b/galerie/admin.py index 8e9c1897..6bae43ac 100644 --- a/galerie/admin.py +++ b/galerie/admin.py @@ -31,20 +31,20 @@ def prepnout_fotogalerii_do_org_rezimu(modeladmin, request, queryset): class GalerieInline(admin.TabularInline): model = Obrazek - fields = ['obrazek_velky', 'nazev', 'popis', 'obrazek_maly_tag'] + fields = ['obrazek_velky', 'nazev', 'popis', 'obrazek_maly_tag', 'poradi'] readonly_fields = ['nazev', 'obrazek_maly_tag'] formfield_overrides = { models.TextField: {'widget': forms.TextInput}, } class ObrazekAdmin(admin.ModelAdmin): - list_display = ('obrazek_velky', 'nazev', 'popis', 'obrazek_maly_tag') + list_display = ('obrazek_velky', 'nazev', 'popis', 'obrazek_maly_tag', 'poradi') class GalerieAdmin(admin.ModelAdmin): form = autocomplete_light.modelform_factory(Galerie, autocomplete_fields=['titulni_obrazek'], fields=['titulni_obrazek']) model = Galerie fields = ('zobrazit', 'nazev', 'titulni_obrazek', 'popis', 'galerie_up', 'soustredeni', 'poradi') - list_display = ('nazev', 'pk', 'poradi', 'datum_zmeny', 'zobrazit', 'soustredeni') + list_display = ('nazev', 'pk', 'poradi', 'datum_zmeny', 'zobrazit', 'soustredeni', 'poradi') inlines = [GalerieInline] actions = [zverejnit_fotogalerii, prepnout_fotogalerii_do_org_rezimu] save_on_top = True diff --git a/galerie/views.py b/galerie/views.py index 46860810..f7ace3c8 100644 --- a/galerie/views.py +++ b/galerie/views.py @@ -38,7 +38,7 @@ def nahled(request, pk, soustredeni): if not request.user.is_staff: podgalerie = podgalerie.filter(zobrazit__lt=1) - obrazky = Obrazek.objects.filter(galerie = galerie) + obrazky = Obrazek.objects.filter(galerie = galerie).order_by('poradi') preview = zobrazit(galerie, request) sourozenci = [] @@ -82,7 +82,7 @@ def detail(request, pk, fotka, soustredeni): galerie = get_object_or_404(Galerie, pk=pk) preview = zobrazit(galerie, request) obrazek = get_object_or_404(Obrazek, pk=fotka) - obrazky = galerie.obrazek_set.all() + obrazky = galerie.obrazek_set.all().order_by('poradi') # vytvoreni a obslouzeni formulare if request.method == 'POST': From aba3fa356b40ccfe639c40d16eb1c00aef2c0b58 Mon Sep 17 00:00:00 2001 From: LEdoian Date: Wed, 6 Mar 2019 01:13:55 +0100 Subject: [PATCH 18/80] =?UTF-8?q?Galerie:=20Ale=20sta=C4=8D=C3=AD=20zobraz?= =?UTF-8?q?it=20po=C5=99ad=C3=AD=20jednou=20:-)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- galerie/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/galerie/admin.py b/galerie/admin.py index 6bae43ac..784d4aa8 100644 --- a/galerie/admin.py +++ b/galerie/admin.py @@ -44,7 +44,7 @@ class GalerieAdmin(admin.ModelAdmin): form = autocomplete_light.modelform_factory(Galerie, autocomplete_fields=['titulni_obrazek'], fields=['titulni_obrazek']) model = Galerie fields = ('zobrazit', 'nazev', 'titulni_obrazek', 'popis', 'galerie_up', 'soustredeni', 'poradi') - list_display = ('nazev', 'pk', 'poradi', 'datum_zmeny', 'zobrazit', 'soustredeni', 'poradi') + list_display = ('nazev', 'pk', 'poradi', 'datum_zmeny', 'zobrazit', 'soustredeni') inlines = [GalerieInline] actions = [zverejnit_fotogalerii, prepnout_fotogalerii_do_org_rezimu] save_on_top = True From 9b14e964101c073283e18ffb6040c5fdb16f399a Mon Sep 17 00:00:00 2001 From: LEdoian Date: Wed, 6 Mar 2019 00:52:34 +0100 Subject: [PATCH 19/80] =?UTF-8?q?Galerie:=20Mo=C5=BEnost=20=C3=BApravy=20p?= =?UTF-8?q?o=C5=99ad=C3=AD=20fotek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- galerie/admin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/galerie/admin.py b/galerie/admin.py index 9ab2c3ba..0ca32dc9 100644 --- a/galerie/admin.py +++ b/galerie/admin.py @@ -31,14 +31,14 @@ def prepnout_fotogalerii_do_org_rezimu(modeladmin, request, queryset): class GalerieInline(admin.TabularInline): model = Obrazek - fields = ['obrazek_velky', 'nazev', 'popis', 'obrazek_maly_tag'] + fields = ['obrazek_velky', 'nazev', 'popis', 'obrazek_maly_tag', 'poradi'] readonly_fields = ['nazev', 'obrazek_maly_tag'] formfield_overrides = { models.TextField: {'widget': forms.TextInput}, } class ObrazekAdmin(admin.ModelAdmin): - list_display = ('obrazek_velky', 'nazev', 'popis', 'obrazek_maly_tag') + list_display = ('obrazek_velky', 'nazev', 'popis', 'obrazek_maly_tag', 'poradi') class GalerieAdmin(admin.ModelAdmin): form = autocomplete_light.modelform_factory(Galerie, autocomplete_fields=['titulni_obrazek'], fields=['titulni_obrazek']) From abb99cfde1335b9821b2207236e6eb559801126a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= Date: Wed, 6 Mar 2019 12:55:24 +0100 Subject: [PATCH 20/80] =?UTF-8?q?Varov=C3=A1n=C3=AD=20o=20neaktu=C3=A1lnos?= =?UTF-8?q?ti=20t=C3=A9m=C3=A1tek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/zadani/Temata.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/seminar/templates/seminar/zadani/Temata.html b/seminar/templates/seminar/zadani/Temata.html index ae19de1a..ee3d822a 100644 --- a/seminar/templates/seminar/zadani/Temata.html +++ b/seminar/templates/seminar/zadani/Temata.html @@ -16,6 +16,10 @@ {% endblock %}{% endblock %} + +

+ Pozor, tato stránka není aktuální! Aktualizovaný seznam všech čísel v PDF najdete zde. Za problémy se omlouváme. +

Témata jsou texty nejen z oblasti matematiky, fyziky a informatiky, které popisují nějaký problém a jsou doprovázeny návodnými úlohami. Vaším úkolem From 891480f7513a417a765b3908636578ee1128adf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= Date: Wed, 6 Mar 2019 13:20:41 +0100 Subject: [PATCH 21/80] =?UTF-8?q?Zm=C4=9Bna=20velikosti=20varov=C3=A1n?= =?UTF-8?q?=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/zadani/Temata.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seminar/templates/seminar/zadani/Temata.html b/seminar/templates/seminar/zadani/Temata.html index ee3d822a..26a88664 100644 --- a/seminar/templates/seminar/zadani/Temata.html +++ b/seminar/templates/seminar/zadani/Temata.html @@ -17,9 +17,9 @@ -

+

Pozor, tato stránka není aktuální! Aktualizovaný seznam všech čísel v PDF najdete zde. Za problémy se omlouváme. -

+

Témata jsou texty nejen z oblasti matematiky, fyziky a informatiky, které popisují nějaký problém a jsou doprovázeny návodnými úlohami. Vaším úkolem From 2cd5294754e2bf7e5b84525702eedcf9bc5dd289 Mon Sep 17 00:00:00 2001 From: LEdoian Date: Wed, 13 Mar 2019 18:41:28 +0100 Subject: [PATCH 22/80] =?UTF-8?q?Organizator:=20Lep=C5=A1=C3=AD=20zp=C5=AF?= =?UTF-8?q?sob=20=C5=99azen=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/seminar/models.py b/seminar/models.py index 2bc86c41..e3c89ab8 100644 --- a/seminar/models.py +++ b/seminar/models.py @@ -758,6 +758,10 @@ class Organizator(models.Model): class Meta: verbose_name = 'Organizátor' verbose_name_plural = 'Organizátoři' + # Řadí aktivní orgy na začátek, pod tím v pořadí od nejstarších neaktivní orgy. + # TODO: Chtěl bych spíš mít nejstarší orgy dole. + # TODO: Zohledňovat přezdívky? + ordering = ['organizuje_do_roku', 'user__first_name', 'user__last_name'] @reversion.register(ignore_duplicates=True) From 9e03fba505185eca8391bbc87bb9f57739272306 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Wed, 13 Mar 2019 18:51:09 +0100 Subject: [PATCH 23/80] =?UTF-8?q?Chyba=20ve=20znam=C3=A9nku=20u=20=C5=99az?= =?UTF-8?q?en=C3=AD=20organiz=C3=A1tor=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/seminar/models.py b/seminar/models.py index e3c89ab8..86ea2811 100644 --- a/seminar/models.py +++ b/seminar/models.py @@ -761,7 +761,8 @@ class Organizator(models.Model): # Řadí aktivní orgy na začátek, pod tím v pořadí od nejstarších neaktivní orgy. # TODO: Chtěl bych spíš mít nejstarší orgy dole. # TODO: Zohledňovat přezdívky? - ordering = ['organizuje_do_roku', 'user__first_name', 'user__last_name'] + # TODO: Sjednotit s tím, jak se řadí organizátoři v seznau orgů na webu + ordering = ['-organizuje_do_roku', 'user__first_name', 'user__last_name'] @reversion.register(ignore_duplicates=True) From 7e517d2c242c1179cbc7dd2bf52e4eb345099c6e Mon Sep 17 00:00:00 2001 From: LEdoian Date: Wed, 13 Mar 2019 18:41:28 +0100 Subject: [PATCH 24/80] =?UTF-8?q?Organizator:=20Lep=C5=A1=C3=AD=20zp=C5=AF?= =?UTF-8?q?sob=20=C5=99azen=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/seminar/models.py b/seminar/models.py index 2bc86c41..e3c89ab8 100644 --- a/seminar/models.py +++ b/seminar/models.py @@ -758,6 +758,10 @@ class Organizator(models.Model): class Meta: verbose_name = 'Organizátor' verbose_name_plural = 'Organizátoři' + # Řadí aktivní orgy na začátek, pod tím v pořadí od nejstarších neaktivní orgy. + # TODO: Chtěl bych spíš mít nejstarší orgy dole. + # TODO: Zohledňovat přezdívky? + ordering = ['organizuje_do_roku', 'user__first_name', 'user__last_name'] @reversion.register(ignore_duplicates=True) From 4c0ea60ecb701dae0c9f4890b069ef890ac21dee Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Wed, 13 Mar 2019 18:51:09 +0100 Subject: [PATCH 25/80] =?UTF-8?q?Chyba=20ve=20znam=C3=A9nku=20u=20=C5=99az?= =?UTF-8?q?en=C3=AD=20organiz=C3=A1tor=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/seminar/models.py b/seminar/models.py index e3c89ab8..86ea2811 100644 --- a/seminar/models.py +++ b/seminar/models.py @@ -761,7 +761,8 @@ class Organizator(models.Model): # Řadí aktivní orgy na začátek, pod tím v pořadí od nejstarších neaktivní orgy. # TODO: Chtěl bych spíš mít nejstarší orgy dole. # TODO: Zohledňovat přezdívky? - ordering = ['organizuje_do_roku', 'user__first_name', 'user__last_name'] + # TODO: Sjednotit s tím, jak se řadí organizátoři v seznau orgů na webu + ordering = ['-organizuje_do_roku', 'user__first_name', 'user__last_name'] @reversion.register(ignore_duplicates=True) From dd9250a380357c49c76aacea1678ea07c850d0f9 Mon Sep 17 00:00:00 2001 From: LEdoian Date: Sun, 17 Mar 2019 19:48:33 +0100 Subject: [PATCH 26/80] =?UTF-8?q?P=C5=99edn=C3=A1=C5=A1ky:=20obt=C3=AD?= =?UTF-8?q?=C5=BEnost=20v=20seznamu,=20jen=20aktu=C3=A1ln=C3=AD=20body=20v?= =?UTF-8?q?e=20v=C3=BDsledc=C3=ADch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ... Snad. --- prednasky/admin.py | 7 ++++++- prednasky/views.py | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/prednasky/admin.py b/prednasky/admin.py index a9b94ee0..f7ce8730 100644 --- a/prednasky/admin.py +++ b/prednasky/admin.py @@ -37,15 +37,20 @@ class Seznam_PrednaskaInline(admin.TabularInline): def prednaska__obor(self, obj): return obj.prednaska.obor + def prednaska__obtiznost(self, obj): + return obj.prednaska.obtiznost + prednaska__nazev.short_description = u'Přednáška' prednaska__popis.short_description = u'Popis pro orgy' prednaska__anotace.short_description = u'Anotace' prednaska__org.short_description = u'Org' prednaska__obor.short_description = u'Obor' + prednaska__obtiznost.short_description = u'Obtížnost' readonly_fields = [ 'prednaska__nazev', 'prednaska__obor', + 'prednaska__obtiznost', 'prednaska__org', 'prednaska__popis', 'prednaska__anotace', @@ -63,7 +68,7 @@ admin.site.register(Seznam, SeznamAdmin) class PrednaskaAdmin(VersionAdmin): - list_display = ['nazev', 'org', 'obor'] + list_display = ['nazev', 'org', 'obor', 'obtiznost'] list_filter = ['org', 'obor'] search_fields = [] filter_horizontal = ('seznamy', ) diff --git a/prednasky/views.py b/prednasky/views.py index 1e66ee64..7423f860 100644 --- a/prednasky/views.py +++ b/prednasky/views.py @@ -57,7 +57,7 @@ class SeznamListView(generic.ListView): self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"]) prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by( 'org__user__first_name', 'org__user__last_name' - ).annotate(body=Sum('hlasovani__body')) + ).annotate(body=Sum('hlasovani__body').filter(seznam=self.seznam)) return prednasky From 5db763f2cb713632381f455a93efc319b44f9f48 Mon Sep 17 00:00:00 2001 From: LEdoian Date: Sun, 17 Mar 2019 21:27:35 +0100 Subject: [PATCH 27/80] =?UTF-8?q?Revert=20"P=C5=99edn=C3=A1=C5=A1ky:=20obt?= =?UTF-8?q?=C3=AD=C5=BEnost=20v=20seznamu,=20jen=20aktu=C3=A1ln=C3=AD=20bo?= =?UTF-8?q?dy=20ve=20v=C3=BDsledc=C3=ADch"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Víc věcí to rozbilo než opravilo This reverts commit dd9250a380357c49c76aacea1678ea07c850d0f9. --- prednasky/admin.py | 7 +------ prednasky/views.py | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/prednasky/admin.py b/prednasky/admin.py index f7ce8730..a9b94ee0 100644 --- a/prednasky/admin.py +++ b/prednasky/admin.py @@ -37,20 +37,15 @@ class Seznam_PrednaskaInline(admin.TabularInline): def prednaska__obor(self, obj): return obj.prednaska.obor - def prednaska__obtiznost(self, obj): - return obj.prednaska.obtiznost - prednaska__nazev.short_description = u'Přednáška' prednaska__popis.short_description = u'Popis pro orgy' prednaska__anotace.short_description = u'Anotace' prednaska__org.short_description = u'Org' prednaska__obor.short_description = u'Obor' - prednaska__obtiznost.short_description = u'Obtížnost' readonly_fields = [ 'prednaska__nazev', 'prednaska__obor', - 'prednaska__obtiznost', 'prednaska__org', 'prednaska__popis', 'prednaska__anotace', @@ -68,7 +63,7 @@ admin.site.register(Seznam, SeznamAdmin) class PrednaskaAdmin(VersionAdmin): - list_display = ['nazev', 'org', 'obor', 'obtiznost'] + list_display = ['nazev', 'org', 'obor'] list_filter = ['org', 'obor'] search_fields = [] filter_horizontal = ('seznamy', ) diff --git a/prednasky/views.py b/prednasky/views.py index 7423f860..1e66ee64 100644 --- a/prednasky/views.py +++ b/prednasky/views.py @@ -57,7 +57,7 @@ class SeznamListView(generic.ListView): self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"]) prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by( 'org__user__first_name', 'org__user__last_name' - ).annotate(body=Sum('hlasovani__body').filter(seznam=self.seznam)) + ).annotate(body=Sum('hlasovani__body')) return prednasky From bd92068b37d4842d646e313cebe94e7f74d61b89 Mon Sep 17 00:00:00 2001 From: LEdoian Date: Mon, 18 Mar 2019 00:34:37 +0100 Subject: [PATCH 28/80] =?UTF-8?q?Prednasky:=20v=20aktu=C3=A1ln=C3=ADch=20v?= =?UTF-8?q?=C3=BDsledc=C3=ADch=20jen=20aktu=C3=A1ln=C3=AD=20v=C3=BDsledky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prednasky/views.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/prednasky/views.py b/prednasky/views.py index 1e66ee64..5d4e2eab 100644 --- a/prednasky/views.py +++ b/prednasky/views.py @@ -3,7 +3,7 @@ from django.shortcuts import render, get_object_or_404 from django.views import generic from django.shortcuts import HttpResponseRedirect from django.core.exceptions import ObjectDoesNotExist -from django.db.models import Sum +from django.db.models import Sum, Subquery from prednasky.models import Prednaska, Hlasovani, Seznam, STAV_NAVRH from seminar.models import Soustredeni @@ -55,9 +55,14 @@ class SeznamListView(generic.ListView): def get_queryset(self): self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"]) + # Od "annotate" je to hack opsaný ze stack overflow, kterým se filtrují + # jen výsledky z aktuálního seznamu. Dosud se zobrazoval součet bodů u + # přednášky od počátku historie. + # TODO: udělat lépe (Django 2 má Sum s filtrem) prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by( 'org__user__first_name', 'org__user__last_name' - ).annotate(body=Sum('hlasovani__body')) + ).annotate(body=Subquery(Hlasovani.objects.filter(seznam=self.seznam) + .values('body').annotate(b=Sum('body')).values('b'))) return prednasky From 0aa5faa995c89de3b536bd442bb2e773f2053e64 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Mon, 18 Mar 2019 00:56:53 +0100 Subject: [PATCH 29/80] =?UTF-8?q?Revert=20"Prednasky:=20v=20aktu=C3=A1ln?= =?UTF-8?q?=C3=ADch=20v=C3=BDsledc=C3=ADch=20jen=20aktu=C3=A1ln=C3=AD=20v?= =?UTF-8?q?=C3=BDsledky"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Zase to nefungovalo This reverts commit bd92068b37d4842d646e313cebe94e7f74d61b89. --- prednasky/views.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/prednasky/views.py b/prednasky/views.py index 5d4e2eab..1e66ee64 100644 --- a/prednasky/views.py +++ b/prednasky/views.py @@ -3,7 +3,7 @@ from django.shortcuts import render, get_object_or_404 from django.views import generic from django.shortcuts import HttpResponseRedirect from django.core.exceptions import ObjectDoesNotExist -from django.db.models import Sum, Subquery +from django.db.models import Sum from prednasky.models import Prednaska, Hlasovani, Seznam, STAV_NAVRH from seminar.models import Soustredeni @@ -55,14 +55,9 @@ class SeznamListView(generic.ListView): def get_queryset(self): self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"]) - # Od "annotate" je to hack opsaný ze stack overflow, kterým se filtrují - # jen výsledky z aktuálního seznamu. Dosud se zobrazoval součet bodů u - # přednášky od počátku historie. - # TODO: udělat lépe (Django 2 má Sum s filtrem) prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by( 'org__user__first_name', 'org__user__last_name' - ).annotate(body=Subquery(Hlasovani.objects.filter(seznam=self.seznam) - .values('body').annotate(b=Sum('body')).values('b'))) + ).annotate(body=Sum('hlasovani__body')) return prednasky From 9c2ac21174a8720b5c7f67e0a73ccbd65d38b24a Mon Sep 17 00:00:00 2001 From: LEdoian Date: Tue, 19 Mar 2019 20:49:19 +0100 Subject: [PATCH 30/80] =?UTF-8?q?V=C3=BDsledkovka:=20s=C4=8D=C3=ADtat=20bo?= =?UTF-8?q?dy,=20pokud=20=C3=BA=C4=8Dastn=C3=ADk=20m=C3=A1=20v=C3=ADc=20bo?= =?UTF-8?q?dov=C3=A1n=C3=AD=20ke=20stejn=C3=A9mu=20t=C3=A9m=C3=A1tku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/views.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/seminar/views.py b/seminar/views.py index 25d72f7f..55e8aa7a 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -491,7 +491,12 @@ class CisloView(generic.DetailView): # za každé řešení doplníme k příslušnému řešiteli a úloze body for r in reseni: - vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = r.body + if r.body is None or vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] is None: + vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = None + elif vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] == '': + vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = r.body + else: + vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] += r.body context['vysledkovka'] = vysledkovka context['problemy'] = problemy From a6b4d346f55f16e1f7907373e4d6e19281e1fd25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= Date: Tue, 19 Mar 2019 22:05:58 +0100 Subject: [PATCH 31/80] =?UTF-8?q?Vypnut=C3=AD=20ACF=20v=20ck=20editoru?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_common.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 6d171ca0..590a0a74 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -172,7 +172,8 @@ CKEDITOR_CONFIGS = { # 'toolbar': 'full', 'height': '40em', 'width': '100%', - 'toolbarStartupExpanded': False + 'toolbarStartupExpanded': False, + 'allowedContent' : True, }, } From 27d304bb17169de839802724c21b671ed137ce7e Mon Sep 17 00:00:00 2001 From: "Tomas \"Jethro\" Pokorny" Date: Tue, 19 Mar 2019 23:05:36 +0100 Subject: [PATCH 32/80] Oprava zobrazovani vysledku hlasovani. V seznamu prednasek se zobrazuji pouze body ziskane k danemu sous. --- .../prednasky/seznam_prednasek_export.txt | 14 +------------- prednasky/views.py | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/prednasky/templates/prednasky/seznam_prednasek_export.txt b/prednasky/templates/prednasky/seznam_prednasek_export.txt index 2defc91e..21d88942 100644 --- a/prednasky/templates/prednasky/seznam_prednasek_export.txt +++ b/prednasky/templates/prednasky/seznam_prednasek_export.txt @@ -1,19 +1,7 @@ {% block content %} {% spaceless %} -{% for hlas in hlasovani %} -hlas({{hlas.ucastnik}},{{hlas.prednaska.id}},{{hlas.body}}) -{% endfor %} -{% for prednaska in prednasky %} -prednaska({{prednaska.id}},{{prednaska.org.id}},{{prednaska.obtiznost}},{{prednaska.obor}}) -{% endfor %} -{% for org in orgove %} -org({{org.id}},4,0,15) -{% endfor %} -{% for org in orgove %} -{{org.id}};{{org}} -{% endfor %} {% for prednaska in prednasky %} -{{prednaska.id}};{{prednaska.nazev}};{{prednaska.org.id}} +{{prednaska.id}};{{prednaska.nazev}};{{prednaska.org}} {{prednaska.body}} {% endfor %} {% endspaceless %} diff --git a/prednasky/views.py b/prednasky/views.py index 1e66ee64..7eee5740 100644 --- a/prednasky/views.py +++ b/prednasky/views.py @@ -57,9 +57,24 @@ class SeznamListView(generic.ListView): self.seznam = get_object_or_404(Seznam, id=self.kwargs["seznam"]) prednasky = Prednaska.objects.filter(seznamy=self.seznam).order_by( 'org__user__first_name', 'org__user__last_name' - ).annotate(body=Sum('hlasovani__body')) + ) return prednasky + # FIXME nahradit anotaci s filtrem po prechodu na Django 2.2 + def get_context_data(self,**kwargs): + context = super(SeznamListView, self).get_context_data(**kwargs) + + # hlasovani se vztahuje k nejnovejsimu soustredeni + sous = Soustredeni.objects.first() + seznam = Seznam.objects.filter(soustredeni = sous, stav = STAV_NAVRH).first() + + for obj in self.object_list: + hlasovani_set = obj.hlasovani_set.filter(seznam=seznam).only('body') + obj.body = sum(map(lambda x: x.body,hlasovani_set)) + + return context + + def SeznamExportView(request, seznam): u"""Vypíše výsledky hlasování ve formátu pro prologovský optimalizátor""" @@ -86,7 +101,7 @@ def SeznamExportView(request, seznam): request, 'prednasky/seznam_prednasek_export.txt', {"hlasovani": hlasovani, "prednasky": prednasky, "orgove": orgove}, - content_type="text/plain" + content_type="text/plain; charset=utf-8" ) From 05e8efd034d1aba766ae1a5f21b3a03d02fe8e3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Mus=C3=ADlek?= Date: Fri, 17 May 2019 20:38:54 +0200 Subject: [PATCH 33/80] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20django-flat-theme,?= =?UTF-8?q?=20kter=C3=A9=20rozb=C3=ADjelo=20admina?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_common.py | 1 - requirements.txt | 1 - 2 files changed, 2 deletions(-) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 590a0a74..5dc5f7ca 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -129,7 +129,6 @@ INSTALLED_APPS = ( # 'admin_tools.theming', # 'admin_tools.menu', # 'admin_tools.dashboard', - 'flat', 'django.contrib.admin', ) diff --git a/requirements.txt b/requirements.txt index 02104910..6aac48c9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -20,7 +20,6 @@ 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-autocomplete-light==2.3.6 django-crispy-forms==1.7.2 From 44f1a8228f628de5a1f21d3545b4c026ea4c4c64 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 23 May 2019 02:04:58 +0200 Subject: [PATCH 34/80] =?UTF-8?q?Galerie:=20Fix=20po=C5=99ad=C3=AD=20obr?= =?UTF-8?q?=C3=A1zk=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Django si původní řazení nepamatuje ani jako sekundární, bylo potřeba napsat explicitně. --- galerie/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/galerie/views.py b/galerie/views.py index f7ace3c8..807b6de4 100644 --- a/galerie/views.py +++ b/galerie/views.py @@ -38,7 +38,7 @@ def nahled(request, pk, soustredeni): if not request.user.is_staff: podgalerie = podgalerie.filter(zobrazit__lt=1) - obrazky = Obrazek.objects.filter(galerie = galerie).order_by('poradi') + obrazky = Obrazek.objects.filter(galerie = galerie).order_by('poradi', 'nazev') preview = zobrazit(galerie, request) sourozenci = [] @@ -82,7 +82,7 @@ def detail(request, pk, fotka, soustredeni): galerie = get_object_or_404(Galerie, pk=pk) preview = zobrazit(galerie, request) obrazek = get_object_or_404(Obrazek, pk=fotka) - obrazky = galerie.obrazek_set.all().order_by('poradi') + obrazky = galerie.obrazek_set.all().order_by('poradi', 'nazev') # vytvoreni a obslouzeni formulare if request.method == 'POST': From e39fe78391eda50ebe7ff60d9646ca789c396efd Mon Sep 17 00:00:00 2001 From: "Tomas \"Jethro\" Pokorny" Date: Thu, 25 Jul 2019 20:20:38 +0200 Subject: [PATCH 35/80] Upgradovana verze Djanga na aktualni. --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6aac48c9..74bcc531 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,7 @@ Unidecode==1.0.22 # Django and modules -Django==1.11.15 +Django==1.11.22 #django-bootstrap-sass django-mptt==0.9.1 django-reversion==2.0.13 From 37b06d6888f594f5a10a63b5a209a23f60f87126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= Date: Tue, 10 Sep 2019 15:12:22 +0200 Subject: [PATCH 36/80] =?UTF-8?q?=C3=9Aprava=20textu=20v=20zadani/aktualni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/zadani/AktualniZadani.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/templates/seminar/zadani/AktualniZadani.html b/seminar/templates/seminar/zadani/AktualniZadani.html index b611eee9..77f79db6 100644 --- a/seminar/templates/seminar/zadani/AktualniZadani.html +++ b/seminar/templates/seminar/zadani/AktualniZadani.html @@ -71,7 +71,7 @@ Téma {{problem.kod}}: {{problem.nazev}} {% empty %} - Aktuálně nejsou zadána žádná témata k řešení. + Zadání témat je zatím k dispozici pouze ve formátu PDF - viz aktuální číslo. {% endfor %} From 0d355539a36f028790639f03a826b82aef12fd11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= Date: Tue, 10 Sep 2019 15:34:59 +0200 Subject: [PATCH 37/80] =?UTF-8?q?druh=C3=A1=20=C3=BAprava=20textu=20v=20za?= =?UTF-8?q?dani/aktualni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/zadani/AktualniZadani.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/templates/seminar/zadani/AktualniZadani.html b/seminar/templates/seminar/zadani/AktualniZadani.html index 77f79db6..273633d2 100644 --- a/seminar/templates/seminar/zadani/AktualniZadani.html +++ b/seminar/templates/seminar/zadani/AktualniZadani.html @@ -71,7 +71,7 @@ Téma {{problem.kod}}: {{problem.nazev}} {% empty %} - Zadání témat je zatím k dispozici pouze ve formátu PDF - viz aktuální číslo. + Zadání témat je zatím k dispozici pouze ve formátu PDF - viz odkaz na aktuální číslo výše. {% endfor %} From 4828c980d1135663ab2f0cf6515df8fc5b1f3aff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= Date: Thu, 26 Sep 2019 14:24:44 +0200 Subject: [PATCH 38/80] =?UTF-8?q?opraven=20odkaz=20v=20textu=20o=20neaktu?= =?UTF-8?q?=C3=A1lnosti=20t=C3=A9mat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/zadani/Temata.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/templates/seminar/zadani/Temata.html b/seminar/templates/seminar/zadani/Temata.html index 26a88664..679deaee 100644 --- a/seminar/templates/seminar/zadani/Temata.html +++ b/seminar/templates/seminar/zadani/Temata.html @@ -18,7 +18,7 @@

- Pozor, tato stránka není aktuální! Aktualizovaný seznam všech čísel v PDF najdete zde. Za problémy se omlouváme. + Pozor, tato stránka není aktuální! Aktualizovaný seznam všech čísel v PDF najdete zde. Za problémy se omlouváme.

Témata jsou texty nejen z oblasti matematiky, fyziky a informatiky, které From 4a1fe6965c2cee897f67e033878589077852125c Mon Sep 17 00:00:00 2001 From: "Martin Z. (Zimamazim)" Date: Thu, 26 Sep 2019 20:51:05 +0200 Subject: [PATCH 39/80] =?UTF-8?q?P=C5=99id=C3=A1n=20text=20na=20Aktu=C3=A1?= =?UTF-8?q?ln=C3=AD=20t=C3=A9mata,=20=C5=BEe=20je=20najdou=20v=20PDF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seminar/zadani/AktualniZadani.html | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/seminar/templates/seminar/zadani/AktualniZadani.html b/seminar/templates/seminar/zadani/AktualniZadani.html index 273633d2..3c5bc1f1 100644 --- a/seminar/templates/seminar/zadani/AktualniZadani.html +++ b/seminar/templates/seminar/zadani/AktualniZadani.html @@ -35,27 +35,30 @@ {% if ac.pdf %} -

Aktuální číslo v PDF

+

Aktuální témata najdete v aktuálním čísle v PDF.

{% endif %} - {% for sada in jednorazove_problemy %} - {# podnadpisy, kdyz neni zakomentuje se nadpis #} - {% if not sada %}{% endif %} - {# publikace jednotlivych zadani #} - {% for problem in sada %} - {% for tag in problem.zamereni.names %} - - {% endfor %} + + {% if False %} + {% for sada in jednorazove_problemy %} + {# podnadpisy, kdyz neni zakomentuje se nadpis #} + {% if not sada %}{% endif %} + {# publikace jednotlivych zadani #} + {% for problem in sada %} + {% for tag in problem.zamereni.names %} + + {% endfor %} - {# TODO použít {{problem.kod_v_rocniku}} ? vrací 4.u1 místo 4.1 #} -

{{problem.cislo_zadani.cislo}}.{{problem.kod}} {{problem.nazev}} {{ problem.body_v_zavorce }}

- {% autoescape off %}{{problem.text_zadani}}{% endautoescape %} -
- {% endfor %} - {% empty %} - Aktuálně nejsou zadané žádné úlohy k řešení. - {% endfor %} + {# TODO použít {{problem.kod_v_rocniku}} ? vrací 4.u1 místo 4.1 #} +

{{problem.cislo_zadani.cislo}}.{{problem.kod}} {{problem.nazev}} {{ problem.body_v_zavorce }}

+ {% autoescape off %}{{problem.text_zadani}}{% endautoescape %} +
+ {% endfor %} + {% empty %} + Aktuálně nejsou zadané žádné úlohy k řešení. + {% endfor %} + {% endif %} {% if user.is_staff and not verejne%}{% endif %} {% else %} From 95b1e73f816a1c62588a08161fb68c76c5d54d2e Mon Sep 17 00:00:00 2001 From: "Martin Z. (Zimamazim)" Date: Thu, 26 Sep 2019 21:02:17 +0200 Subject: [PATCH 40/80] =?UTF-8?q?Upraven=20posledn=C3=AD=20commit,=20aby?= =?UTF-8?q?=20to=20fungovalo=20(text=20na=20aktu=C3=A1ln=C3=AD=20t=C3=A9ma?= =?UTF-8?q?ta)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/zadani/AktualniZadani.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/seminar/templates/seminar/zadani/AktualniZadani.html b/seminar/templates/seminar/zadani/AktualniZadani.html index 3c5bc1f1..626ba110 100644 --- a/seminar/templates/seminar/zadani/AktualniZadani.html +++ b/seminar/templates/seminar/zadani/AktualniZadani.html @@ -74,7 +74,11 @@ Téma {{problem.kod}}: {{problem.nazev}} {% empty %} - Zadání témat je zatím k dispozici pouze ve formátu PDF - viz odkaz na aktuální číslo výše. + {% if ac.pdf %} +

Aktuální témata najdete v aktuálním čísle v PDF.

+ {% else %} +

Aktuálně nemáme žádná témata.

+ {% endif %} {% endfor %} From 733beb588eae3558d7b32bd902c9c5b5700977d0 Mon Sep 17 00:00:00 2001 From: "Martin Z. (Zimamazim)" Date: Thu, 26 Sep 2019 21:17:12 +0200 Subject: [PATCH 41/80] Dalsi pokus (text v Aktualnich tematech) --- seminar/templates/seminar/zadani/AktualniZadani.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/seminar/templates/seminar/zadani/AktualniZadani.html b/seminar/templates/seminar/zadani/AktualniZadani.html index 626ba110..93fac9a4 100644 --- a/seminar/templates/seminar/zadani/AktualniZadani.html +++ b/seminar/templates/seminar/zadani/AktualniZadani.html @@ -35,7 +35,7 @@ {% if ac.pdf %} -

Aktuální témata najdete v aktuálním čísle v PDF.

+

Aktuální témata najdete v aktuálním čísle v PDF.

{% endif %} {% if False %} @@ -66,6 +66,7 @@ {% endif %} + {% if False %}

Témata

    {% for problem in temata %} @@ -81,6 +82,7 @@ {% endif %} {% endfor %}
+ {% endif %} {% endwith %} From de2b9de120f2aaf3d9515b026bc1f7f40643c0fb Mon Sep 17 00:00:00 2001 From: "Martin Z. (Zimamazim)" Date: Thu, 26 Sep 2019 21:34:06 +0200 Subject: [PATCH 42/80] =?UTF-8?q?Odebr=C3=A1n=20ne=C3=BApln=C3=BD=20seznam?= =?UTF-8?q?=20t=C3=A9m=C3=A1tek,=20kter=C3=A1=20jsou=20stejn=C4=9B=20jenom?= =?UTF-8?q?=20nadpisy.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/zadani/Temata.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/seminar/templates/seminar/zadani/Temata.html b/seminar/templates/seminar/zadani/Temata.html index 679deaee..9b4e0156 100644 --- a/seminar/templates/seminar/zadani/Temata.html +++ b/seminar/templates/seminar/zadani/Temata.html @@ -29,6 +29,7 @@

Jak řešit téma?

+ {% endwith %} From 9cd49ff7ba5c8aa1df863f37b3df3ddb5b848289 Mon Sep 17 00:00:00 2001 From: "Martin Z. (Zimamazim)" Date: Thu, 26 Sep 2019 21:45:36 +0200 Subject: [PATCH 43/80] =?UTF-8?q?Upraven=20Makefile,=20aby=20=C5=A1el=20pu?= =?UTF-8?q?stit=20"make=20deploy=5Ftest"=20i=20p=C5=99es=20symlinky.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 51bbdfad..1df825e4 100644 --- a/Makefile +++ b/Makefile @@ -64,7 +64,7 @@ schema_all.pdf: # Deploy to current *mamweb-test* directory deploy_test: @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - @if [ `pwd` != "/akce/mam/www/mamweb-test" ]; then echo "Only possible in /akce/mam/www/mamweb-test"; exit 1; fi + @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in directory mamweb-test"; exit 1; fi @echo "Installing version from origin/test ..." git pull origin test git clean -f From 5de321788c1eb630cfb8ffb1e5aea68980dfa673 Mon Sep 17 00:00:00 2001 From: "Martin Z. (Zimamazim)" Date: Thu, 26 Sep 2019 21:53:28 +0200 Subject: [PATCH 44/80] =?UTF-8?q?Upraven=20Makefile,=20aby=20=C5=A1el=20pu?= =?UTF-8?q?stit=20"make=20deploy=5Fprod"=20i=20p=C5=99es=20symlinky.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 1df825e4..11852922 100644 --- a/Makefile +++ b/Makefile @@ -80,7 +80,7 @@ deploy_test: # Deploy to current *mamweb-prod* directory deploy_prod: @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - @if [ `pwd` != "/akce/mam/www/mamweb-prod" ]; then echo "Only possible in /akce/mam/www/mamweb-prod"; exit 1; fi + @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-prod" ]; then echo "Only possible in directory mamweb-prod"; exit 1; fi @echo "Backing up production DB ..." ( cd .. && ./backup_prod_db.sh ) @echo "Installing version from origin/master ..." From b3221eab65f91cfe0169ea9b1f4d183830fda62f Mon Sep 17 00:00:00 2001 From: "Martin Z. (Zimamazim)" Date: Thu, 26 Sep 2019 22:01:04 +0200 Subject: [PATCH 45/80] =?UTF-8?q?Upraven=20"deploy=5Fprod"=20v=20Makefile,?= =?UTF-8?q?=20aby=20v=20n=C4=9Bm=20fungovalo=20"cd=20.."=20odkudkoliv.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 11852922..c34c0a0e 100644 --- a/Makefile +++ b/Makefile @@ -82,7 +82,7 @@ deploy_prod: @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-prod" ]; then echo "Only possible in directory mamweb-prod"; exit 1; fi @echo "Backing up production DB ..." - ( cd .. && ./backup_prod_db.sh ) + ( cd -P .. && ./backup_prod_db.sh ) @echo "Installing version from origin/master ..." git pull origin master git clean -f From 5efed702be5f6b418014f717964c4e64dea31425 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Sun, 29 Sep 2019 00:37:34 +0200 Subject: [PATCH 46/80] =?UTF-8?q?Makefile:=20sync=5Ftest=20je=20v=C3=ADc?= =?UTF-8?q?=20user-friendly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pavel --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c34c0a0e..33e1f229 100644 --- a/Makefile +++ b/Makefile @@ -99,7 +99,7 @@ deploy_prod: # Sync test media directory with production sync_test_media: @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - @if [ `pwd` != "/akce/mam/www/mamweb-test" ]; then echo "Only possible in /akce/mam/www/mamweb-test"; exit 1; fi + @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in /akce/mam/www/mamweb-test"; exit 1; fi rsync -av --delete /akce/mam/www/mamweb-prod/media/ ./media # Sync test database with production database From 380e4f1e8244785e67755c2b4ef5cf793e0d21c9 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Tue, 15 Oct 2019 22:41:29 +0200 Subject: [PATCH 47/80] Makefile: chceme bugfixy 1.11 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 74bcc531..989f8380 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,7 @@ Unidecode==1.0.22 # Django and modules -Django==1.11.22 +Django<1.12 #django-bootstrap-sass django-mptt==0.9.1 django-reversion==2.0.13 From 5460884da546415a8406659ee9f8212127135a75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Domes?= Date: Wed, 13 Nov 2019 22:00:08 +0100 Subject: [PATCH 48/80] =?UTF-8?q?Zm=C4=9Bna=20obr=C3=A1zku=20li=C5=A1?= =?UTF-8?q?=C3=A1ka=20na=20ob=C3=A1lk=C3=A1ch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/static/seminar/lisak.eps | 1603 ------------------- seminar/static/seminar/lisak.pdf | Bin 0 -> 1959 bytes seminar/templates/seminar/archiv/obalky.tex | 3 +- seminar/views.py | 2 +- 4 files changed, 3 insertions(+), 1605 deletions(-) delete mode 100644 seminar/static/seminar/lisak.eps create mode 100644 seminar/static/seminar/lisak.pdf diff --git a/seminar/static/seminar/lisak.eps b/seminar/static/seminar/lisak.eps deleted file mode 100644 index 3a136212..00000000 --- a/seminar/static/seminar/lisak.eps +++ /dev/null @@ -1,1603 +0,0 @@ -%%BeginDocument: ./Eps/lisak.eps -%!PS-Adobe-3.0 EPSF-3.0 -%%BoundingBox: -191 -97 769 946 -%%Creator: CorelDRAW 8 -%%Title: L:\Prace\MaM\Obrazky\Lisak.eps -%%CreationDate: Tue May 11 17:28:49 1999 -%%For: Halef -%%DocumentProcessColors: Black -%%DocumentSuppliedResources: (atend) -%%EndComments -%%BeginProlog -/AutoFlatness false def -/AutoSteps 0 def -/CMYKMarks true def -/UseLevel 1 def -%Color profile: PROFILES.CCM - Obecn profil tiskrny CMYK - d. -%%BeginResource: procset wCorel8Dict 8.0 0 -/wCorel8Dict 300 dict def wCorel8Dict begin -% Copyright (c)1992-97 Corel Corporation -% All rights reserved. v8.0 r0.7 -/bd{bind def}bind def/ld{load def}bd/xd{exch def}bd/_ null def/rp{{pop}repeat} -bd/@cp/closepath ld/@gs/gsave ld/@gr/grestore ld/@np/newpath ld/Tl/translate ld -/$sv 0 def/@sv{/$sv save def}bd/@rs{$sv restore}bd/spg/showpage ld/showpage{} -bd currentscreen/@dsp xd/$dsp/@dsp def/$dsa xd/$dsf xd/$sdf false def/$SDF -false def/$Scra 0 def/SetScr/setscreen ld/setscreen{pop pop pop}bd/@ss{2 index -0 eq{$dsf 3 1 roll 4 -1 roll pop}if exch $Scra add exch load SetScr}bd -/SepMode_5 where{pop}{/SepMode_5 0 def}ifelse/CurrentInkName_5 where{pop} -{/CurrentInkName_5(Composite)def}ifelse/$ink_5 where{pop}{/$ink_5 -1 def} -ifelse/$c 0 def/$m 0 def/$y 0 def/$k 0 def/$t 1 def/$n _ def/$o 0 def/$fil 0 -def/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1 def/$N _ def/$O 0 def/$PF false -def/s1c 0 def/s1m 0 def/s1y 0 def/s1k 0 def/s1t 0 def/s1n _ def/$bkg false def -/SK 0 def/SM 0 def/SY 0 def/SC 0 def/$op false def matrix currentmatrix/$ctm xd -/$ptm matrix def/$ttm matrix def/$stm matrix def/$ffpnt true def -/CorelDrawReencodeVect[16#0/grave 16#5/breve 16#6/dotaccent 16#8/ring -16#A/hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle -16#60/grave 16#7C/bar -16#82/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl -16#88/circumflex/perthousand/Scaron/guilsinglleft/OE -16#91/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash -16#98/tilde/trademark/scaron/guilsinglright/oe 16#9F/Ydieresis -16#A1/exclamdown/cent/sterling/currency/yen/brokenbar/section -16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/minus/registered/macron -16#b0/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered -16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown -16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla -16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis -16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply -16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls -16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla -16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis -16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide -16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def -/L2?/languagelevel where{pop languagelevel 2 ge}{false}ifelse def -/@BeginSysCorelDict{systemdict/Corel30Dict known{systemdict/Corel30Dict get -exec}if systemdict/CorelLexDict known{1 systemdict/CorelLexDict get exec}if}bd -/@EndSysCorelDict{systemdict/Corel30Dict known{end}if/EndCorelLexDict where -{pop EndCorelLexDict}if}bd AutoFlatness{/@ifl{dup currentflat exch sub 10 gt{ -([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n)print flush -@np exit}{currentflat 2 add setflat}ifelse}bd/@fill/fill ld/fill{currentflat{ -{@fill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@eofill/eofill ld/eofill -{currentflat{{@eofill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@clip -/clip ld/clip{currentflat{{@clip}stopped{@ifl}{exit}ifelse}bind loop setflat} -bd/@eoclip/eoclip ld/eoclip{currentflat{{@eoclip}stopped{@ifl}{exit}ifelse} -bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke}stopped -{@ifl}{exit}ifelse}bind loop setflat}bd}if L2?{/@ssa{true setstrokeadjust}bd}{ -/@ssa{}bd}ifelse/d/setdash ld/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit -ld/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd/W/eoclip ld/c/curveto ld/C/c ld/l -/lineto ld/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld/N/newpath ld/P{11 rp} -bd/u{}bd/U{}bd/A{pop}bd/q/@gs ld/Q/@gr ld/&{}bd/@j{@sv @np}bd/@J{@rs}bd/g{1 -exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def}bd/G{1 -sub neg/$K xd _ 1 0 0 0/$C xd/$M xd/$Y xd/$T xd/$N xd}bd/k{1 index type -/stringtype eq{/$t xd/$n xd}{/$t 0 def/$n _ def}ifelse/$k xd/$y xd/$m xd/$c xd -/$fil 0 def}bd/K{1 index type/stringtype eq{/$T xd/$N xd}{/$T 0 def/$N _ def} -ifelse/$K xd/$Y xd/$M xd/$C xd}bd/x/k ld/X/K ld/sf{1 index type/stringtype eq{ -/s1t xd/s1n xd}{/s1t 0 def/s1n _ def}ifelse/s1k xd/s1y xd/s1m xd/s1c xd}bd/i{ -dup 0 ne{setflat}{pop}ifelse}bd/v{4 -2 roll 2 copy 6 -2 roll c}bd/V/v ld/y{2 -copy c}bd/Y/y ld/@w{matrix rotate/$ptm xd matrix scale $ptm dup concatmatrix -/$ptm xd 1 eq{$ptm exch dup concatmatrix/$ptm xd}if 1 w}bd/@g{1 eq dup/$sdf xd -{/$scp xd/$sca xd/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd/$SCA xd/$SCF xd} -if}bd/@D{2 index 0 eq{$dsf 3 1 roll 4 -1 roll pop}if 3 copy exch $Scra add exch -load SetScr/$dsp xd/$dsa xd/$dsf xd}bd/$ngx{$SDF{$SCF SepMode_5 0 eq{$SCA} -{$dsa}ifelse $SCP @ss}if}bd/p{/$pm xd 7 rp/$pyf xd/$pxf xd/$pn xd/$fil 1 def} -bd/@MN{2 copy le{pop}{exch pop}ifelse}bd/@MX{2 copy ge{pop}{exch pop}ifelse}bd -/InRange{3 -1 roll @MN @MX}bd/@sqr{dup 0 rl dup 0 exch rl neg 0 rl @cp}bd -/currentscale{1 0 dtransform matrix defaultmatrix idtransform dup mul exch dup -mul add sqrt 0 1 dtransform matrix defaultmatrix idtransform dup mul exch dup -mul add sqrt}bd/@unscale{}bd/wDstChck{2 1 roll dup 3 -1 roll eq{1 add}if}bd -/@dot{dup mul exch dup mul add 1 exch sub}bd/@lin{exch pop abs 1 exch sub}bd -/cmyk2rgb{3{dup 5 -1 roll add 1 exch sub dup 0 lt{pop 0}if exch}repeat pop}bd -/rgb2cmyk{3{1 exch sub 3 1 roll}repeat 3 copy @MN @MN 3{dup 5 -1 roll sub neg -exch}repeat}bd/rgb2g{2 index .299 mul 2 index .587 mul add 1 index .114 mul add -4 1 roll pop pop pop}bd/WaldoColor_5 where{pop}{/SetRgb/setrgbcolor ld/GetRgb -/currentrgbcolor ld/SetGry/setgray ld/GetGry/currentgray ld/SetRgb2 systemdict -/setrgbcolor get def/GetRgb2 systemdict/currentrgbcolor get def/SetHsb -systemdict/sethsbcolor get def/GetHsb systemdict/currenthsbcolor get def -/rgb2hsb{SetRgb2 GetHsb}bd/hsb2rgb{3 -1 roll dup floor sub 3 1 roll SetHsb -GetRgb2}bd/setcmykcolor where{pop/SetCmyk_5/setcmykcolor ld}{/SetCmyk_5{ -cmyk2rgb SetRgb}bd}ifelse/currentcmykcolor where{pop/GetCmyk/currentcmykcolor -ld}{/GetCmyk{GetRgb rgb2cmyk}bd}ifelse/setoverprint where{pop}{/setoverprint{ -/$op xd}bd}ifelse/currentoverprint where{pop}{/currentoverprint{$op}bd}ifelse -/@tc_5{5 -1 roll dup 1 ge{pop}{4{dup 6 -1 roll mul exch}repeat pop}ifelse}bd -/@trp{exch pop 5 1 roll @tc_5}bd/setprocesscolor_5{SepMode_5 0 eq{SetCmyk_5}{0 -4 $ink_5 sub index exch pop 5 1 roll pop pop pop pop SepsColor true eq{$ink_5 3 -gt{1 sub neg SetGry}{0 0 0 4 $ink_5 roll SetCmyk_5}ifelse}{1 sub neg SetGry} -ifelse}ifelse}bd/findcmykcustomcolor where{pop}{/findcmykcustomcolor{5 array -astore}bd}ifelse/setcustomcolor where{pop}{/setcustomcolor{exch aload pop -SepMode_5 0 eq{pop @tc_5 setprocesscolor_5}{CurrentInkName_5 eq{4 index}{0} -ifelse 6 1 roll 5 rp 1 sub neg SetGry}ifelse}bd}ifelse/@scc_5{dup type -/booleantype eq{setoverprint}{1 eq setoverprint}ifelse dup _ eq{pop -setprocesscolor_5 pop}{findcmykcustomcolor exch setcustomcolor}ifelse SepMode_5 -0 eq{true}{GetGry 1 eq currentoverprint and not}ifelse}bd/colorimage where{pop -/ColorImage{colorimage}def}{/ColorImage{/ncolors xd pop/dataaq xd{dataaq -ncolors dup 3 eq{/$dat xd 0 1 $dat length 3 div 1 sub{dup 3 mul $dat 1 index -get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div rgb2g -255 mul cvi exch pop $dat 3 1 roll put}for $dat 0 $dat length 3 idiv -getinterval pop}{4 eq{/$dat xd 0 1 $dat length 4 div 1 sub{dup 4 mul $dat 1 -index get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div -$dat 4 index 3 add get 255 div cmyk2rgb rgb2g 255 mul cvi exch pop $dat 3 1 -roll put}for $dat 0 $dat length ncolors idiv getinterval}if}ifelse}image}bd -}ifelse/setcmykcolor{1 5 1 roll _ currentoverprint @scc_5/$ffpnt xd}bd -/currentcmykcolor{0 0 0 0}bd/setrgbcolor{rgb2cmyk setcmykcolor}bd -/currentrgbcolor{currentcmykcolor cmyk2rgb}bd/sethsbcolor{hsb2rgb setrgbcolor} -bd/currenthsbcolor{currentrgbcolor rgb2hsb}bd/setgray{dup dup setrgbcolor}bd -/currentgray{currentrgbcolor rgb2g}bd/InsideDCS false def/IMAGE systemdict -/image get def/image{InsideDCS{IMAGE}{/EPSDict where{pop SepMode_5 0 eq{IMAGE} -{dup type/dicttype eq{dup/ImageType get 1 ne{IMAGE}{dup dup/BitsPerComponent -get 8 eq exch/BitsPerComponent get 1 eq or currentcolorspace 0 get/DeviceGray -eq and{CurrentInkName_5(Black)eq{IMAGE}{dup/DataSource get/TCC xd/Height get -abs{TCC pop}repeat}ifelse}{IMAGE}ifelse}ifelse}{2 index 1 ne{CurrentInkName_5 -(Black)eq{IMAGE}{/TCC xd pop pop exch pop abs{TCC pop}repeat}ifelse}{IMAGE} -ifelse}ifelse}ifelse}{IMAGE}ifelse}ifelse}bd}ifelse/WaldoColor_5 true def/@sft -{$tllx $pxf add dup $tllx gt{$pwid sub}if/$tx xd $tury $pyf sub dup $tury lt -{$phei add}if/$ty xd}bd/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd/@ep{{ -cvx exec}forall}bd/@tp{@sv/$in true def 2 copy dup $lly le{/$in false def}if -$phei sub $ury ge{/$in false def}if dup $urx ge{/$in false def}if $pwid add -$llx le{/$in false def}if $in{@np 2 copy m $pwid 0 rl 0 $phei neg rl $pwid neg -0 rl 0 $phei rl clip @np $pn cvlit load aload pop 7 -1 roll 5 index sub 7 -1 -roll 3 index sub Tl matrix currentmatrix/$ctm xd @ep pop pop pop pop}{pop pop -}ifelse @rs}bd/@th{@sft 0 1 $tly 1 sub{dup $psx mul $tx add{dup $llx gt{$pwid -sub}{exit}ifelse}loop exch $phei mul $ty exch sub 0 1 $tlx 1 sub{$pwid mul 3 -copy 3 -1 roll add exch @tp pop}for pop pop}for}bd/@tv{@sft 0 1 $tlx 1 sub{dup -$pwid mul $tx add exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit} -ifelse}loop 0 1 $tly 1 sub{$phei mul 3 copy sub @tp pop}for pop pop}for}bd/$fm -0 def/wfill{1 $fm eq{fill}{eofill}ifelse}bd/wclip{1 $fm eq{clip}{eoclip}ifelse -}bd/@pf{@gs $ctm setmatrix $pm concat @stb wclip @sv Bburx Bbury $pm itransform -/$tury xd/$turx xd Bbllx Bblly $pm itransform/$tlly xd/$tllx xd newpath $tllx -$tlly m $tllx $tury l $turx $tury l $turx $tlly l $tllx $tlly m @cp pathbbox -@rs/$tury xd/$turx xd/$tlly xd/$tllx xd/$wid $turx $tllx sub def/$hei $tury -$tlly sub def @gs $vectpat{1 0 0 0 0 _ $o @scc_5{wfill}if}{$t $c $m $y $k $n $o -@scc_5{SepMode_5 0 eq $pfrg or{$tllx $tlly Tl $wid $hei scale <00> 8 1 false[8 -0 0 1 0 0]{}imagemask}{/$bkg true def}ifelse}if}ifelse @gr $wid 0 gt $hei 0 gt -and{$pn cvlit load aload pop/$pd xd 3 -1 roll sub/$phei xd exch sub/$pwid xd -$wid $pwid div ceiling 1 add/$tlx xd $hei $phei div ceiling 1 add/$tly xd $psx -0 eq{@tv}{@th}ifelse}if @gr @np/$bkg false def}bd/@Pf{@sv SepMode_5 0 eq $Psc 0 -ne or $ink_5 3 eq or{0 J 0 j[]0 d $t $c $m $y $k $n $o @scc_5 pop $ctm -setmatrix 72 1000 div dup matrix scale dup concat dup Bburx exch Bbury exch -itransform ceiling cvi/Bbury xd ceiling cvi/Bburx xd Bbllx exch Bblly exch -itransform floor cvi/Bblly xd floor cvi/Bbllx xd $Prm aload pop $Psn load exec -}{1 SetGry wfill}ifelse @rs @np}bd/F{matrix currentmatrix $sdf{$scf $sca $scp -@ss}if $fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3 eq{@Pf}{$t $c $m $y $k $n $o @scc_5 -{wfill}{@np}ifelse}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if setmatrix} -bd/f{@cp F}bd/S{matrix currentmatrix $ctm setmatrix $SDF{$SCF $SCA $SCP @ss}if -$T $C $M $Y $K $N $O @scc_5{matrix currentmatrix $ptm concat stroke setmatrix} -{@np}ifelse $SDF{$dsf $dsa $dsp @ss}if setmatrix}bd/s{@cp S}bd/B{@gs F @gr S} -bd/b{@cp B}bd/_E{5 array astore exch cvlit xd}bd/@cc{currentfile $dat -readhexstring pop}bd/@sm{/$ctm $ctm currentmatrix def}bd/@E{/Bbury xd/Bburx xd -/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{/$fil 1 def 1 eq dup/$vectpat xd{/$pfrg true -def}{@gs $t $c $m $y $k $n $o @scc_5/$pfrg xd @gr}ifelse/$pm xd/$psy xd/$psx xd -/$pyf xd/$pxf xd/$pn xd}bd/@P{/$fil 3 def/$Psn xd/$Psc xd array astore/$Prm xd -}bd/@ii{concat 3 index 3 index m 3 index 1 index l 2 copy l 1 index 3 index l 3 -index 3 index l clip pop pop pop pop}bd/tcc{@cc}def/@i{@sm @gs @ii 6 index 1 ne -{/$frg true def pop pop}{1 eq{s1t s1c s1m s1y s1k s1n $O @scc_5/$frg xd}{/$frg -false def}ifelse 1 eq{@gs $ctm setmatrix F @gr}if}ifelse @np/$ury xd/$urx xd -/$lly xd/$llx xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8 div ceiling cvi -string def $bkg $frg or{$SDF{$SCF $SCA $SCP @ss}if $llx $lly Tl $urx $llx sub -$ury $lly sub scale $bkg{$t $c $m $y $k $n $o @scc_5 pop}if $wid $hei abs $bts -1 eq{$bkg}{$bts}ifelse[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]/tcc load -$bts 1 eq{imagemask}{image}ifelse $SDF{$dsf $dsa $dsp @ss}if}{$hei abs{tcc pop} -repeat}ifelse @gr $ctm setmatrix}bd/@I{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd -/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div -ceiling cvi string def $ngx $llx $lly Tl $urx $llx sub $ury $lly sub scale $wid -$hei abs $bts[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]/@cc load false $ncl -ColorImage $SDF{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd/COMP 0 def -/MaskedImage false def L2?{/@I_2{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx -xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling -cvi string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq{/DeviceRGB}{/DeviceCMYK} -ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub $ury $lly sub scale 8 -dict begin/ImageType 1 def/Width $wid def/Height $hei abs def/BitsPerComponent -$bts def/Decode $ncl 1 eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]} -ifelse}ifelse def/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def -/DataSource currentfile/ASCII85Decode filter COMP 1 eq{/DCTDecode filter}{COMP -2 eq{/RunLengthDecode filter}if}ifelse def currentdict end image $SDF{$dsf $dsa -$dsp @ss}if @gr $ctm setmatrix}bd}{/@I_2{}bd}ifelse/@I_3{@sm @gs @ii @np/$ury -xd/$urx xd/$lly xd/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul -$ncl mul 8 div ceiling cvi string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq -{/DeviceRGB}{/DeviceCMYK}ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub -$ury $lly sub scale/ImageDataDict 8 dict def ImageDataDict begin/ImageType 1 -def/Width $wid def/Height $hei abs def/BitsPerComponent $bts def/Decode $ncl 1 -eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}ifelse}ifelse def -/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def/DataSource -currentfile/ASCII85Decode filter COMP 1 eq{/DCTDecode filter}{COMP 2 eq{ -/RunLengthDecode filter}if}ifelse def end/MaskedImageDict 7 dict def -MaskedImageDict begin/ImageType 3 def/InterleaveType 3 def/MaskDict -ImageMaskDict def/DataDict ImageDataDict def end MaskedImageDict image $SDF -{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd/@SetMask{/$mbts xd/$mhei xd/$mwid -xd/ImageMaskDict 8 dict def ImageMaskDict begin/ImageType 1 def/Width $mwid def -/Height $mhei abs def/BitsPerComponent $mbts def/DataSource maskstream def -/ImageMatrix[$mwid 0 0 $mhei neg 0 $mhei 0 gt{$mhei}{0}ifelse]def/Decode[1 0] -def end}bd/@B{@gs S @gr F}bd/@b{@cp @B}bd/@sep{CurrentInkName_5(Composite)eq -{/$ink_5 -1 def}{CurrentInkName_5(Cyan)eq{/$ink_5 0 def}{CurrentInkName_5 -(Magenta)eq{/$ink_5 1 def}{CurrentInkName_5(Yellow)eq{/$ink_5 2 def}{ -CurrentInkName_5(Black)eq{/$ink_5 3 def}{/$ink_5 4 def}ifelse}ifelse}ifelse} -ifelse}ifelse}bd/@whi{@gs -72000 dup m -72000 72000 l 72000 dup l 72000 -72000 -l @cp 1 SetGry fill @gr}bd/@neg{[{1 exch sub}/exec cvx currenttransfer/exec -cvx]cvx settransfer @whi}bd/deflevel 0 def/@sax{/deflevel deflevel 1 add def} -bd/@eax{/deflevel deflevel dup 0 gt{1 sub}if def deflevel 0 gt{/eax load}{eax} -ifelse}bd/eax{{exec}forall}bd/@rax{deflevel 0 eq{@rs @sv}if}bd/@daq{dup type -/arraytype eq{{}forall}if}bd/@BMP{/@cc xd UseLevel 3 eq MaskedImage true eq and -{7 -2 roll pop pop @I_3}{12 index 1 gt UseLevel 2 eq UseLevel 3 eq or and{7 -2 -roll pop pop @I_2}{11 index 1 eq{12 -1 roll pop @i}{7 -2 roll pop pop @I} -ifelse}ifelse}ifelse}bd systemdict/pdfmark known not{/pdfmark/cleartomark ld} -if -end -%%EndResource -%%EndProlog -%%BeginSetup -wCorel8Dict begin -@BeginSysCorelDict -2.6131 setmiterlimit -1.00 setflat -/$fst 128 def -%%EndSetup - -%%Page: 1 1 -%LogicalPage: 1 -%%BeginPageSetup -@sv -@sm -@sv -%%EndPageSetup -@rax %Note: Object -482.82180 -96.51912 768.51780 183.48888 @E - 1 O 0 @g -0.00 0.00 0.00 1.00 k -/$fm 0 def -614.79780 -96.51912 m -610.54980 -96.23112 606.30180 -96.01512 602.05380 -95.79912 C -594.49380 -90.75912 581.53380 -79.52712 580.23780 -71.31912 C -573.54180 -72.90312 569.86980 -76.71912 564.46980 -80.75112 C -552.15780 -82.69512 539.12580 -86.94312 527.60580 -86.36712 C -523.57380 -78.30312 530.26980 -71.10312 536.96580 -68.29512 C -538.76580 -62.10312 543.30180 -61.16712 548.62980 -57.71112 C -548.05380 -50.00712 537.32580 -44.82312 535.88580 -36.61512 C -535.38180 -36.61512 534.87780 -36.61512 534.37380 -36.61512 C -532.50180 -26.82312 531.70980 -26.10312 531.34980 -23.79912 C -533.65380 -22.64712 533.65380 -22.64712 534.37380 -20.77512 C -547.33380 -17.96712 552.58980 -17.03112 564.82980 -26.10312 C -565.04580 -28.04712 576.56580 -35.39112 580.23780 -35.89512 C -582.54180 -11.48712 580.59780 7.59288 565.98180 27.10488 C -565.18980 27.24888 564.39780 27.39288 563.67780 27.46488 C -562.23780 18.17688 557.84580 10.32888 552.01380 2.55288 C -540.92580 -2.05512 538.54980 13.64088 536.60580 19.90488 C -535.81380 19.90488 535.09380 19.90488 534.37380 19.90488 C -529.40580 9.89688 520.69380 -0.83112 508.81380 -0.83112 C -494.26980 8.88888 501.90180 18.60888 506.94180 32.00088 C -510.03780 38.04888 513.13380 44.09688 516.30180 50.07288 C -502.62180 47.69688 487.28580 43.37688 482.82180 60.58488 C -482.82180 75.92088 495.99780 80.81688 508.81380 83.62488 C -509.17380 86.21688 509.17380 86.21688 507.66180 90.03288 C -511.62180 108.96888 509.53380 106.66488 525.73380 108.82488 C -525.80580 109.83288 525.94980 110.84088 526.09380 111.84888 C -531.06180 111.56088 536.31780 105.94488 538.11780 100.54488 C -543.08580 102.27288 544.45380 108.17688 546.75780 112.64088 C -552.80580 120.12888 556.18980 122.79288 556.90980 124.66488 C -559.21380 123.58488 559.21380 123.58488 561.80580 123.94488 C -562.16580 125.09688 562.52580 126.24888 562.95780 127.32888 C -566.34180 126.68088 572.67780 117.10488 574.54980 113.36088 C -574.54980 105.87288 573.68580 99.60888 571.95780 91.54488 C -577.50180 91.83288 580.09380 94.92888 587.00580 94.92888 C -589.95780 92.91288 592.98180 90.89688 596.00580 88.88088 C -606.15780 73.32888 587.65380 57.34488 575.70180 48.20088 C -568.93380 45.17688 568.93380 45.17688 565.54980 42.51288 C -565.40580 41.28888 565.26180 40.06488 565.18980 38.76888 C -565.69380 38.76888 566.19780 38.76888 566.70180 38.76888 C -575.12580 25.16088 585.85380 9.10488 587.72580 -7.95912 C -592.83780 -6.08712 598.74180 27.75288 600.90180 34.23288 C -603.99780 38.76888 605.72580 44.45688 606.87780 49.28088 C -618.97380 73.40088 624.94980 83.19288 625.30980 85.49688 C -605.86980 84.77688 614.79780 105.15288 618.18180 116.38488 C -622.42980 122.72088 625.74180 126.39288 631.35780 131.14488 C -631.21380 151.08888 626.38980 166.28088 648.63780 171.39288 C -648.34980 172.40088 648.13380 173.40888 647.91780 174.41688 C -658.42980 174.05688 660.15780 170.45688 661.45380 158.57688 C -667.93380 160.16088 680.46180 184.42488 687.01380 177.87288 C -688.74180 178.37688 690.46980 178.88088 692.26980 179.38488 C -692.62980 181.25688 692.62980 181.25688 691.47780 183.48888 C -700.90980 182.98488 702.42180 175.13688 702.42180 166.13688 C -697.09380 155.62488 697.09380 155.62488 696.73380 153.32088 C -709.47780 152.88888 712.14180 142.30488 712.14180 129.99288 C -706.95780 120.63288 695.50980 108.96888 684.70980 106.95288 C -681.90180 104.57688 680.74980 103.35288 677.22180 102.84888 C -677.72580 90.24888 664.33380 71.67288 652.38180 67.06488 C -639.49380 70.16088 648.34980 87.36888 644.17380 94.92888 C -643.38180 95.07288 642.58980 95.21688 641.86980 95.28888 C -641.14980 93.41688 637.76580 90.75288 625.66980 72.68088 C -611.91780 47.40888 601.26180 22.64088 597.51780 -6.44712 C -612.63780 -1.04712 612.49380 24.29688 632.07780 22.92888 C -632.07780 22.42488 632.07780 21.92088 632.07780 21.41688 C -632.58180 21.41688 633.08580 21.41688 633.58980 21.41688 C -635.10180 12.99288 632.29380 6.72888 629.84580 -1.98312 C -638.62980 3.99288 643.23780 15.36888 654.68580 18.03288 C -660.01380 23.64888 665.41380 25.95288 672.32580 29.69688 C -673.26180 48.12888 680.02980 58.78488 697.09380 66.63288 C -695.43780 84.92088 694.28580 92.19288 710.26980 103.20888 C -714.08580 103.20888 714.80580 102.48888 721.21380 102.84888 C -721.71780 103.85688 722.22180 104.86488 722.72580 105.87288 C -723.58980 106.01688 724.45380 106.16088 725.31780 106.23288 C -729.06180 102.48888 731.94180 99.75288 732.87780 93.05688 C -740.29380 95.21688 745.04580 103.20888 753.90180 103.20888 C -754.69380 102.48888 754.69380 102.48888 757.64580 102.48888 C -762.03780 106.88088 763.98180 104.50488 768.51780 100.54488 C -767.65380 91.25688 763.33380 83.84088 757.64580 76.06488 C -753.32580 75.05688 749.07780 67.13688 747.92580 62.88888 C -749.36580 62.67288 750.87780 62.38488 752.38980 62.09688 C -754.47780 57.05688 758.79780 53.60088 758.79780 46.25688 C -751.30980 29.62488 738.06180 20.26488 720.06180 20.26488 C -715.45380 15.00888 703.64580 1.47288 695.65380 6.36888 C -691.11780 13.13688 694.57380 20.84088 695.29380 27.46488 C -675.78180 25.01688 656.34180 16.16088 642.66180 2.19288 C -640.35780 -1.55112 638.48580 -2.70312 638.12580 -5.00712 C -643.38180 -5.36712 643.38180 -5.36712 645.25380 -6.44712 C -645.25380 -20.84712 643.74180 -31.14312 637.76580 -44.89512 C -636.25380 -46.40712 636.25380 -46.40712 635.89380 -48.71112 C -648.99780 -49.07112 665.12580 -49.79112 678.73380 -51.73512 C -678.73380 -52.23912 678.73380 -52.74312 678.73380 -53.24712 C -663.39780 -63.61512 643.09380 -80.31912 623.86980 -81.11112 C -625.81380 -93.99912 627.97380 -95.00712 614.79780 -96.51912 C -@c -F - -@rax %Note: Object -587.00580 -92.77512 618.15345 -70.52712 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -613.28580 -92.77512 m -609.68580 -86.58312 600.61380 -91.40712 596.79780 -82.62312 C -596.29380 -82.62312 595.78980 -82.62312 595.28580 -82.62312 C -591.61380 -77.36712 589.16580 -75.85512 587.00580 -70.52712 C -594.49380 -70.88712 598.88580 -71.03112 603.92580 -78.08712 C -609.54180 -80.75112 609.54180 -80.75112 617.10180 -82.62312 C -618.39780 -87.15912 619.69380 -92.77512 613.28580 -92.77512 C -@c -F - -@rax %Note: Object -534.37380 -79.95912 573.46980 -64.09020 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -535.88580 -79.95912 m -535.38180 -79.81512 534.87780 -79.67112 534.37380 -79.59912 C -539.77380 -60.80712 558.34980 -63.54312 573.46980 -65.27112 C -567.13380 -78.01512 550.14180 -74.19912 539.62980 -78.44712 C -538.11780 -79.95912 538.11780 -79.95912 535.88580 -79.95912 C -@c -F - -@rax %Note: Object -612.20580 -75.42312 656.91780 -55.75946 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -620.05380 -75.42312 m -616.88580 -74.63112 612.63780 -68.79912 612.20580 -66.06312 C -630.34980 -54.75912 634.95780 -54.03912 656.91780 -57.71112 C -651.44580 -68.15112 631.64580 -75.42312 620.05380 -75.42312 C -@c -F - -@rax %Note: Object --104.09528 -70.16712 339.97380 514.40088 @E - 1 O 0 @g -0.00 0.00 0.00 1.00 k -/$fm 0 def -226.14180 -70.16712 m -220.81380 -64.83912 220.23780 -58.86312 212.60580 -56.99112 C -211.66980 -58.21512 210.80580 -59.43912 209.94180 -60.73512 C -201.08580 -61.02312 198.63780 -59.36712 198.63780 -50.94312 C -196.04580 -47.41512 195.90180 -47.19912 197.55780 -44.17512 C -195.54180 -44.17512 193.52580 -44.17512 191.50980 -44.17512 C -185.82180 -54.83112 185.96580 -59.22312 174.22980 -61.09512 C -169.18980 -57.71112 169.62180 -56.55912 168.61380 -51.73512 C -167.67780 -51.59112 166.81380 -51.44712 165.94980 -51.30312 C -153.34980 -67.43112 148.02180 -71.17512 140.38980 -51.73512 C -133.62180 -54.32712 133.62180 -54.32712 127.64580 -58.07112 C -116.48580 -58.07112 114.75780 -54.18312 114.10980 -44.89512 C -106.04580 -45.47112 99.63780 -55.19112 92.29380 -59.58312 C -89.26980 -59.58312 86.24580 -59.58312 83.29380 -59.58312 C -78.46980 -54.75912 78.32580 -52.81512 78.75780 -47.19912 C -72.06180 -48.49512 70.47780 -55.11912 62.19780 -55.11912 C -57.66180 -49.35912 58.38180 -47.05512 57.73380 -40.43112 C -53.91780 -41.51112 53.91780 -41.51112 47.94180 -44.53512 C -24.54180 -44.53512 29.36580 -27.11112 40.45380 -14.36712 C -48.66180 -9.83112 47.79780 -10.62312 56.94180 -10.62312 C -77.24580 9.68088 33.90180 36.53688 22.38180 45.17688 C -2.36580 55.18488 -17.72220 68.07288 -33.99420 82.11288 C --37.66620 83.91288 -45.44220 89.60088 -47.53020 90.03288 C --47.53020 90.53688 -47.53020 91.04088 -47.53020 91.54488 C --60.56220 102.63288 -68.84220 110.04888 -77.98620 122.43288 C --79.49820 126.96888 -82.52220 130.71288 -91.52220 146.55288 C --107.50620 182.40888 -113.69820 219.12888 -77.62620 243.46488 C --59.26620 249.65688 -50.26620 247.64088 -30.25020 244.90488 C --29.31420 243.96888 -8.21820 236.12088 -4.69020 235.47288 C --4.47420 234.89688 -4.25820 234.24888 -3.97020 233.60088 C -4.23780 232.23288 8.19780 227.40888 16.33380 224.96088 C -16.33380 224.45688 16.33380 223.95288 16.33380 223.44888 C -19.06980 221.93688 21.80580 220.42488 24.61380 218.91288 C -24.61380 218.40888 24.61380 217.90488 24.61380 217.40088 C -34.26180 213.44088 44.84580 189.68088 49.45380 178.95288 C -57.08580 182.84088 50.60580 193.78488 52.04580 201.56088 C -52.04580 207.82488 50.82180 221.00088 54.27780 226.47288 C -51.61380 269.67288 66.66180 315.53688 81.34980 355.35288 C -84.37380 359.09688 84.37380 359.09688 93.37380 377.96088 C -109.71780 400.35288 123.39780 430.23288 135.49380 454.85688 C -141.97380 473.57688 150.68580 493.88088 154.28580 512.88888 C -155.43780 514.04088 155.43780 514.04088 159.97380 514.40088 C -154.71780 483.22488 139.81380 451.47288 126.13380 422.81688 C -125.62980 422.74488 125.12580 422.60088 124.62180 422.45688 C -120.37380 404.38488 103.74180 389.55288 97.90980 371.91288 C -95.10180 366.44088 92.36580 360.89688 89.62980 355.35288 C -85.74180 353.91288 78.18180 327.84888 76.88580 320.64888 C -67.23780 302.07288 65.14980 271.11288 61.04580 249.80088 C -61.04580 236.98488 58.81380 218.91288 58.09380 200.84088 C -60.32580 164.62488 60.32580 164.62488 60.32580 155.62488 C -58.74180 153.96888 56.79780 151.88088 54.70980 151.44888 C -51.18180 157.92888 51.54180 163.25688 47.50980 168.44088 C -36.99780 191.04888 34.04580 195.51288 32.53380 199.32888 C -8.77380 229.06488 -34.28220 244.61688 -70.85820 238.92888 C --76.76220 236.55288 -83.81820 233.74488 -86.26620 227.19288 C --102.17820 211.28088 -97.06620 190.32888 -93.82620 169.95288 C --88.28220 156.12888 -74.09820 119.55288 -59.55420 113.36088 C --56.60220 108.10488 -39.97020 91.18488 -32.48220 90.03288 C --32.48220 89.52888 -32.48220 89.02488 -32.48220 88.52088 C --29.38620 86.79288 -26.29020 84.99288 -23.12220 83.19288 C --23.05020 82.76088 -22.90620 82.25688 -22.76220 81.75288 C --12.17820 77.00088 -1.16220 63.75288 10.35780 61.01688 C -12.51780 58.85688 23.53380 52.52088 27.63780 51.58488 C -30.73380 43.16088 45.27780 42.15288 49.45380 32.72088 C -57.15780 29.98488 64.71780 19.11288 67.81380 10.83288 C -67.81380 2.33688 69.61380 -5.36712 63.70980 -12.85512 C -51.18180 -16.23912 38.50980 -18.90312 38.50980 -34.38312 C -40.02180 -35.89512 40.02180 -35.89512 40.45380 -37.40712 C -44.70180 -36.75912 48.94980 -36.11112 53.19780 -35.46312 C -55.71780 -31.14312 61.33380 -27.83112 66.37380 -28.33512 C -66.37380 -34.31112 64.93380 -40.14312 65.22180 -47.19912 C -77.38980 -43.45512 72.70980 -30.92712 84.80580 -29.84712 C -85.23780 -36.90312 83.86980 -43.88712 85.52580 -51.73512 C -98.26980 -50.72712 104.67780 -40.64712 115.62180 -34.74312 C -119.43780 -25.23912 121.30980 -18.18312 132.90180 -16.31112 C -132.90180 -17.03112 132.90180 -17.75112 132.90180 -18.54312 C -145.64580 -14.65512 139.59780 -8.46312 143.77380 0.32088 C -143.77380 10.11288 143.77380 19.90488 143.77380 29.69688 C -140.89380 49.49688 138.66180 68.86488 134.77380 87.72888 C -134.77380 126.68088 107.70180 164.26488 107.70180 203.07288 C -106.18980 206.88888 103.16580 233.24088 102.44580 233.96088 C -96.32580 258.51288 101.07780 285.94488 102.44580 310.13688 C -103.16580 313.16088 104.67780 314.67288 105.10980 319.20888 C -106.69380 318.99288 108.27780 318.70488 109.93380 318.41688 C -107.70180 289.76088 107.70180 289.76088 106.90980 289.04088 C -106.90980 256.85688 110.65380 226.04088 114.46980 193.28088 C -117.99780 181.11288 123.18180 165.92088 124.98180 152.60088 C -132.97380 144.60888 141.75780 91.54488 143.77380 80.96088 C -145.28580 64.40088 146.79780 59.07288 150.54180 24.44088 C -150.25380 12.63288 150.03780 0.82488 149.82180 -10.98312 C -142.69380 -25.31112 131.67780 -18.75912 123.46980 -31.35912 C -122.31780 -36.47112 119.14980 -44.46312 122.38980 -49.79112 C -132.46980 -55.04712 136.21380 -39.35112 146.43780 -38.48712 C -146.94180 -45.25512 146.07780 -50.58312 150.18180 -56.55912 C -153.20580 -56.55912 153.20580 -56.55912 158.02980 -54.75912 C -161.05380 -47.91912 167.10180 -38.12712 169.76580 -32.43912 C -171.49380 -32.58312 173.22180 -32.72712 175.02180 -32.87112 C -175.38180 -47.19912 175.38180 -47.19912 176.53380 -52.09512 C -185.67780 -52.09512 184.38180 -46.40712 187.40580 -38.91912 C -188.91780 -21.71112 190.71780 -3.85512 184.38180 12.34488 C -183.22980 23.36088 182.43780 30.12888 184.02180 40.28088 C -183.51780 40.28088 183.01380 40.28088 182.50980 40.28088 C -182.07780 54.39288 183.30180 68.14488 184.38180 81.75288 C -180.13380 90.10488 179.41380 99.39288 177.97380 107.74488 C -177.46980 107.88888 176.96580 108.03288 176.53380 108.10488 C -175.38180 114.87288 176.10180 115.66488 175.02180 124.66488 C -165.66180 122.50488 166.02180 122.57688 163.35780 131.50488 C -163.35780 140.50488 164.07780 141.29688 164.79780 148.06488 C -164.07780 148.78488 164.79780 167.64888 164.07780 193.28088 C -163.06980 201.63288 162.06180 209.91288 161.05380 218.19288 C -155.72580 218.62488 156.51780 215.52888 151.33380 219.70488 C -145.57380 239.93688 152.98980 260.88888 153.92580 280.76088 C -151.69380 280.40088 149.46180 278.09688 147.94980 278.09688 C -138.22980 287.81688 162.34980 335.91288 163.71780 344.84088 C -157.59780 344.26488 152.19780 327.63288 146.79780 332.74488 C -146.79780 337.28088 148.30980 340.30488 149.02980 344.04888 C -154.21380 353.62488 179.55780 393.36888 177.97380 404.02488 C -177.18180 404.02488 176.46180 404.02488 175.74180 404.02488 C -172.50180 400.13688 170.77380 397.18488 165.94980 397.18488 C -161.48580 401.64888 168.97380 410.14488 171.56580 414.17688 C -179.26980 431.45688 190.14180 449.60088 194.17380 467.67288 C -198.34980 473.50488 197.91780 485.24088 205.04580 486.53688 C -205.90980 467.38488 189.92580 438.80088 181.35780 421.66488 C -178.83780 419.14488 179.19780 419.72088 178.76580 415.68888 C -181.71780 416.33688 184.74180 416.98488 187.76580 417.56088 C -188.48580 417.05688 189.20580 416.55288 189.99780 416.04888 C -191.29380 396.46488 165.15780 373.42488 160.69380 352.32888 C -165.30180 354.99288 168.03780 359.52888 173.50980 359.52888 C -175.02180 358.01688 175.02180 358.01688 175.38180 356.14488 C -166.45380 336.92088 159.68580 321.44088 155.43780 300.34488 C -160.90980 303.08088 156.58980 308.91288 165.58980 307.83288 C -165.58980 305.60088 165.58980 303.36888 165.58980 301.06488 C -159.75780 280.61688 156.73380 260.09688 156.22980 238.49688 C -158.60580 239.36088 158.53380 240.94488 159.18180 243.03288 C -161.41380 243.03288 163.64580 243.03288 165.94980 243.03288 C -167.53380 211.42488 170.62980 179.60088 171.99780 147.27288 C -172.57380 147.56088 173.22180 147.84888 173.86980 148.06488 C -175.38180 156.34488 175.38180 156.34488 177.97380 163.11288 C -179.70180 163.11288 181.50180 163.11288 183.30180 163.11288 C -183.44580 155.55288 183.22980 150.65688 181.35780 142.80888 C -182.14980 125.45688 182.86980 124.66488 182.50980 114.87288 C -183.01380 114.87288 183.51780 114.87288 184.02180 114.87288 C -183.58980 104.00088 184.02180 99.75288 188.55780 89.24088 C -194.53380 90.68088 208.35780 129.05688 211.45380 136.76088 C -212.17380 144.03288 211.81380 152.16888 219.73380 145.76088 C -220.30980 140.50488 220.95780 135.24888 221.60580 129.99288 C -222.46980 130.28088 223.33380 130.49688 224.19780 130.71288 C -227.22180 138.27288 230.24580 143.52888 236.22180 160.08888 C -240.54180 168.58488 241.83780 180.75288 248.31780 187.23288 C -248.17380 189.75288 248.02980 192.27288 247.95780 194.79288 C -251.70180 195.15288 251.70180 195.15288 254.72580 194.07288 C -257.02980 188.81688 259.40580 183.56088 261.78180 178.23288 C -262.42980 178.16088 263.07780 178.01688 263.72580 177.87288 C -270.13380 197.96088 269.34180 223.44888 269.34180 243.82488 C -270.85380 247.56888 270.85380 252.10488 272.00580 253.97688 C -279.99780 252.46488 282.73380 238.78488 284.74980 231.00888 C -286.62180 231.72888 286.62180 231.72888 287.41380 233.24088 C -288.34980 262.04088 284.53380 290.98488 285.90180 319.20888 C -287.41380 320.64888 287.41380 320.64888 289.28580 321.08088 C -292.52580 318.48888 296.05380 311.43288 300.51780 310.49688 C -301.95780 318.27288 294.10980 335.98488 291.87780 343.32888 C -288.85380 349.44888 278.77380 368.96088 282.08580 374.21688 C -287.12580 374.57688 290.29380 369.39288 294.90180 370.40088 C -292.66980 377.96088 292.66980 377.96088 289.64580 384.72888 C -280.64580 397.54488 267.10980 413.38488 266.74980 414.89688 C -246.51780 429.87288 232.18980 452.55288 221.24580 473.72088 C -218.22180 477.03288 215.19780 480.27288 212.17380 483.51288 C -210.66180 488.76888 210.66180 488.76888 209.22180 490.28088 C -211.09380 510.51288 215.34180 492.22488 219.73380 488.76888 C -221.10180 480.63288 230.31780 470.04888 233.98980 460.90488 C -249.03780 440.52888 249.03780 440.52888 258.03780 430.73688 C -260.98980 429.65688 276.03780 412.37688 276.46980 410.36088 C -276.97380 410.36088 277.47780 410.36088 277.98180 410.36088 C -277.98180 409.85688 277.98180 409.35288 277.98180 408.84888 C -278.48580 408.84888 278.98980 408.84888 279.49380 408.84888 C -279.56580 408.12888 279.70980 407.40888 279.85380 406.61688 C -290.94180 394.23288 299.29380 382.49688 303.54180 365.14488 C -304.04580 365.14488 304.54980 365.14488 305.05380 365.14488 C -307.21380 360.82488 305.41380 356.50488 300.51780 356.50488 C -297.78180 360.10488 295.26180 362.26488 291.51780 362.91288 C -295.04580 340.80888 308.43780 322.30488 308.43780 297.32088 C -307.93380 296.60088 307.42980 295.88088 306.92580 295.08888 C -306.06180 295.01688 305.19780 294.87288 304.33380 294.72888 C -300.15780 298.83288 297.13380 307.11288 292.30980 307.83288 C -291.87780 298.04088 294.18180 258.08088 294.18180 236.98488 C -293.82180 231.08088 295.76580 212.72088 287.77380 210.99288 C -285.10980 215.16888 285.10980 215.16888 283.23780 220.42488 C -283.81380 220.71288 284.46180 220.92888 285.10980 221.14488 C -284.96580 221.79288 284.82180 222.44088 284.74980 223.08888 C -279.20580 225.39288 278.91780 232.88088 277.98180 237.77688 C -277.18980 237.77688 276.46980 237.77688 275.74980 237.77688 C -274.95780 215.02488 274.38180 188.52888 268.54980 165.41688 C -265.88580 162.60888 265.59780 162.39288 262.21380 162.39288 C -261.78180 165.92088 261.42180 169.44888 261.06180 172.90488 C -255.37380 175.56888 255.80580 176.93688 253.93380 181.61688 C -252.92580 181.76088 251.91780 181.90488 250.90980 181.97688 C -241.54980 157.85688 233.91780 137.69688 230.24580 111.84888 C -224.41380 90.17688 215.55780 70.01688 207.70980 48.56088 C -204.68580 32.00088 204.68580 32.00088 198.63780 6.36888 C -198.34980 -8.96712 198.06180 -23.22312 199.42980 -38.91912 C -202.45380 -46.40712 202.45380 -46.40712 203.53380 -51.30312 C -204.75780 -51.30312 206.05380 -51.30312 207.34980 -51.30312 C -210.44580 -47.48712 209.86980 -46.40712 209.58180 -41.94312 C -212.67780 -39.99912 212.38980 -39.99912 216.70980 -40.43112 C -220.02180 -46.98312 220.45380 -54.18312 225.34980 -61.88712 C -226.42980 -61.74312 227.58180 -61.59912 228.73380 -61.52712 C -231.54180 -54.68712 230.46180 -45.90312 230.60580 -38.91912 C -239.53380 -41.51112 238.95780 -53.60712 247.16580 -53.60712 C -255.94980 -42.66312 244.14180 -32.29512 236.22180 -26.10312 C -229.30980 -11.55912 231.68580 13.49688 240.75780 25.16088 C -253.06980 55.32888 270.13380 81.17688 285.90180 108.82488 C -309.94980 168.44088 309.94980 168.44088 314.41380 181.97688 C -323.34180 215.45688 327.30180 248.64888 330.97380 282.27288 C -335.36580 286.23288 330.39780 325.25688 334.35780 332.38488 C -343.35780 332.38488 338.10180 314.16888 339.97380 306.39288 C -337.02180 261.89688 337.02180 261.89688 334.71780 245.26488 C -329.67780 231.72888 328.23780 216.46488 326.50980 201.56088 C -318.51780 172.68888 307.14180 144.53688 296.41380 116.38488 C -281.36580 88.52088 278.34180 84.70488 269.70180 67.78488 C -269.19780 67.71288 268.69380 67.56888 268.18980 67.42488 C -253.06980 37.47288 235.93380 15.65688 240.75780 -18.54312 C -245.22180 -24.23112 254.14980 -28.83912 256.16580 -37.40712 C -257.89380 -37.26312 259.62180 -37.11912 261.42180 -36.97512 C -264.94980 -41.15112 275.67780 -57.85512 284.38980 -56.19912 C -284.24580 -52.88712 284.10180 -49.64712 284.02980 -46.40712 C -289.57380 -47.41512 293.53380 -48.35112 294.54180 -55.47912 C -295.04580 -55.47912 295.54980 -55.47912 296.05380 -55.47912 C -293.74980 -61.59912 290.86980 -64.04712 285.54180 -68.65512 C -274.09380 -65.34312 266.67780 -52.81512 254.72580 -52.81512 C -250.18980 -60.66312 250.33380 -63.03912 241.18980 -60.73512 C -241.18980 -60.23112 241.18980 -59.72712 241.18980 -59.22312 C -239.67780 -58.71912 238.16580 -58.21512 236.65380 -57.71112 C -234.27780 -63.32712 233.34180 -70.16712 226.14180 -70.16712 C -@c -F - -@rax %Note: Object -298.07433 -67.14312 601.62180 853.66488 @E - 1 O 0 @g -0.00 0.00 0.00 1.00 k -/$fm 0 def -303.54180 -67.14312 m -302.02980 -66.63912 300.51780 -66.13512 299.07780 -65.63112 C -297.92580 -63.03912 297.92580 -63.03912 298.28580 -58.86312 C -300.01380 -58.86312 301.74180 -58.86312 303.54180 -58.86312 C -307.50180 -54.90312 306.70980 -44.53512 306.20580 -39.63912 C -311.10180 -39.27912 311.10180 -39.27912 314.05380 -40.43112 C -320.82180 -51.30312 322.69380 -52.45512 323.84580 -55.11912 C -327.30180 -54.97512 330.82980 -54.83112 334.35780 -54.75912 C -334.35780 -53.75112 334.35780 -52.74312 334.35780 -51.73512 C -334.86180 -51.73512 335.36580 -51.73512 335.86980 -51.73512 C -337.02180 -47.19912 337.02180 -47.19912 337.02180 -44.17512 C -327.80580 -25.67112 327.44580 -15.66312 330.25380 3.34488 C -332.34180 8.96088 337.16580 16.08888 338.17380 21.41688 C -338.74980 21.70488 339.32580 21.92088 339.97380 22.13688 C -346.38180 37.68888 373.66980 51.36888 389.29380 57.20088 C -406.57380 69.87288 430.47780 82.11288 444.51780 98.31288 C -454.38180 105.65688 464.31780 113.14488 470.43780 123.94488 C -483.39780 133.95288 486.99780 162.24888 488.86980 178.23288 C -482.38980 195.80088 481.30980 201.92088 463.66980 206.52888 C -442.64580 206.52888 442.64580 206.52888 441.92580 205.73688 C -427.74180 200.55288 413.19780 196.66488 399.80580 190.68888 C -390.22980 183.20088 380.72580 175.64088 371.22180 168.08088 C -364.52580 159.51288 354.22980 131.28888 347.89380 130.35288 C -345.30180 132.94488 346.23780 134.60088 346.02180 137.48088 C -354.87780 167.43288 364.52580 198.24888 369.34980 228.70488 C -381.44580 270.10488 388.86180 308.91288 390.37380 351.60888 C -388.86180 373.42488 388.86180 373.42488 384.39780 409.64088 C -383.60580 411.15288 382.88580 417.92088 381.37380 420.94488 C -380.58180 425.48088 379.86180 426.20088 373.81380 456.36888 C -370.86180 464.64888 364.81380 475.95288 358.83780 489.56088 C -357.03780 501.72888 349.69380 514.11288 345.66180 524.98488 C -344.65380 524.98488 343.64580 524.98488 342.63780 524.98488 C -342.27780 528.00888 340.76580 529.52088 339.25380 533.26488 C -338.60580 536.79288 337.95780 540.32088 337.38180 543.84888 C -336.87780 543.84888 336.37380 543.84888 335.86980 543.84888 C -332.77380 559.97688 327.80580 575.81688 324.99780 591.29688 C -321.32580 630.10488 322.76580 667.40088 323.48580 705.92088 C -327.94980 740.55288 327.94980 740.55288 329.46180 744.36888 C -331.33380 745.16088 333.20580 745.88088 335.14980 746.60088 C -336.44580 742.85688 334.28580 731.98488 332.48580 728.52888 C -328.95780 684.89688 327.44580 639.46488 331.76580 595.11288 C -335.36580 576.75288 339.75780 557.74488 345.66180 539.31288 C -346.23780 539.09688 346.88580 538.80888 347.53380 538.52088 C -349.40580 530.09688 353.86980 523.11288 357.32580 514.40088 C -358.18980 514.18488 359.05380 513.96888 359.91780 513.68088 C -365.89380 545.43288 375.18180 574.88088 382.88580 605.62488 C -401.53380 651.27288 424.42980 692.74488 448.26180 736.01688 C -458.12580 763.37688 472.38180 786.70488 476.84580 815.93688 C -476.84580 828.60888 479.58180 841.92888 482.46180 853.66488 C -484.47780 853.66488 486.49380 853.66488 488.50980 853.66488 C -488.43780 834.94488 486.13380 815.36088 490.38180 796.35288 C -493.26180 789.72888 496.14180 783.10488 499.02180 776.40888 C -507.44580 777.41688 514.14180 809.96088 526.09380 807.29688 C -527.24580 805.42488 527.24580 805.42488 528.68580 798.58488 C -528.25380 776.55288 526.81380 759.12888 533.65380 737.52888 C -534.58980 737.67288 535.59780 737.81688 536.60580 737.96088 C -542.22180 746.60088 542.22180 746.60088 552.80580 766.18488 C -555.39780 767.33688 555.39780 767.33688 558.42180 767.33688 C -560.29380 765.46488 560.43780 756.53688 558.78180 753.36888 C -560.14980 737.67288 562.88580 723.27288 565.98180 707.43288 C -566.41380 707.43288 566.91780 707.43288 567.42180 707.43288 C -567.78180 704.40888 568.57380 703.61688 572.31780 692.31288 C -577.57380 664.44888 579.08580 660.63288 582.10980 642.56088 C -585.13380 631.25688 588.08580 615.41688 589.59780 611.67288 C -596.79780 564.80088 599.96580 516.05688 601.62180 467.67288 C -598.74180 428.57688 594.06180 394.52088 585.85380 356.14488 C -581.31780 341.81688 579.87780 340.30488 573.82980 321.44088 C -555.82980 286.30488 540.78180 254.48088 516.66180 222.65688 C -508.52580 217.97688 501.32580 198.68088 493.04580 196.30488 C -492.61380 194.28888 492.25380 192.27288 491.89380 190.25688 C -492.90180 188.02488 493.90980 185.79288 494.91780 183.48888 C -496.28580 148.49688 481.45380 117.60888 452.43780 96.44088 C -426.80580 70.80888 395.05380 55.11288 364.81380 36.46488 C -364.45380 35.88888 364.09380 35.24088 363.73380 34.59288 C -342.70980 24.87288 336.66180 4.78488 335.50980 -17.03112 C -341.55780 -32.94312 352.06980 -51.66312 333.63780 -64.11912 C -322.83780 -64.11912 320.60580 -52.88712 314.05380 -51.73512 C -313.26180 -57.99912 312.10980 -67.14312 303.54180 -67.14312 C -@c -F - -@rax %Note: Object -541.14180 -56.55912 585.85380 -26.96088 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -570.44580 -56.55912 m -563.46180 -53.24712 556.11780 -54.68712 552.44580 -47.91912 C -551.94180 -47.91912 551.43780 -47.91912 550.93380 -47.91912 C -547.26180 -39.20712 540.42180 -37.55112 541.14180 -27.18312 C -559.35780 -25.95912 558.78180 -29.70312 574.18980 -40.43112 C -577.35780 -44.96712 579.73380 -50.07912 585.49380 -52.81512 C -585.56580 -53.46312 585.70980 -54.11112 585.85380 -54.75912 C -583.26180 -55.11912 580.23780 -53.60712 574.18980 -53.96712 C -573.90180 -54.83112 573.68580 -55.69512 573.46980 -56.55912 C -572.46180 -56.55912 571.45380 -56.55912 570.44580 -56.55912 C -@c -F - -@rax %Note: Object -598.30980 -56.55912 637.40580 -21.56712 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -602.77380 -56.55912 m -601.26180 -56.41512 599.74980 -56.27112 598.30980 -56.19912 C -599.82180 -48.35112 607.95780 -48.63912 614.07780 -44.53512 C -618.90180 -36.90312 629.98980 -23.79912 637.40580 -21.56712 C -635.82180 -34.02312 633.87780 -42.37512 624.58980 -50.58312 C -612.56580 -53.60712 605.79780 -56.55912 602.77380 -56.55912 C -@c -F - -@rax %Note: Object --189.56041 -47.56365 -38.17020 169.95288 @E - 1 O 0 @g -0.00 0.00 0.00 1.00 k -/$fm 0 def --111.46620 -47.55912 m --128.09820 -39.13512 -147.17820 -16.16712 -147.17820 2.55288 C --140.19420 11.33688 -142.42620 15.65688 -129.46620 11.98488 C --126.51420 9.96888 -106.42620 -5.72712 -103.90620 -5.72712 C --103.90620 -6.44712 -103.90620 -7.16712 -103.90620 -7.95912 C --98.93820 -11.48712 -95.91420 -15.59112 -91.88220 -21.13512 C --91.01820 -20.99112 -90.15420 -20.84712 -89.29020 -20.77512 C --90.73020 17.67288 -95.98620 41.64888 -120.10620 71.88888 C --120.75420 72.17688 -121.40220 72.46488 -121.97820 72.68088 C --121.97820 73.18488 -121.97820 73.68888 -121.97820 74.19288 C --122.98620 74.19288 -123.99420 74.19288 -125.00220 74.19288 C --128.31420 62.02488 -131.12220 48.20088 -146.02620 48.20088 C --155.53020 54.17688 -156.82620 67.49688 -155.02620 77.21688 C --164.09820 76.35288 -177.56220 44.96088 -189.29820 60.58488 C --190.30620 82.25688 -189.44220 95.07288 -172.37820 109.97688 C --172.30620 110.91288 -172.16220 111.77688 -172.01820 112.64088 C --188.43420 129.48888 -190.16220 134.16888 -186.63420 157.13688 C --185.91420 157.49688 -185.19420 157.85688 -184.40220 158.21688 C --179.79420 172.11288 -168.70620 168.87288 -158.05020 163.54488 C --157.33020 161.60088 -150.92220 156.34488 -150.56220 154.83288 C --149.55420 154.97688 -148.54620 155.12088 -147.53820 155.26488 C --142.85820 161.88888 -136.01820 162.17688 -133.28220 169.95288 C --112.76220 169.01688 -117.44220 150.00888 -120.89820 135.24888 C --120.75420 133.73688 -120.61020 132.22488 -120.46620 130.71288 C --87.05820 139.13688 -95.77020 106.80888 -106.57020 87.72888 C --110.53020 84.27288 -112.69020 83.26488 -117.44220 81.75288 C --115.42620 71.88888 -107.36220 66.48888 -102.39420 56.84088 C --92.89020 53.31288 -84.17820 2.62488 -82.52220 -6.44712 C --81.65820 -6.51912 -80.79420 -6.66312 -79.85820 -6.80712 C --69.99420 3.05688 -64.23420 16.66488 -52.06620 24.80088 C --42.34620 34.52088 -41.98620 32.50488 -38.17020 19.90488 C --38.17020 -14.36712 -48.53820 -36.83112 -85.11420 -42.30312 C --95.12220 -47.91912 -100.81020 -47.55912 -111.46620 -47.55912 C -@c -F - -@rax %Note: Object -588.87780 -47.55912 627.61380 15.36888 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -590.74980 -47.55912 m -590.10180 -47.12712 589.45380 -46.76712 588.87780 -46.40712 C -588.87780 -37.62312 595.42980 -24.01512 599.38980 -17.03112 C -599.53380 -16.81512 619.54980 13.92888 627.61380 15.36888 C -626.38980 4.42488 602.70180 -47.55912 590.74980 -47.55912 C -@c -F - -@rax %Note: Object --139.86539 -40.79112 -93.03420 6.00888 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def --106.21020 -40.79112 m --121.61820 -36.83112 -128.67420 -23.43912 -137.38620 -11.77512 C --138.68220 -4.14312 -143.29020 0.39288 -135.51420 6.00888 C --126.94620 6.00888 -99.94620 -15.08712 -98.65020 -24.59112 C --93.82620 -27.83112 -94.40220 -31.28712 -93.03420 -37.40712 C --94.18620 -38.48712 -99.44220 -39.99912 -106.21020 -40.79112 C -@c -F - -@rax %Note: Object --81.37020 -33.23112 -44.62016 20.62488 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def --77.62620 -33.23112 m --78.92220 -32.72712 -80.14620 -32.22312 -81.37020 -31.71912 C --83.60220 -18.25512 -57.89820 18.39288 -45.29820 20.62488 C --41.84220 -1.04712 -51.41820 -33.23112 -77.62620 -33.23112 C -@c -F - -@rax %Note: Object -629.12580 -17.39112 637.40580 -7.95912 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -630.63780 -17.39112 m -629.48580 -16.31112 629.48580 -16.31112 629.12580 -14.00712 C -632.94180 -12.56712 632.79780 -8.75112 637.40580 -7.95912 C -635.38980 -11.99112 633.80580 -14.22312 630.63780 -17.39112 C -@c -F - -@rax %Note: Object -506.97326 6.00888 539.26980 55.32888 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -509.53380 6.00888 m -498.73380 12.70488 521.55780 53.60088 533.65380 55.32888 C -534.73380 50.79288 536.31780 48.56088 539.26980 44.02488 C -537.68580 32.57688 522.99780 6.00888 509.53380 6.00888 C -@c -F - -@rax %Note: Object -543.60794 8.96088 557.79506 45.17688 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -547.18980 8.96088 m -543.80580 18.10488 540.78180 38.04888 547.90980 45.17688 C -549.49380 45.03288 551.14980 44.88888 552.80580 44.74488 C -552.87780 44.31288 553.02180 43.80888 553.16580 43.30488 C -554.17380 43.08888 555.18180 42.80088 556.18980 42.51288 C -560.22180 31.20888 556.26180 18.68088 549.42180 8.96088 C -548.62980 8.96088 547.90980 8.96088 547.18980 8.96088 C -@c -F - -@rax %Note: Object -188.91780 12.34488 223.83780 123.15288 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -191.50980 12.34488 m -189.42180 32.00088 188.91780 50.28888 188.91780 69.65688 C -193.81380 75.56088 193.81380 77.28888 194.89380 84.70488 C -201.37380 96.80088 206.41380 110.98488 212.96580 122.43288 C -213.82980 122.72088 214.69380 122.93688 215.62980 123.15288 C -216.42180 121.06488 216.49380 121.35288 219.37380 120.12888 C -218.22180 117.89688 218.22180 117.89688 218.22180 113.36088 C -220.09380 111.48888 220.38180 110.76888 223.83780 110.33688 C -214.26180 85.35288 203.24580 59.36088 198.63780 32.72088 C -195.39780 29.48088 195.68580 21.27288 195.68580 16.16088 C -195.03780 15.94488 194.38980 15.65688 193.81380 15.36888 C -193.52580 14.50488 193.23780 13.64088 193.02180 12.77688 C -192.51780 12.63288 192.01380 12.48888 191.50980 12.34488 C -@c -F - -@rax %Note: Object -699.67219 12.77688 716.67780 40.64088 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -700.54980 12.77688 m -697.38180 15.72888 703.35780 27.96888 704.65380 32.00088 C -708.39780 36.17688 709.83780 39.92088 715.59780 40.64088 C -715.95780 35.52888 716.31780 30.34488 716.67780 25.16088 C -711.78180 20.55288 706.95780 14.14488 700.54980 12.77688 C -@c -F - -@rax %Note: Object -724.59780 27.82488 753.30454 57.27969 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -728.34180 27.82488 m -727.04580 28.25688 725.82180 28.61688 724.59780 28.97688 C -727.18980 37.97688 727.98180 38.76888 728.34180 41.79288 C -727.69380 42.08088 727.04580 42.29688 726.46980 42.51288 C -726.46980 43.30488 726.46980 44.02488 726.46980 44.74488 C -736.69380 52.23288 737.55780 60.94488 753.18180 55.76088 C -755.55780 42.58488 740.72580 27.82488 728.34180 27.82488 C -@c -F - -@rax %Note: Object -678.83386 34.59288 711.42180 59.81074 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -680.24580 34.59288 m -674.98980 39.84888 685.14180 50.14488 687.73380 54.24888 C -699.68580 60.94488 699.03780 62.02488 711.42180 55.32888 C -711.42180 42.51288 689.67780 34.59288 680.24580 34.59288 C -@c -F - -@rax %Note: Object -719.07591 48.20088 727.83128 59.07288 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -719.34180 48.20088 m -718.90980 53.81688 718.90980 53.81688 720.06180 59.07288 C -727.62180 58.71288 730.28580 58.92888 725.31780 51.22488 C -720.85380 48.20088 720.85380 48.20088 719.34180 48.20088 C -@c -F - -@rax %Note: Object -557.36759 50.79288 593.94898 88.52088 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -558.42180 50.79288 m -555.54180 56.62488 559.35780 65.84088 560.29380 71.16888 C -570.22980 81.10488 576.06180 89.38488 591.54180 88.52088 C -601.98180 73.76088 578.36580 56.62488 565.98180 51.22488 C -563.46180 51.08088 560.94180 50.93688 558.42180 50.79288 C -@c -F - -@rax %Note: Object -540.92665 51.58488 551.95087 69.33402 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -541.86180 51.58488 m -540.78180 56.84088 540.78180 56.84088 541.14180 59.50488 C -541.71780 59.86488 542.36580 60.22488 543.01380 60.58488 C -543.22980 62.88888 543.44580 65.19288 543.73380 67.42488 C -555.61380 76.28088 554.38980 52.73688 541.86180 51.58488 C -@c -F - -@rax %Note: Object -488.86980 54.24888 525.73380 75.31569 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -496.78980 54.24888 m -492.75780 56.12088 490.81380 56.98488 488.86980 59.86488 C -488.86980 72.96888 502.11780 78.15288 513.34980 73.83288 C -517.16580 68.93688 519.25380 65.33688 525.73380 62.88888 C -524.94180 58.71288 501.68580 54.24888 496.78980 54.24888 C -@c -F - -@rax %Note: Object --148.92803 55.76088 -131.77020 92.92195 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def --145.30620 55.76088 m --145.81020 55.90488 -146.31420 56.04888 -146.81820 56.12088 C --150.41820 68.28888 -149.05020 78.72888 -145.66620 90.03288 C --141.63420 92.55288 -138.03420 95.72088 -137.02620 88.52088 C --136.52220 88.52088 -136.01820 88.52088 -135.51420 88.52088 C --130.25820 81.03288 -129.53820 60.58488 -139.25820 55.76088 C --141.27420 55.76088 -143.29020 55.76088 -145.30620 55.76088 C -@c -F - -@rax %Note: Object --184.04220 63.24888 -154.66620 105.08088 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def --182.89020 63.24888 m --183.32220 63.89688 -183.68220 64.54488 -184.04220 65.12088 C --184.04220 83.04888 -181.16220 106.30488 -158.48220 105.08088 C --157.69020 100.54488 -156.17820 98.31288 -154.66620 90.03288 C --160.06620 82.11288 -173.89020 63.24888 -182.89020 63.24888 C -@c -F - -@rax %Note: Object -726.10980 64.04088 761.46180 97.16088 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -731.36580 64.04088 m -729.85380 65.55288 729.85380 65.55288 726.10980 66.63288 C -734.53380 86.00088 738.70980 95.00088 761.46180 97.16088 C -762.39780 85.92888 740.36580 64.04088 731.36580 64.04088 C -@c -F - -@rax %Note: Object -701.93367 66.63288 726.32353 97.52088 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -714.80580 66.63288 m -714.80580 67.13688 714.80580 67.64088 714.80580 68.14488 C -711.99780 68.07288 709.26180 67.92888 706.52580 67.78488 C -694.86180 84.92088 706.81380 98.45688 724.95780 97.52088 C -728.12580 89.81688 725.74980 83.26488 719.70180 77.21688 C -718.98180 73.68888 718.62180 68.28888 714.80580 66.63288 C -@c -F - -@rax %Note: Object -514.93266 70.01688 535.14000 103.06035 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -533.65380 70.01688 m -516.73380 80.31288 510.75780 83.19288 517.81380 102.05688 C -521.55780 103.20888 521.55780 103.20888 530.19780 102.84888 C -536.10180 92.40888 535.38180 82.97688 534.73380 70.37688 C -534.37380 70.30488 534.01380 70.16088 533.65380 70.01688 C -@c -F - -@rax %Note: Object -651.61899 74.55288 671.53380 110.33688 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -654.68580 74.55288 m -653.67780 74.69688 652.66980 74.84088 651.66180 74.91288 C -651.51780 89.88888 651.30180 97.80888 658.42980 110.33688 C -659.65380 110.33688 660.87780 110.33688 662.17380 110.33688 C -662.46180 105.51288 666.63780 104.36088 671.53380 102.05688 C -670.45380 89.31288 664.69380 84.77688 656.19780 74.55288 C -655.69380 74.55288 655.18980 74.55288 654.68580 74.55288 C -@c -F - -@rax %Note: Object -544.45153 76.85688 568.13386 119.04888 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -550.14180 76.85688 m -549.63780 77.36088 549.13380 77.86488 548.62980 78.36888 C -547.33380 78.22488 546.10980 78.08088 544.88580 77.93688 C -543.08580 96.22488 546.10980 107.31288 561.44580 119.04888 C -562.45380 119.04888 563.46180 119.04888 564.46980 119.04888 C -574.54980 108.96888 561.87780 76.85688 550.14180 76.85688 C -@c -F - -@rax %Note: Object --133.33408 89.67288 -102.20400 126.60888 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def --119.74620 89.67288 m --134.07420 91.25688 -135.15420 102.99288 -131.77020 115.30488 C --122.12220 122.14488 -117.80220 126.60888 -105.41820 126.60888 C --97.57020 116.16888 -105.56220 101.26488 -110.31420 90.75288 C --113.69820 89.67288 -113.69820 89.67288 -119.74620 89.67288 C -@c -F - -@rax %Note: Object -580.23780 90.75288 584.77380 93.05688 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -580.23780 90.75288 m -580.23780 91.54488 580.23780 92.33688 580.23780 93.05688 C -581.74980 92.98488 583.26180 92.84088 584.77380 92.69688 C -583.26180 92.04888 581.74980 91.40088 580.23780 90.75288 C -@c -F - -@rax %Note: Object -619.22239 92.69688 651.30180 125.09688 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -620.84580 92.69688 m -614.72580 102.56088 626.24580 119.33688 633.58980 125.09688 C -638.84580 125.09688 639.63780 124.30488 650.94180 123.94488 C -650.50980 117.17688 651.30180 115.66488 651.30180 113.36088 C -642.87780 105.65688 632.00580 94.06488 620.84580 92.69688 C -@c -F - -@rax %Note: Object --152.07420 97.95288 -138.89820 120.81515 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def --148.25820 97.95288 m --149.05020 98.31288 -149.84220 98.67288 -150.56220 99.03288 C --150.56220 99.53688 -150.56220 100.04088 -150.56220 100.54488 C --151.06620 100.54488 -151.57020 100.54488 -152.07420 100.54488 C --152.00220 106.01688 -150.41820 129.41688 -138.89820 117.89688 C --138.89820 111.84888 -139.97820 97.95288 -148.25820 97.95288 C -@c -F - -@rax %Note: Object -668.58180 110.76888 708.03780 145.07943 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -672.68580 110.76888 m -671.31780 111.63288 669.94980 112.49688 668.58180 113.36088 C -668.58180 118.54488 672.10980 120.41688 675.34980 123.94488 C -678.15780 136.40088 691.04580 146.55288 704.29380 145.04088 C -705.08580 142.66488 704.86980 142.16088 708.03780 140.50488 C -704.50980 120.41688 691.98180 113.93688 672.68580 110.76888 C -@c -F - -@rax %Note: Object --183.02854 116.81688 -152.93820 161.29474 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def --167.12220 116.81688 m --180.44220 127.32888 -186.49020 138.92088 -181.01820 154.83288 C --174.03420 163.47288 -170.21820 162.17688 -160.35420 158.57688 C --160.35420 158.14488 -160.35420 157.64088 -160.35420 157.13688 C --148.83420 149.00088 -153.73020 135.89688 -155.45820 123.15288 C --159.77820 119.69688 -161.72220 116.81688 -167.12220 116.81688 C -@c -F - -@rax %Note: Object -659.14980 119.04888 668.26687 128.48088 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -659.14980 119.04888 m -658.64580 125.24088 662.82180 127.54488 668.22180 128.48088 C -668.43780 124.23288 667.93380 123.72888 665.55780 119.40888 C -663.39780 119.33688 661.23780 119.19288 659.14980 119.04888 C -@c -F - -@rax %Note: Object --144.71291 122.79288 -122.98989 162.75288 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def --134.72220 122.79288 m --138.10620 125.60088 -140.62620 127.25688 -144.51420 126.17688 C --144.15420 144.39288 -147.97020 150.65688 -134.00220 162.75288 C --114.05820 162.75288 -126.08220 134.38488 -130.97820 123.58488 C --132.49020 122.79288 -132.49020 122.79288 -134.72220 122.79288 C -@c -F - -@rax %Note: Object -665.14394 133.73688 696.37380 175.20888 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -665.91780 133.73688 m -665.48580 143.16888 662.89380 150.65688 670.09380 157.85688 C -671.31780 163.11288 683.91780 172.11288 688.52580 174.84888 C -690.97380 174.99288 693.49380 175.13688 696.01380 175.20888 C -696.08580 172.47288 696.22980 169.73688 696.37380 166.92888 C -692.62980 159.36888 674.98980 135.96888 665.91780 133.73688 C -@c -F - -@rax %Note: Object -636.69175 135.60888 655.88287 167.28888 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -638.84580 135.60888 m -634.02180 140.43288 638.41380 156.77688 640.35780 162.39288 C -644.96580 164.04888 645.25380 167.28888 652.38180 167.28888 C -656.91780 162.75288 657.06180 142.59288 652.74180 135.96888 C -648.06180 135.89688 643.45380 135.75288 638.84580 135.60888 C -@c -F - -@rax %Note: Object -694.14180 147.70488 699.03780 151.80888 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -694.50180 147.70488 m -694.35780 148.85688 694.21380 150.00888 694.14180 151.08888 C -695.22180 151.37688 696.37380 151.59288 697.52580 151.80888 C -697.52580 151.30488 697.52580 150.80088 697.52580 150.29688 C -698.02980 150.29688 698.53380 150.29688 699.03780 150.29688 C -698.74980 149.72088 698.46180 149.07288 698.24580 148.42488 C -696.94980 148.20888 695.72580 147.99288 694.50180 147.70488 C -@c -F - -@rax %Note: Object -363.73380 173.69688 594.13380 799.37688 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -363.73380 173.69688 m -364.81380 180.46488 370.86180 203.07288 376.83780 231.00888 C -377.62980 231.72888 380.58180 242.31288 381.37380 243.03288 C -388.42980 277.59288 394.98180 310.78488 397.93380 345.56088 C -397.93380 357.65688 397.14180 359.09688 397.14180 367.44888 C -391.16580 413.38488 391.16580 413.38488 390.37380 414.17688 C -387.27780 428.14488 383.38980 442.18488 381.73380 455.64888 C -381.22980 455.64888 380.72580 455.64888 380.22180 455.64888 C -379.06980 462.41688 376.11780 469.18488 372.73380 482.79288 C -372.22980 482.79288 371.72580 482.79288 371.22180 482.79288 C -369.78180 488.33688 368.41380 493.88088 367.04580 499.35288 C -365.74980 522.24888 371.22180 547.44888 378.70980 568.32888 C -379.28580 568.25688 379.93380 568.11288 380.58180 567.96888 C -382.52580 555.94488 384.25380 532.25688 398.29380 526.85688 C -416.29380 526.85688 428.74980 537.72888 443.36580 547.95288 C -444.37380 548.09688 445.38180 548.24088 446.38980 548.31288 C -446.74980 547.59288 447.10980 546.87288 447.54180 546.08088 C -448.18980 527.43288 444.30180 464.28888 473.46180 464.28888 C -484.40580 472.35288 489.80580 482.21688 499.02180 491.43288 C -499.88580 491.36088 500.74980 491.21688 501.68580 491.07288 C -501.68580 479.26488 501.68580 467.45688 501.68580 455.64888 C -503.62980 446.21688 505.14180 430.52088 514.78980 424.32888 C -533.72580 424.32888 535.09380 444.48888 550.14180 446.57688 C -552.80580 426.20088 552.80580 426.20088 553.52580 412.66488 C -558.06180 400.20888 568.28580 389.19288 582.10980 399.84888 C -582.10980 405.60888 575.12580 403.44888 571.23780 403.59288 C -570.80580 404.38488 570.44580 405.17688 570.08580 405.89688 C -567.70980 406.18488 565.33380 406.40088 562.95780 406.61688 C -558.42180 421.08888 558.13380 435.20088 556.54980 449.60088 C -553.88580 452.98488 552.44580 453.34488 552.44580 454.85688 C -541.35780 452.62488 536.46180 446.28888 529.47780 438.29688 C -525.51780 435.27288 521.77380 431.16888 517.09380 431.16888 C -501.97380 449.96088 511.54980 482.93688 506.58180 504.60888 C -489.51780 503.96088 486.27780 471.84888 466.69380 471.84888 C -457.62180 480.92088 455.89380 512.24088 455.02980 523.47288 C -455.02980 533.26488 455.24580 549.03288 451.64580 557.38488 C -450.13380 557.52888 448.62180 557.67288 447.18180 557.74488 C -433.71780 551.33688 410.60580 528.22488 396.78180 535.13688 C -386.98980 553.20888 386.62980 568.25688 386.62980 588.27288 C -398.36580 638.45688 425.07780 681.44088 449.77380 726.22488 C -452.00580 732.27288 455.02980 736.80888 467.05380 762.44088 C -471.44580 774.75288 475.83780 787.06488 480.22980 799.37688 C -480.94980 799.37688 481.66980 799.37688 482.46180 799.37688 C -491.10180 775.97688 491.10180 775.97688 495.63780 766.18488 C -496.78980 765.10488 496.78980 765.10488 500.17380 765.46488 C -506.50980 775.54488 514.35780 784.90488 519.32580 795.63288 C -520.33380 795.63288 521.34180 795.63288 522.34980 795.63288 C -522.27780 785.91288 517.59780 728.88888 536.60580 728.88888 C -539.62980 731.91288 539.62980 731.91288 549.42180 748.47288 C -550.28580 748.40088 551.14980 748.25688 552.01380 748.11288 C -552.80580 746.60088 552.80580 746.60088 554.24580 728.52888 C -562.09380 698.00088 570.66180 668.62488 576.06180 636.51288 C -588.37380 596.69688 589.59780 550.11288 594.13380 508.35288 C -593.34180 506.12088 593.34180 506.12088 594.13380 462.41688 C -589.16580 405.24888 584.19780 356.21688 557.26980 304.88088 C -549.56580 283.92888 537.10980 267.87288 527.24580 247.56888 C -526.30980 247.06488 525.44580 246.56088 524.58180 246.05688 C -523.93380 236.48088 501.54180 217.68888 494.55780 206.52888 C -493.54980 206.16888 492.54180 205.80888 491.53380 205.37688 C -491.24580 204.29688 490.95780 203.14488 490.74180 201.99288 C -489.22980 201.20088 489.22980 201.20088 485.48580 201.56088 C -473.38980 217.90488 461.94180 215.45688 443.36580 214.01688 C -434.29380 211.42488 427.88580 209.69688 420.10980 205.01688 C -396.27780 205.01688 384.46980 179.60088 363.73380 173.69688 C -@c -F - -@rax %Note: Object --27.22620 483.15288 195.36180 602.63660 @E - 1 O 0 @g -0.00 0.00 0.00 1.00 k -/$fm 0 def -41.17380 483.15288 m -28.42980 484.80888 15.75780 488.33688 5.46180 494.81688 C -5.17380 497.26488 -3.32220 500.57688 -5.41020 502.01688 C --8.14620 507.20088 -12.17820 508.56888 -13.69020 512.88888 C --14.69820 513.32088 -15.70620 513.68088 -16.71420 514.04088 C --18.51420 521.31288 -28.16220 522.68088 -27.22620 533.62488 C --24.27420 535.92888 -24.27420 535.92888 -22.76220 535.92888 C --19.09020 532.25688 -16.64220 520.80888 -9.94620 518.93688 C --7.42620 513.68088 5.60580 506.04888 6.61380 502.37688 C -11.86980 499.71288 11.86980 499.71288 22.38180 496.32888 C -22.38180 495.82488 22.38180 495.32088 22.38180 494.81688 C -42.68580 491.43288 42.68580 491.43288 49.45380 491.43288 C -50.96580 492.22488 69.75780 494.45688 93.80580 498.99288 C -97.04580 501.29688 100.28580 503.52888 103.59780 505.76088 C -113.24580 507.41688 132.90180 522.96888 137.79780 530.24088 C -149.24580 539.38488 155.79780 556.44888 160.33380 569.48088 C -160.18980 575.24088 160.04580 581.00088 159.97380 586.76088 C -160.54980 587.04888 161.19780 587.33688 161.84580 587.55288 C -161.91780 588.56088 162.06180 589.56888 162.20580 590.57688 C -161.41380 590.57688 160.69380 590.57688 159.97380 590.57688 C -158.31780 595.32888 157.09380 597.41688 158.02980 601.88088 C -159.18180 602.02488 160.33380 602.16888 161.48580 602.24088 C -171.63780 596.26488 182.58180 604.47288 194.53380 602.24088 C -195.61380 599.57688 195.54180 598.56888 194.89380 595.11288 C -185.24580 594.03288 175.38180 593.67288 166.74180 590.57688 C -167.17380 560.98488 161.62980 547.16088 141.54180 523.47288 C -141.39780 522.75288 141.25380 521.96088 141.18180 521.16888 C -157.23780 523.47288 169.69380 532.11288 180.99780 543.48888 C -183.01380 543.63288 185.02980 543.77688 187.04580 543.84888 C -187.04580 543.34488 187.04580 542.84088 187.04580 542.33688 C -187.54980 542.33688 188.05380 542.33688 188.55780 542.33688 C -186.97380 530.81688 155.58180 517.78488 146.43780 513.32088 C -143.98980 513.46488 141.61380 513.60888 139.23780 513.68088 C -138.87780 515.48088 138.51780 517.20888 138.15780 518.93688 C -130.59780 516.70488 129.37380 509.86488 121.59780 507.27288 C -98.70180 490.35288 68.89380 483.15288 41.17380 483.15288 C -@c -F - -@rax %Note: Object --72.73020 540.46488 248.32205 910.38784 @E - 1 O 0 @g -0.00 0.00 0.00 1.00 k -/$fm 0 def --45.29820 540.46488 m --47.60220 540.96888 -49.83420 541.47288 -52.06620 541.97688 C --66.61020 549.10488 -69.77820 554.50488 -72.73020 569.48088 C --69.85020 596.98488 -42.77820 613.40088 -26.14620 585.24888 C --25.06620 582.00888 -23.91420 578.76888 -22.76220 575.45688 C --8.65020 576.46488 6.90180 589.35288 18.63780 596.98488 C -30.87780 608.64888 58.81380 634.71288 58.81380 653.14488 C -56.50980 655.95288 54.27780 658.68888 52.04580 661.42488 C -50.24580 677.76888 50.96580 688.49688 54.27780 703.61688 C -57.01380 707.72088 57.94980 708.87288 56.22180 712.68888 C -55.71780 712.68888 55.21380 712.68888 54.70980 712.68888 C -53.34180 720.75288 49.66980 727.52088 55.42980 733.42488 C -56.94180 733.06488 58.45380 732.70488 59.96580 732.27288 C -61.62180 739.47288 62.12580 740.26488 67.81380 744.36888 C -66.66180 752.07288 62.62980 751.85688 58.45380 756.03288 C -54.78180 761.14488 53.12580 763.73688 48.66180 766.61688 C -33.32580 785.33688 13.45380 808.37688 5.46180 830.26488 C -3.94980 838.54488 3.15780 850.64088 0.20580 866.48088 C -1.28580 881.31288 6.03780 894.99288 7.69380 908.67288 C -11.29380 912.27288 14.38980 909.39288 18.63780 907.59288 C -29.94180 905.79288 40.16580 903.63288 51.68580 900.03288 C -52.69380 897.00888 74.43780 889.37688 79.54980 888.29688 C -79.54980 887.79288 79.54980 887.28888 79.54980 886.78488 C -80.26980 886.78488 80.98980 886.78488 81.78180 886.78488 C -81.78180 886.28088 81.78180 885.77688 81.78180 885.27288 C -84.66180 884.19288 90.70980 879.08088 90.06180 874.40088 C -84.01380 875.40888 84.08580 878.79288 80.26980 881.16888 C -68.74980 882.60888 58.74180 890.02488 47.94180 892.83288 C -47.94180 893.33688 47.94180 893.84088 47.94180 894.34488 C -36.27780 897.15288 25.04580 900.46488 13.74180 899.60088 C -12.22980 894.34488 11.43780 893.62488 11.07780 891.32088 C -17.70180 889.08888 31.38180 881.74488 33.68580 873.96888 C -34.54980 873.75288 35.41380 873.53688 36.27780 873.24888 C -36.34980 871.95288 43.47780 862.30488 46.06980 861.15288 C -46.14180 860.43288 46.28580 859.71288 46.42980 858.92088 C -47.00580 858.70488 47.65380 858.48888 48.30180 858.20088 C -62.19780 838.76088 69.10980 816.51288 78.03780 793.76088 C -78.54180 793.61688 79.04580 793.47288 79.54980 793.32888 C -83.00580 809.38488 85.45380 817.01688 93.37380 831.05688 C -100.93380 840.05688 100.93380 840.05688 101.29380 841.56888 C -87.39780 840.92088 80.62980 835.59288 80.62980 850.64088 C -92.65380 864.96888 92.65380 864.96888 98.70180 870.94488 C -113.60580 881.96088 125.12580 885.63288 143.41380 889.08888 C -143.41380 889.88088 143.41380 890.60088 143.41380 891.32088 C -142.62180 891.32088 141.90180 891.32088 141.18180 891.32088 C -141.18180 891.82488 141.18180 892.32888 141.18180 892.83288 C -140.53380 893.12088 139.88580 893.40888 139.23780 893.62488 C -139.45380 894.92088 139.74180 896.14488 140.02980 897.36888 C -166.59780 907.08888 193.88580 913.92888 222.39780 905.28888 C -229.09380 899.24088 229.09380 899.24088 230.60580 898.88088 C -231.82980 895.92888 231.68580 894.34488 235.14180 892.47288 C -235.50180 890.60088 235.86180 888.72888 236.22180 886.78488 C -236.86980 886.56888 237.51780 886.35288 238.16580 886.06488 C -238.02180 884.55288 237.87780 883.04088 237.73380 881.52888 C -247.59780 848.48088 253.78980 819.03288 241.54980 784.25688 C -234.56580 771.51288 237.44580 776.26488 226.86180 777.48888 C -225.56580 769.06488 213.10980 758.26488 206.55780 753.00888 C -193.38180 753.00888 195.25380 765.24888 194.53380 774.46488 C -182.36580 773.60088 175.66980 746.67288 159.97380 743.21688 C -157.95780 744.72888 155.94180 746.24088 153.92580 747.75288 C -152.70180 757.76088 153.99780 764.96088 155.43780 774.46488 C -142.26180 769.78488 132.03780 733.78488 115.62180 744.72888 C -108.13380 761.00088 114.46980 783.39288 119.36580 799.37688 C -105.97380 797.21688 99.27780 777.84888 83.29380 776.76888 C -82.93380 773.52888 82.42980 770.43288 78.03780 769.64088 C -75.08580 772.44888 76.09380 773.38488 72.78180 774.46488 C -73.14180 769.20888 78.32580 766.25688 79.90980 760.13688 C -79.40580 759.41688 78.90180 758.69688 78.39780 757.90488 C -76.95780 757.68888 75.58980 757.47288 74.22180 757.18488 C -74.43780 754.95288 74.72580 752.64888 75.01380 750.34488 C -76.23780 750.12888 77.46180 749.91288 78.75780 749.62488 C -80.12580 745.95288 84.22980 748.25688 83.29380 742.49688 C -81.78180 741.70488 81.78180 741.70488 69.75780 742.85688 C -69.82980 741.34488 69.97380 739.83288 70.11780 738.32088 C -65.07780 733.28088 68.24580 727.37688 69.75780 720.96888 C -74.94180 720.53688 79.47780 721.90488 85.52580 720.60888 C -88.62180 733.92888 91.42980 749.84088 92.29380 763.16088 C -92.79780 763.16088 93.30180 763.16088 93.80580 763.16088 C -93.80580 760.71288 93.80580 758.19288 93.80580 755.67288 C -94.52580 755.31288 95.24580 754.95288 96.03780 754.52088 C -96.10980 748.40088 96.25380 742.20888 96.39780 736.01688 C -90.85380 716.64888 92.72580 698.21688 88.90980 677.98488 C -86.24580 671.28888 76.81380 653.28888 69.75780 651.63288 C -67.16580 642.99288 66.51780 646.52088 61.47780 641.48088 C -51.46980 613.97688 24.75780 593.45688 1.35780 577.40088 C --6.13020 573.58488 -12.89820 567.75288 -21.25020 567.17688 C --24.85020 552.56088 -28.52220 540.46488 -45.29820 540.46488 C -@c -F - -@rax %Note: Object --53.21820 559.25688 -38.27197 582.29688 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def --46.01820 559.25688 m --49.83420 562.28088 -49.83420 562.28088 -51.27420 562.64088 C --51.27420 563.64888 -51.27420 564.65688 -51.27420 565.66488 C --51.92220 565.95288 -52.57020 566.24088 -53.21820 566.45688 C --53.21820 576.96888 -53.21820 576.96888 -52.06620 579.63288 C --50.19420 580.78488 -50.19420 580.78488 -49.83420 582.29688 C --36.73020 581.86488 -35.14620 568.97688 -43.06620 559.25688 C --44.07420 559.25688 -45.08220 559.25688 -46.01820 559.25688 C -@c -F - -@rax %Note: Object -147.81487 656.52888 195.99846 740.98488 @E - 1 O 0 @g -0.00 0.00 0.00 1.00 k -/$fm 0 def -156.94980 656.52888 m -150.18180 661.06488 150.18180 661.06488 149.02980 662.93688 C -147.08580 679.35288 146.14980 700.08888 156.58980 713.40888 C -156.66180 714.92088 156.80580 716.43288 156.94980 717.94488 C -160.26180 718.59288 161.91780 718.80888 164.43780 721.32888 C -179.77380 725.14488 180.20580 727.73688 187.76580 740.98488 C -189.34980 740.84088 191.00580 740.69688 192.66180 740.55288 C -192.66180 732.27288 182.86980 724.28088 184.02180 719.09688 C -184.52580 719.09688 185.02980 719.09688 185.53380 719.09688 C -188.12580 722.55288 191.07780 726.72888 195.32580 727.37688 C -198.42180 721.97688 190.50180 712.47288 185.89380 708.87288 C -185.89380 699.36888 184.45380 671.50488 172.71780 668.19288 C -171.42180 662.86488 161.98980 657.75288 156.94980 656.52888 C -@c -F - -@rax %Note: Object -56.77965 660.27288 85.64995 708.51288 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -61.47780 660.27288 m -52.33380 671.64888 56.79780 704.91288 71.98980 708.51288 C -85.16580 708.51288 86.10180 707.14488 85.52580 692.74488 C -85.02180 692.74488 84.51780 692.74488 84.01380 692.74488 C -80.70180 697.71288 78.25380 697.13688 73.50180 698.72088 C -55.71780 692.38488 60.54180 675.96888 62.98980 661.06488 C -62.48580 660.84888 61.98180 660.56088 61.47780 660.27288 C -@c -F - -@rax %Note: Object -153.92580 682.52088 180.26476 710.53682 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -153.92580 682.52088 m -155.79780 698.57688 159.03780 718.66488 178.76580 707.43288 C -179.55780 702.89688 181.50180 699.36888 179.12580 694.61688 C -175.02180 700.44888 173.65380 700.23288 167.46180 700.23288 C -163.86180 696.27288 157.30980 684.03288 153.92580 682.52088 C -@c -F - -@rax %Note: Object -86.24580 748.83288 242.26980 902.10132 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -120.08580 748.83288 m -114.46980 772.44888 126.13380 790.95288 129.51780 812.19288 C -122.10180 819.60888 98.62980 786.20088 86.24580 785.04888 C -86.60580 791.60088 86.96580 798.15288 87.39780 804.63288 C -95.67780 826.16088 102.30180 835.16088 120.87780 847.97688 C -122.24580 850.20888 123.61380 851.72088 123.10980 854.02488 C -120.08580 854.81688 120.08580 854.81688 115.62180 854.02488 C -106.40580 849.41688 96.82980 847.32888 87.03780 846.82488 C -92.65380 870.44088 128.00580 880.59288 148.66980 883.40088 C -157.66980 883.68888 166.66980 883.97688 175.74180 884.19288 C -177.97380 886.42488 178.69380 886.92888 179.12580 889.80888 C -175.52580 893.40888 159.32580 892.68888 153.20580 893.62488 C -153.20580 894.41688 153.20580 895.13688 153.20580 895.85688 C -175.88580 901.47288 197.26980 905.21688 220.88580 898.52088 C -227.22180 892.83288 227.22180 892.83288 230.96580 887.57688 C -230.96580 878.28888 233.98980 863.02488 238.88580 854.02488 C -239.38980 853.95288 239.89380 853.80888 240.39780 853.66488 C -238.88580 843.72888 241.83780 828.96888 242.26980 817.44888 C -241.54980 809.16888 241.54980 809.16888 235.86180 785.40888 C -234.85380 785.33688 233.84580 785.19288 232.90980 785.04888 C -232.47780 791.81688 232.62180 791.96088 227.65380 793.32888 C -224.12580 784.40088 213.90180 759.27288 202.09380 760.92888 C -201.80580 770.72088 201.51780 780.51288 201.30180 790.30488 C -199.50180 790.30488 197.77380 790.30488 196.04580 790.30488 C -190.57380 781.66488 169.62180 752.14488 159.97380 751.13688 C -159.46980 764.45688 161.77380 774.24888 165.58980 786.56088 C -165.44580 789.00888 165.30180 791.38488 165.22980 793.76088 C -149.89380 793.76088 138.58980 751.42488 120.08580 748.83288 C -@c -F - -@rax %Note: Object -252.06180 759.77688 393.39780 945.96888 @E - 1 O 0 @g -0.00 0.00 0.00 1.00 k -/$fm 0 def -332.12580 759.77688 m -331.33380 759.92088 330.61380 760.06488 329.89380 760.13688 C -329.60580 762.65688 329.31780 765.17688 329.10180 767.69688 C -333.42180 768.34488 338.02980 768.27288 338.89380 773.74488 C -350.91780 778.85688 365.10180 789.36888 373.81380 799.37688 C -395.05380 838.90488 384.97380 892.04088 376.47780 933.51288 C -369.42180 930.99288 368.70180 928.83288 367.04580 922.20888 C -344.43780 914.79288 332.77380 895.06488 319.74180 876.27288 C -308.58180 858.20088 288.92580 830.12088 292.30980 806.93688 C -303.61380 812.55288 310.09380 821.84088 320.10180 829.90488 C -322.33380 830.04888 324.56580 830.19288 326.86980 830.26488 C -326.50980 823.06488 319.45380 813.56088 315.92580 806.93688 C -315.27780 802.18488 314.62980 797.43288 314.05380 792.60888 C -322.40580 793.04088 323.26980 798.29688 334.35780 795.63288 C -336.73380 790.52088 337.30980 778.20888 333.99780 772.95288 C -333.13380 772.88088 332.26980 772.73688 331.40580 772.59288 C -328.23780 775.76088 329.89380 785.55288 329.89380 789.58488 C -327.37380 789.22488 324.85380 788.86488 322.33380 788.43288 C -300.15780 777.12888 307.21380 792.75288 310.30980 809.88888 C -301.52580 809.31288 299.22180 798.22488 289.28580 798.22488 C -280.71780 811.32888 286.90980 824.07288 291.15780 837.82488 C -303.18180 861.15288 303.18180 861.15288 315.20580 880.80888 C -320.24580 887.14488 330.18180 898.37688 332.91780 905.64888 C -307.64580 899.67288 288.27780 875.33688 265.23780 864.17688 C -262.64580 859.13688 259.54980 855.53688 253.93380 855.53688 C -251.70180 857.76888 252.27780 858.70488 252.06180 861.15288 C -257.24580 863.52888 258.46980 864.75288 261.78180 869.50488 C -288.27780 887.79288 315.70980 905.07288 344.14980 920.40888 C -355.52580 927.89688 369.56580 934.80888 377.98980 945.96888 C -385.83780 945.96888 383.31780 942.00888 383.60580 933.51288 C -386.05380 923.21688 390.44580 908.24088 389.29380 897.36888 C -389.79780 897.36888 390.30180 897.36888 390.80580 897.36888 C -392.60580 872.45688 393.39780 870.94488 393.39780 855.89688 C -390.44580 849.92088 390.73380 829.47288 390.37380 825.00888 C -384.75780 798.51288 374.89380 788.43288 351.27780 772.95288 C -347.60580 766.25688 339.68580 759.77688 332.12580 759.77688 C -@c -F - -@rax %Note: Object -6.60359 765.82488 72.78180 884.91288 @E - 1 O 0 @g -0.00 0.00 0.00 0.00 k -/$fm 0 def -62.19780 765.82488 m -57.30180 769.56888 50.67780 774.96888 47.94180 779.79288 C -47.43780 779.79288 46.93380 779.79288 46.42980 779.79288 C -34.33380 794.33688 21.66180 812.19288 13.74180 828.03288 C -9.63780 842.14488 2.36580 872.38488 9.56580 884.91288 C -18.56580 883.32888 33.54180 869.57688 37.42980 860.43288 C -37.93380 860.43288 38.43780 860.43288 38.94180 860.43288 C -44.19780 852.51288 44.19780 852.51288 46.06980 851.36088 C -53.05380 838.90488 74.94180 795.41688 72.78180 785.40888 C -70.47780 785.40888 68.96580 786.20088 64.50180 786.20088 C -63.34980 785.04888 63.34980 785.04888 62.98980 781.30488 C -63.56580 781.08888 64.21380 780.80088 64.86180 780.51288 C -64.86180 779.00088 64.06980 778.28088 63.70980 772.95288 C -66.51780 771.65688 67.23780 771.00888 66.73380 767.33688 C -64.50180 765.82488 64.50180 765.82488 62.19780 765.82488 C -@c -F - -%%PageTrailer -@rs -@rs -%%Trailer -@EndSysCorelDict -end -%%DocumentSuppliedResources: procset wCorel8Dict -%%EOF - -%%EndDocument - diff --git a/seminar/static/seminar/lisak.pdf b/seminar/static/seminar/lisak.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f90b2784a721c629ab2b509433196981ab8cec94 GIT binary patch literal 1959 zcmb7FYfuwc7_A~AD`HjD3btGyNKy*fO|l_Eh?N8w1_~IIY6W$ZED#J?+}%I`Tc?8) z@PV`?^+DBQDZUWIp|n*TQ3M=2;-j@#r&I-}*eVWHr^U)pdv8b}MgR0pW;c88-TR&I zeBV7Akfe?dCPGLopz&edASMMkV6<77LIFhav?+tn1SEts7yv*NZ7}jQ3-3mXr`5EM z(bJexiE%tjQ`wkhFIh@>wq)*Glu#sXGD2nS+Z8X}XDizOr=WRegu zDJNwh&Hk#2G4b$S4xsuB7bAvc%sDRXhXdMCXF|!421}W^928iW?}TFk&zfoHlM1d< z)42v6t%-?5pd(!k%`s+HM{@v4r*TOWWsW3u=@Iz|t(Wx(5_g!MLqilslx)`Wc9EhP zHrtLwx@v($kUG*I&Krn}E846+ku)EZmPBP9S}Cx+ z-`Bdo;quaO_b}gmcUyP$mz7^?cog#Gthf_Tr>TzUKCmhJj>io4)_haed@Zmut0vFD z7dDQIXs>T;O5Ij!n|HG>E%w}^e#Nt%n#z9nVtUckP>pPQiuFNb?Dvxsf41gs_33O{|^sRi@=g#l7v5+-m)DyK@8{!LRSkoCZEFd z30}T)q!Q!R`ejA!)>1#IJd;f)8r%ZUGzFKaeRs^75LxcMj#_KwU#Ti+CfBX%lTTT& z{?tLWdmuF}Xi50}p1jWe`zV!r2Zqg(KFsdEx%_nfxT5(JOOK@tsdMvwd{koF5r~zi zhY7WX{aIVIJtrT8x~;7$_nF&q;CQS=rBy}>tC=*-TJK`=>@}m%n>+5-HzizV?5aFV z1%@g_`uc|Ro^MDaCjAku?vO9NmE9h+HSk*3EApe|}p?zv9hc(0<8uPOFDoR@qtb%X7GK}oM{bI-G!+V%wpXWod+|JbMedPP}F za@QVfYsBv6drDi&i{66z+~F-UoOGUh)Re;q!rsRJ(_2RU13829V2%0*XWul=py!}Z zAdAtAn1UJEiOb1c?6N@;%jnHIXx9QAWndXVgb-v1fdfG%&*y}Rpus^jgQapZ4LUA_ zVKan6dmt4wbKbz1)W{qK>M$`*EG7s-A||9_TpolIfjBO7i3ztH%UVV8l#$7>Z-*R^ zb9mlprWTe?$8hM+7(Oz9j3lA;r2_|s;sN_CFgYVP(Y)6k@IO72G$MfHf-gw crgR3N+Sy%}<0+Q63q;6BDHaeAl^Biv3#gunCIA2c literal 0 HcmV?d00001 diff --git a/seminar/templates/seminar/archiv/obalky.tex b/seminar/templates/seminar/archiv/obalky.tex index 4995d105..03c2c1c6 100644 --- a/seminar/templates/seminar/archiv/obalky.tex +++ b/seminar/templates/seminar/archiv/obalky.tex @@ -86,7 +86,8 @@ % Tohle makro vysází samotnou obálku \def\obalka#1#2#3#4#5#6#7{ % Horní a pravý okraj je zároveň okraj stránky, resetujeme odsazení -\includegraphics[height=2.55cm]{lisak.eps}\hskip 1 em\vbox{% +\includegraphics[height=2.55cm]{lisak.pdf} +\vbox{% \adresaMaM} \vskip 7.3 cm % Od oka \hskip\toskip% diff --git a/seminar/views.py b/seminar/views.py index 55e8aa7a..1ab5460a 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -572,7 +572,7 @@ def obalkyView(request,resitele): tempdir = tempfile.mkdtemp() with open(tempdir+"/obalky.tex","w") as texfile: 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.pdf'),tempdir) subprocess.call(["pdflatex","obalky.tex"],cwd = tempdir) with open(tempdir+"/obalky.pdf","rb") as pdffile: From cb65fc7cfdbd2e286e1d81cc483b714f98f0d4dc Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Wed, 27 Nov 2019 02:03:26 +0100 Subject: [PATCH 49/80] =?UTF-8?q?Admin:=20=C5=98e=C5=A1itel=20m=C3=A1=20m?= =?UTF-8?q?=C3=ADt=20vid=C4=9Bt=20pozn=C3=A1mku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/admin.py | 1 + 1 file changed, 1 insertion(+) diff --git a/seminar/admin.py b/seminar/admin.py index 29363f68..6b583bc3 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -209,6 +209,7 @@ class ResitelAdmin(VersionAdmin): (u'Seminář', {'fields': ['datum_souhlasu_udaje', 'datum_souhlasu_zasilani', 'datum_prihlaseni', 'zasilat']}), (u'Osobní údaje', {'fields': ['pohlavi_muz', 'datum_narozeni', 'email', 'telefon']}), (u'Adresa', {'fields': ['ulice', 'mesto', 'psc', 'stat']}), + (u'Další', {'fields': ['poznamka']}), ] list_display = ['jmeno', 'prijmeni', 'user', 'pohlavi_muz', 'skola', 'rok_maturity', 'pocet_reseni'] list_filter = ['pohlavi_muz', 'rok_maturity', 'zasilat'] From 7e070f5f05c7ead507d62e62cd4f8a16852ca345 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 9 Dec 2019 23:21:41 +0100 Subject: [PATCH 50/80] =?UTF-8?q?Galerie:=20p=C5=99ejmenov=C3=A1na=20`znac?= =?UTF-8?q?ka`=20na=20`poradi`,=20aby=20to=20d=C3=A1valo=20aspo=C5=88=20tr?= =?UTF-8?q?ochu=20smysl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- galerie/views.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/galerie/views.py b/galerie/views.py index 807b6de4..7d37c6be 100644 --- a/galerie/views.py +++ b/galerie/views.py @@ -96,7 +96,7 @@ def detail(request, pk, fotka, soustredeni): # Poradi aktualniho obrazku v galerii/stitku. for i in range(len(obrazky)): if obrazky[i] == obrazek: - znacka = i + poradi = i break else: # Obrazek neni v galerii/stitku. @@ -108,11 +108,11 @@ def detail(request, pk, fotka, soustredeni): # a udelat z toho funkci, ktera se pouzije u nahledu predchozi_galerie = None nasledujici_galerie = None - obrazky_dalsi = obrazky[znacka+1:znacka+NAHLEDU+1] - if (znacka+1) > NAHLEDU: - obrazky_predchozi = obrazky[znacka-NAHLEDU:znacka] + obrazky_dalsi = obrazky[poradi+1:poradi+NAHLEDU+1] + if (poradi+1) > NAHLEDU: + obrazky_predchozi = obrazky[poradi-NAHLEDU:poradi] else: - obrazky_predchozi = obrazky[0:znacka] + obrazky_predchozi = obrazky[0:poradi] if galerie.poradi > 1: predchozi_galerie = Galerie.objects.\ filter(galerie_up=galerie.galerie_up).\ @@ -121,7 +121,7 @@ def detail(request, pk, fotka, soustredeni): predchozi_galerie = predchozi_galerie[0] else: predchozi_galerie = None - if (znacka+1) == len(obrazky): + if (poradi+1) == len(obrazky): nasledujici_galerie = Galerie.objects.\ filter(galerie_up=galerie.galerie_up).\ filter(poradi=(galerie.poradi+1)) From b5c4fa1f8f2f1376621bb9afb5aca00a60add719 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 9 Dec 2019 23:23:34 +0100 Subject: [PATCH 51/80] =?UTF-8?q?Galerie:=20V=C3=BDchoz=C3=AD=20po=C5=99ad?= =?UTF-8?q?=C3=AD=20galerie=20je=20nula?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Jinak se nedá zobrazit poslední obrázek galerie --- galerie/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/galerie/models.py b/galerie/models.py index 3cc4b682..1b64194c 100644 --- a/galerie/models.py +++ b/galerie/models.py @@ -91,7 +91,7 @@ class Galerie(models.Model): 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) - poradi = models.IntegerField('Pořadí', blank = True, null = True) + poradi = models.IntegerField('Pořadí', blank = True, null = False, default = 0) def __unicode__(self): return self.nazev From b7387571da14f5a29c39afddb279512fe76ffdae Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 9 Dec 2019 23:46:00 +0100 Subject: [PATCH 52/80] =?UTF-8?q?Galerie:=20Nespadneme,=20pokud=20nen?= =?UTF-8?q?=C3=AD=20nastaven=C3=A9=20=C4=8D=C3=ADslo=20galerie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ano, vím, že jsem to před chvílí opravil i jinak, ale co. --- galerie/views.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/galerie/views.py b/galerie/views.py index 7d37c6be..11c01f33 100644 --- a/galerie/views.py +++ b/galerie/views.py @@ -121,10 +121,14 @@ def detail(request, pk, fotka, soustredeni): predchozi_galerie = predchozi_galerie[0] else: predchozi_galerie = None - if (poradi+1) == len(obrazky): - nasledujici_galerie = Galerie.objects.\ + if (poradi+1) == len(obrazky): # Tohle je poslední obrázek + if galerie.poradi is not None + and galerie.galerie_up is not None: + nasledujici_galerie = Galerie.objects.\ filter(galerie_up=galerie.galerie_up).\ filter(poradi=(galerie.poradi+1)) + else: + nasledujici_galerie = None if nasledujici_galerie: nasledujici_galerie = nasledujici_galerie[0] else: From ac56fd056353a07c53624aedd6620b2806462ea9 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 9 Dec 2019 23:46:40 +0100 Subject: [PATCH 53/80] Galerie: Migrace k b5c4fa1 --- galerie/migrations/0008_auto_20191209_2326.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 galerie/migrations/0008_auto_20191209_2326.py diff --git a/galerie/migrations/0008_auto_20191209_2326.py b/galerie/migrations/0008_auto_20191209_2326.py new file mode 100644 index 00000000..12e605f4 --- /dev/null +++ b/galerie/migrations/0008_auto_20191209_2326.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.26 on 2019-12-09 22:26 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('galerie', '0007_obrazek_odstranen_datum'), + ] + + operations = [ + migrations.AlterField( + model_name='galerie', + name='poradi', + field=models.IntegerField(blank=True, default=0, verbose_name=b'Po\xc5\x99ad\xc3\xad'), + ), + ] From 1722283a75b35b9baa1608efadfc46e1dc4bf114 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 9 Dec 2019 23:52:12 +0100 Subject: [PATCH 54/80] Galerie: Fix syntax --- galerie/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/galerie/views.py b/galerie/views.py index 11c01f33..916a869b 100644 --- a/galerie/views.py +++ b/galerie/views.py @@ -122,8 +122,8 @@ def detail(request, pk, fotka, soustredeni): else: predchozi_galerie = None if (poradi+1) == len(obrazky): # Tohle je poslední obrázek - if galerie.poradi is not None - and galerie.galerie_up is not None: + if (galerie.poradi is not None + and galerie.galerie_up is not None): nasledujici_galerie = Galerie.objects.\ filter(galerie_up=galerie.galerie_up).\ filter(poradi=(galerie.poradi+1)) From ab8c895792f560493e258782897c908cfba91082 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Tue, 21 Jan 2020 16:05:06 +0100 Subject: [PATCH 55/80] =?UTF-8?q?Testweb=20b=C4=9B=C5=BE=C3=AD=20na=20mam-?= =?UTF-8?q?test.ks.matfyz.cz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mamweb/settings_test.py b/mamweb/settings_test.py index 9f971f45..3b4a4fbb 100644 --- a/mamweb/settings_test.py +++ b/mamweb/settings_test.py @@ -32,7 +32,7 @@ DEBUG = True TEMPLATES[0]['OPTIONS']['debug'] = True -ALLOWED_HOSTS = ['*.mam.mff.cuni.cz', 'atrey.karlin.mff.cuni.cz', 'mam.mff.cuni.cz', 'mam-test.kam.mff.cuni.cz', 'gimli.ms.mff.cuni.cz'] +ALLOWED_HOSTS = ['*.mam.mff.cuni.cz', 'atrey.karlin.mff.cuni.cz', 'mam.mff.cuni.cz', 'mam-test.kam.mff.cuni.cz', 'gimli.ms.mff.cuni.cz', 'mam-test.ks.matfyz.cz'] # Database # https://docs.djangoproject.com/en/1.7/ref/settings/#databases From ab3ce769cd44f7a752ed31aed1fd06e4fe5c9682 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 18 Aug 2020 05:03:33 +0200 Subject: [PATCH 56/80] Requirements: hack old python --- requirements.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/requirements.txt b/requirements.txt index 989f8380..8f7c152d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -24,6 +24,8 @@ django-taggit==0.23.0 django-autocomplete-light==2.3.6 django-crispy-forms==1.7.2 django-imagekit==4.0.2 +# HACK: django-appconf je závislost django-imagekitu, ale verze 1.0.4 už nepodporuje Py2, takže si explicitně řekneme o 1.0.3. +django-appconf==1.0.3 # Comments akismet==1.0.1 From 4dba5919dedda214300b94d68975717f2c411d94 Mon Sep 17 00:00:00 2001 From: "Pavel Turinsky (VM)" Date: Wed, 19 Aug 2020 07:05:56 +0200 Subject: [PATCH 57/80] SMAZAT: Upravy pro upgrade --- Makefile | 7 ------- mamweb/settings_prod.py | 9 +++++---- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 33e1f229..6ad72f63 100644 --- a/Makefile +++ b/Makefile @@ -63,8 +63,6 @@ schema_all.pdf: # Deploy to current *mamweb-test* directory deploy_test: - @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in directory mamweb-test"; exit 1; fi @echo "Installing version from origin/test ..." git pull origin test git clean -f @@ -79,8 +77,6 @@ deploy_test: # Deploy to current *mamweb-prod* directory deploy_prod: - @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-prod" ]; then echo "Only possible in directory mamweb-prod"; exit 1; fi @echo "Backing up production DB ..." ( cd -P .. && ./backup_prod_db.sh ) @echo "Installing version from origin/master ..." @@ -98,13 +94,10 @@ deploy_prod: # Sync test media directory with production sync_test_media: - @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in /akce/mam/www/mamweb-test"; exit 1; fi rsync -av --delete /akce/mam/www/mamweb-prod/media/ ./media # Sync test database with production database sync_test_db: - @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi pg_dump mam_test > dump-test-`date +"%Y%m%d_%H%M"`.sql pg_dump -Fc mam_prod > dump-prod.sql pg_restore -c -d mam_test dump-prod.sql diff --git a/mamweb/settings_prod.py b/mamweb/settings_prod.py index 918fd4b2..e883b5f2 100644 --- a/mamweb/settings_prod.py +++ b/mamweb/settings_prod.py @@ -28,7 +28,8 @@ DEBUG = False TEMPLATE_DEBUG = False ALLOWED_HOSTS = ['mam.mff.cuni.cz', 'www.mam.mff.cuni.cz', 'atrey.karlin.mff.cuni.cz', - 'mamweb.bezva.org','gimli.ms.mff.cuni.cz'] + 'mamweb.bezva.org','gimli.ms.mff.cuni.cz', + 'localhost'] # Database # https://docs.djangoproject.com/en/1.7/ref/settings/#databases @@ -37,7 +38,7 @@ DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'mam_prod', - 'USER': 'mam-web', + 'USER': 'user', 'TEST': { 'NAME': 'mam-prod-testdb', }, @@ -46,8 +47,8 @@ DATABASES = { import os -SERVER_EMAIL = 'mamweb-prod-errors@mam.mff.cuni.cz' -ADMINS = [('M&M ERRORs', 'mam-errors@mam.mff.cuni.cz')] +SERVER_EMAIL = 'mamweb-prod-errors@pokemon.ledoian.cz' +ADMINS = [('M&M ERRORs', 'mam-errors@pokemon.ledoian.cz')] # SECURITY: only send sensitive cookies via HTTPS From b7232d9010c66dacc56b27989e54cb58c11d3916 Mon Sep 17 00:00:00 2001 From: "Pavel Turinsky (VM)" Date: Wed, 19 Aug 2020 07:09:01 +0200 Subject: [PATCH 58/80] Also: Makefile --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 6ad72f63..87384135 100644 --- a/Makefile +++ b/Makefile @@ -63,8 +63,8 @@ schema_all.pdf: # Deploy to current *mamweb-test* directory deploy_test: - @echo "Installing version from origin/test ..." - git pull origin test + @echo "Installing version from origin/pseudo_test ..." + git pull origin pseudo_test git clean -f make install ./manage.py migrate @@ -79,8 +79,8 @@ deploy_test: deploy_prod: @echo "Backing up production DB ..." ( cd -P .. && ./backup_prod_db.sh ) - @echo "Installing version from origin/master ..." - git pull origin master + @echo "Installing version from origin/pseudo_master ..." + git pull origin pseudo_master git clean -f make install ./manage.py migrate From e6149fcc56985011d0fddfebfd79b42e9cb53460 Mon Sep 17 00:00:00 2001 From: "Pavel Turinsky (VM)" Date: Wed, 19 Aug 2020 07:24:32 +0200 Subject: [PATCH 59/80] Tyhlety zalohy vsechny jen obtezuji --- Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Makefile b/Makefile index 87384135..4dbd39d3 100644 --- a/Makefile +++ b/Makefile @@ -77,8 +77,6 @@ deploy_test: # Deploy to current *mamweb-prod* directory deploy_prod: - @echo "Backing up production DB ..." - ( cd -P .. && ./backup_prod_db.sh ) @echo "Installing version from origin/pseudo_master ..." git pull origin pseudo_master git clean -f From cda25efcd60dea16a8d625fca8d8ce24aa90acfa Mon Sep 17 00:00:00 2001 From: "Pavel Turinsky (VM)" Date: Wed, 19 Aug 2020 09:17:42 +0200 Subject: [PATCH 60/80] Oprava uwsgi configu pro Python 3 --- mamweb_prod.ini | 2 +- mamweb_test.ini | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mamweb_prod.ini b/mamweb_prod.ini index 218593e6..8816064f 100644 --- a/mamweb_prod.ini +++ b/mamweb_prod.ini @@ -5,7 +5,7 @@ chdir = /akce/mam/www/mamweb-prod/ home = /akce/mam/www/mamweb-prod/ module = mamweb.wsgi -plugin = python +plugin = python3 virtualenv = env master = True vacuum = True diff --git a/mamweb_test.ini b/mamweb_test.ini index a27f71f9..ddd6e55c 100644 --- a/mamweb_test.ini +++ b/mamweb_test.ini @@ -5,7 +5,7 @@ chdir = /akce/mam/www/mamweb-test/ home = /akce/mam/www/mamweb-test/ module = mamweb.wsgi -plugin = python +plugin = python3 virtualenv = env master = True vacuum = True From 3f5c5ee217382d13830da878ed4999e4717b9bdf Mon Sep 17 00:00:00 2001 From: "Pavel Turinsky (VM)" Date: Wed, 19 Aug 2020 09:26:47 +0200 Subject: [PATCH 61/80] Fix typo --- mamweb/settings_common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index beffa593..430fbe16 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -248,7 +248,7 @@ LOGGING = { 'class': 'django.utils.log.AdminEmailHandler', 'formatter': 'verbose', }, - 'mail_registraion': { + 'mail_registration': { 'level': 'WARN', 'class': 'django.utils.log.AdminEmailHandler', 'formatter': 'verbose', From e44b3296cf71fbbecc0ee7c753059c5e3d3240e6 Mon Sep 17 00:00:00 2001 From: "Pavel Turinsky (VM)" Date: Wed, 19 Aug 2020 09:28:15 +0200 Subject: [PATCH 62/80] Smazana zapomenuta konfliktova znacka --- seminar/admin.py | 1 - 1 file changed, 1 deletion(-) diff --git a/seminar/admin.py b/seminar/admin.py index 70f06966..edfbb595 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -162,4 +162,3 @@ class TextNodeAdmin(PolymorphicChildModelAdmin): admin.site.register(m.Nastaveni) admin.site.register(m.Novinky) ->>>>>>> origin/data_migrations From a82c218b71ed866d38c12117f23a2191c503d783 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Wed, 19 Aug 2020 10:00:04 +0200 Subject: [PATCH 63/80] =?UTF-8?q?Dal=C5=A1=C3=AD=20opravy=20skoro-poveden?= =?UTF-8?q?=C3=A9ho=20merge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...209_2326.py => 0010_auto_20200819_0947.py} | 8 +++---- prednasky/views.py | 21 +++++++++---------- seminar/migrations/0086_auto_20200819_0959.py | 17 +++++++++++++++ seminar/models.py | 2 +- 4 files changed, 31 insertions(+), 17 deletions(-) rename galerie/migrations/{0008_auto_20191209_2326.py => 0010_auto_20200819_0947.py} (59%) create mode 100644 seminar/migrations/0086_auto_20200819_0959.py diff --git a/galerie/migrations/0008_auto_20191209_2326.py b/galerie/migrations/0010_auto_20200819_0947.py similarity index 59% rename from galerie/migrations/0008_auto_20191209_2326.py rename to galerie/migrations/0010_auto_20200819_0947.py index 12e605f4..b7678ac1 100644 --- a/galerie/migrations/0008_auto_20191209_2326.py +++ b/galerie/migrations/0010_auto_20200819_0947.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.26 on 2019-12-09 22:26 -from __future__ import unicode_literals +# Generated by Django 2.2.15 on 2020-08-19 07:47 from django.db import migrations, models @@ -8,13 +6,13 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('galerie', '0007_obrazek_odstranen_datum'), + ('galerie', '0009_auto_20190610_2358'), ] operations = [ migrations.AlterField( model_name='galerie', name='poradi', - field=models.IntegerField(blank=True, default=0, verbose_name=b'Po\xc5\x99ad\xc3\xad'), + field=models.IntegerField(blank=True, default=0, verbose_name='Pořadí'), ), ] diff --git a/prednasky/views.py b/prednasky/views.py index c4800c30..93cccf1b 100644 --- a/prednasky/views.py +++ b/prednasky/views.py @@ -60,20 +60,19 @@ class SeznamListView(generic.ListView): ) return prednasky - # FIXME nahradit anotaci s filtrem po prechodu na Django 2.2 - def get_context_data(self,**kwargs): - context = super(SeznamListView, self).get_context_data(**kwargs) + # FIXME nahradit anotaci s filtrem po prechodu na Django 2.2 + def get_context_data(self,**kwargs): + context = super(SeznamListView, self).get_context_data(**kwargs) - # hlasovani se vztahuje k nejnovejsimu soustredeni - sous = Soustredeni.objects.first() - seznam = Seznam.objects.filter(soustredeni = sous, stav = STAV_NAVRH).first() + # hlasovani se vztahuje k nejnovejsimu soustredeni + sous = Soustredeni.objects.first() + seznam = Seznam.objects.filter(soustredeni = sous, stav = STAV_NAVRH).first() - for obj in self.object_list: - hlasovani_set = obj.hlasovani_set.filter(seznam=seznam).only('body') - obj.body = sum(map(lambda x: x.body,hlasovani_set)) + for obj in self.object_list: + hlasovani_set = obj.hlasovani_set.filter(seznam=seznam).only('body') + obj.body = sum(map(lambda x: x.body,hlasovani_set)) - return context - + return context def SeznamExportView(request, seznam): diff --git a/seminar/migrations/0086_auto_20200819_0959.py b/seminar/migrations/0086_auto_20200819_0959.py new file mode 100644 index 00000000..a5847e71 --- /dev/null +++ b/seminar/migrations/0086_auto_20200819_0959.py @@ -0,0 +1,17 @@ +# Generated by Django 2.2.15 on 2020-08-19 07:59 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0085_nepovinna_prezdivka'), + ] + + operations = [ + migrations.AlterModelOptions( + name='organizator', + options={'ordering': ['-organizuje_do', 'osoba__jmeno', 'osoba__prijmeni'], 'verbose_name': 'Organizátor', 'verbose_name_plural': 'Organizátoři'}, + ), + ] diff --git a/seminar/models.py b/seminar/models.py index 2e361377..4070e1d0 100644 --- a/seminar/models.py +++ b/seminar/models.py @@ -601,7 +601,7 @@ class Organizator(SeminarModelBase): # TODO: Chtěl bych spíš mít nejstarší orgy dole. # TODO: Zohledňovat přezdívky? # TODO: Sjednotit s tím, jak se řadí organizátoři v seznau orgů na webu - ordering = ['-organizuje_do', 'user__osoba__jmeno', 'user__osoba__prijmeni'] + ordering = ['-organizuje_do', 'osoba__jmeno', 'osoba__prijmeni'] @reversion.register(ignore_duplicates=True) class Soustredeni(SeminarModelBase): From f67aed8a5a9e2ad4dd50be91e1efcccf3035ef65 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 19 Aug 2020 17:49:07 +0200 Subject: [PATCH 64/80] =?UTF-8?q?Za=C4=8D=C3=A1tek=20seznamu=20toho,=20co?= =?UTF-8?q?=20je=20pot=C5=99eba=20opravit=20v=20produk=C4=8Dn=C3=AD=20data?= =?UTF-8?q?b=C3=A1zi,=20aby=20pro=C5=A1ly=20migrace.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MIGRATIONS | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 MIGRATIONS diff --git a/MIGRATIONS b/MIGRATIONS new file mode 100644 index 00000000..d2f07be8 --- /dev/null +++ b/MIGRATIONS @@ -0,0 +1,8 @@ +Jak zvládnout migrace na nový model: + +- Mail Toma Sourady (User vs Resitel) + +- Články s nekompatibilním zadáním a řešením: + - 2130: Definice čísel (23.6 vs 23.7) + - 2143: Gravitace ve Flatlandu (23.4 vs 23.6) + - 1954: Chceme vodu (nepublikováno) (21.3 vs 21.6) From 3330fd5a9ffc2a0f64d3d36d5687fb9e497f5df5 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 19 Aug 2020 20:28:51 +0200 Subject: [PATCH 65/80] =?UTF-8?q?Migrace=200084=20nem=C3=A1=20padat,=20ale?= =?UTF-8?q?=20logovat.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MIGRATIONS | 2 ++ seminar/migrations/0084_clanek_cislo.py | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/MIGRATIONS b/MIGRATIONS index d2f07be8..2c2ef671 100644 --- a/MIGRATIONS +++ b/MIGRATIONS @@ -6,3 +6,5 @@ Jak zvládnout migrace na nový model: - 2130: Definice čísel (23.6 vs 23.7) - 2143: Gravitace ve Flatlandu (23.4 vs 23.6) - 1954: Chceme vodu (nepublikováno) (21.3 vs 21.6) + +- V mojí verzi databáze mají úlohy-Problémy typ "b'uloha'" diff --git a/seminar/migrations/0084_clanek_cislo.py b/seminar/migrations/0084_clanek_cislo.py index 5de1fefa..7a211fa6 100644 --- a/seminar/migrations/0084_clanek_cislo.py +++ b/seminar/migrations/0084_clanek_cislo.py @@ -4,6 +4,9 @@ from django.db import migrations, models import django.db.models.deletion from seminar.treelib import get_parent +import logging +logger = logging.getLogger(__name__) + def najdi_cislo(apps, schema_editor): Clanek = apps.get_model('seminar', 'Clanek') Hodnoceni = apps.get_model('seminar', 'Hodnoceni') @@ -15,7 +18,10 @@ def najdi_cislo(apps, schema_editor): for c in Clanek.objects.all(): reseni = c.reseni_set if (reseni.count() != 1): # Pozor, reseni_set je Manager, takže se na něj musí trošku jinak - raise ValueError("Článek k sobě má nejedno řešení!") + logger.warn(f"Více než jedno řešení pro článek {c}") + c.cislo = None + c.save() + continue r = reseni.first() aktualniNode = r.text_cely # Hlavní ReseniNode pro řešení while aktualniNode is not None: From ea41f8259599b95898d1e11498d0af3254fbf7ce Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 19 Aug 2020 20:59:16 +0200 Subject: [PATCH 66/80] Revert "SMAZAT: Upravy pro upgrade" This reverts commit 4dba5919dedda214300b94d68975717f2c411d94. Conflicts: Makefile --- Makefile | 17 +++++++++++++---- mamweb/settings_prod.py | 9 ++++----- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index e17e073f..a9d2e082 100644 --- a/Makefile +++ b/Makefile @@ -64,8 +64,10 @@ schema_all.pdf: venv_check # Deploy to current *mamweb-test* directory deploy_test: venv_check - @echo "Installing version from origin/pseudo_test ..." - git pull origin pseudo_test + @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi + @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in directory mamweb-test"; exit 1; fi + @echo "Installing version from origin/test ..." + git pull origin test git clean -f make install ./manage.py migrate @@ -78,8 +80,12 @@ deploy_test: venv_check # Deploy to current *mamweb-prod* directory deploy_prod: venv_check - @echo "Installing version from origin/pseudo_master ..." - git pull origin pseudo_master + @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi + @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-prod" ]; then echo "Only possible in directory mamweb-prod"; exit 1; fi + @echo "Backing up production DB ..." + ( cd -P .. && ./backup_prod_db.sh ) + @echo "Installing version from origin/master ..." + git pull origin master git clean -f make install ./manage.py migrate @@ -102,10 +108,13 @@ sync_prod_flatpages: venv_check # Sync test media directory with production sync_test_media: + @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi + @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in /akce/mam/www/mamweb-test"; exit 1; fi rsync -av --delete /akce/mam/www/mamweb-prod/media/ ./media # Sync test database with production database sync_test_db: + @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi pg_dump mam_test > dump-test-`date +"%Y%m%d_%H%M"`.sql pg_dump -Fc mam_prod > dump-prod.sql pg_restore -c -d mam_test dump-prod.sql diff --git a/mamweb/settings_prod.py b/mamweb/settings_prod.py index 234e2949..1c223842 100644 --- a/mamweb/settings_prod.py +++ b/mamweb/settings_prod.py @@ -28,8 +28,7 @@ DEBUG = False TEMPLATE_DEBUG = False ALLOWED_HOSTS = ['mam.mff.cuni.cz', 'www.mam.mff.cuni.cz', 'atrey.karlin.mff.cuni.cz', - 'mamweb.bezva.org','gimli.ms.mff.cuni.cz', - 'localhost'] + 'mamweb.bezva.org','gimli.ms.mff.cuni.cz'] # Database # https://docs.djangoproject.com/en/1.7/ref/settings/#databases @@ -38,7 +37,7 @@ DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'mam_prod', - 'USER': 'user', + 'USER': 'mam-web', 'TEST': { 'NAME': 'mam-prod-testdb', }, @@ -47,8 +46,8 @@ DATABASES = { import os -SERVER_EMAIL = 'mamweb-prod-errors@pokemon.ledoian.cz' -ADMINS = [('M&M ERRORs', 'mam-errors@pokemon.ledoian.cz')] +SERVER_EMAIL = 'mamweb-prod-errors@mam.mff.cuni.cz' +ADMINS = [('M&M ERRORs', 'mam-errors@mam.mff.cuni.cz')] # SECURITY: only send sensitive cookies via HTTPS From 2df9f1d8bced18bb0c0b238d1b78854f21f7d53f Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 19 Aug 2020 22:25:26 +0200 Subject: [PATCH 67/80] =?UTF-8?q?P=C3=A1r=20vy=C5=99e=C5=A1en=C3=BDch=20pr?= =?UTF-8?q?obl=C3=A9m=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MIGRATIONS | 7 ------- 1 file changed, 7 deletions(-) diff --git a/MIGRATIONS b/MIGRATIONS index 2c2ef671..2bfd0dca 100644 --- a/MIGRATIONS +++ b/MIGRATIONS @@ -1,10 +1,3 @@ Jak zvládnout migrace na nový model: -- Mail Toma Sourady (User vs Resitel) - -- Články s nekompatibilním zadáním a řešením: - - 2130: Definice čísel (23.6 vs 23.7) - - 2143: Gravitace ve Flatlandu (23.4 vs 23.6) - - 1954: Chceme vodu (nepublikováno) (21.3 vs 21.6) - - V mojí verzi databáze mají úlohy-Problémy typ "b'uloha'" From 3de0b5ca1dadef139e8049b7e15c772a041e096f Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 19 Aug 2020 22:43:31 +0200 Subject: [PATCH 68/80] =?UTF-8?q?Nov=C3=A9=20django:=20zm=C4=9Bna=20jm?= =?UTF-8?q?=C3=A9na=20konfigura=C4=8Dn=C3=AD=20prom=C4=9Bnn=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mamweb/settings_test.py b/mamweb/settings_test.py index 8ad2c76f..e8af9a88 100644 --- a/mamweb/settings_test.py +++ b/mamweb/settings_test.py @@ -12,7 +12,7 @@ import os.path # Import common settings from .settings_common import * # zatim nutne, casem snad vyresime # noqa -MIDDLEWARE_CLASSES += ( +MIDDLEWARE += ( 'debug_toolbar.middleware.DebugToolbarMiddleware', ) From 614d795b6aa9b6e89f12aa4c3a328c7795811fdf Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 19 Aug 2020 23:45:22 +0200 Subject: [PATCH 69/80] =?UTF-8?q?Zlobiv=C3=A1=200058=20m=C3=A1=20taky=20lo?= =?UTF-8?q?govat,=20aspo=C5=88=20do=C4=8Dasn=C4=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/migrations/0058_problem_to_uloha_tema_clanek.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/seminar/migrations/0058_problem_to_uloha_tema_clanek.py b/seminar/migrations/0058_problem_to_uloha_tema_clanek.py index 333f5453..1b170eb8 100644 --- a/seminar/migrations/0058_problem_to_uloha_tema_clanek.py +++ b/seminar/migrations/0058_problem_to_uloha_tema_clanek.py @@ -6,6 +6,9 @@ from django.db import migrations from django.db.models import Q +import logging +logger = logging.getLogger(__name__) + def poskladej_strom(apps, rodic, *texty): Text = apps.get_model('seminar', 'Text') TextNode = apps.get_model('seminar', 'TextNode') @@ -42,6 +45,7 @@ def uloha_to_Uloha(apps,schema_editor): ulohy = Problem.objects.filter(typ = 'uloha') for uold in ulohy: + logger.debug('u') unew = Uloha.objects.create( problem_ptr = uold, # Zakomentované fieldy by se už měly nacházet v příslušném problému @@ -83,6 +87,7 @@ def clanek_to_Clanek(apps,schema_editor): clanky = Problem.objects.filter(Q(typ='org-clanek') | Q(typ='res-clanek')) for cl in clanky: + logger.debug('c') # Vybereme vhodné číslo pro článek z čísla zadání a čísla řešení: if cl.cislo_zadani_old is None: cislo = cl.cislo_reseni_old @@ -121,6 +126,7 @@ def tema_to_Tema(apps, schema_editor): temata = Problem.objects.filter(Q(typ = 'tema') | Q(typ='serial')) for t in temata: + logger.debug('t') # Vymyslíme správně ročník: if t.cislo_zadani_old is None and t.cislo_reseni_old is None: rocnik = None From 325cb73cd49d6a14854ee75595540ca06e49ce19 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 19 Aug 2020 23:59:28 +0200 Subject: [PATCH 70/80] Loglevel --- seminar/migrations/0058_problem_to_uloha_tema_clanek.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/seminar/migrations/0058_problem_to_uloha_tema_clanek.py b/seminar/migrations/0058_problem_to_uloha_tema_clanek.py index 1b170eb8..2f86b89f 100644 --- a/seminar/migrations/0058_problem_to_uloha_tema_clanek.py +++ b/seminar/migrations/0058_problem_to_uloha_tema_clanek.py @@ -45,7 +45,7 @@ def uloha_to_Uloha(apps,schema_editor): ulohy = Problem.objects.filter(typ = 'uloha') for uold in ulohy: - logger.debug('u') + logger.info('u') unew = Uloha.objects.create( problem_ptr = uold, # Zakomentované fieldy by se už měly nacházet v příslušném problému @@ -87,7 +87,7 @@ def clanek_to_Clanek(apps,schema_editor): clanky = Problem.objects.filter(Q(typ='org-clanek') | Q(typ='res-clanek')) for cl in clanky: - logger.debug('c') + logger.info('c') # Vybereme vhodné číslo pro článek z čísla zadání a čísla řešení: if cl.cislo_zadani_old is None: cislo = cl.cislo_reseni_old @@ -126,7 +126,7 @@ def tema_to_Tema(apps, schema_editor): temata = Problem.objects.filter(Q(typ = 'tema') | Q(typ='serial')) for t in temata: - logger.debug('t') + logger.info('t') # Vymyslíme správně ročník: if t.cislo_zadani_old is None and t.cislo_reseni_old is None: rocnik = None From 21a549af18d748aea1d1cbc4cbd4d3ad6e865208 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 20 Aug 2020 00:02:49 +0200 Subject: [PATCH 71/80] =?UTF-8?q?J=C3=A1=20to=20chci=20vid=C4=9Bt...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/migrations/0058_problem_to_uloha_tema_clanek.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/seminar/migrations/0058_problem_to_uloha_tema_clanek.py b/seminar/migrations/0058_problem_to_uloha_tema_clanek.py index 2f86b89f..509ac938 100644 --- a/seminar/migrations/0058_problem_to_uloha_tema_clanek.py +++ b/seminar/migrations/0058_problem_to_uloha_tema_clanek.py @@ -6,9 +6,6 @@ from django.db import migrations from django.db.models import Q -import logging -logger = logging.getLogger(__name__) - def poskladej_strom(apps, rodic, *texty): Text = apps.get_model('seminar', 'Text') TextNode = apps.get_model('seminar', 'TextNode') @@ -45,7 +42,7 @@ def uloha_to_Uloha(apps,schema_editor): ulohy = Problem.objects.filter(typ = 'uloha') for uold in ulohy: - logger.info('u') + print('u') unew = Uloha.objects.create( problem_ptr = uold, # Zakomentované fieldy by se už měly nacházet v příslušném problému @@ -87,7 +84,7 @@ def clanek_to_Clanek(apps,schema_editor): clanky = Problem.objects.filter(Q(typ='org-clanek') | Q(typ='res-clanek')) for cl in clanky: - logger.info('c') + print('c') # Vybereme vhodné číslo pro článek z čísla zadání a čísla řešení: if cl.cislo_zadani_old is None: cislo = cl.cislo_reseni_old @@ -126,7 +123,7 @@ def tema_to_Tema(apps, schema_editor): temata = Problem.objects.filter(Q(typ = 'tema') | Q(typ='serial')) for t in temata: - logger.info('t') + print('t') # Vymyslíme správně ročník: if t.cislo_zadani_old is None and t.cislo_reseni_old is None: rocnik = None From 3a56eafa59e6e698b7be82d0d87ff4902d2e6984 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 20 Aug 2020 00:34:14 +0200 Subject: [PATCH 72/80] =?UTF-8?q?Opravn=C3=A1=20migrace,=20proto=C5=BEe=20?= =?UTF-8?q?to=20prost=C4=9B=20nefungovalo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kdyby to byl býval RunSQL, byl to oneliner... --- .../migrations/0059_vytvorit_pohadkanode.py | 2 +- seminar/migrations/fix_0058.py | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 seminar/migrations/fix_0058.py diff --git a/seminar/migrations/0059_vytvorit_pohadkanode.py b/seminar/migrations/0059_vytvorit_pohadkanode.py index 7ff7c655..d0edd677 100644 --- a/seminar/migrations/0059_vytvorit_pohadkanode.py +++ b/seminar/migrations/0059_vytvorit_pohadkanode.py @@ -21,7 +21,7 @@ def vytvor_pohadkanode(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ('seminar', '0058_problem_to_uloha_tema_clanek'), + ('seminar', 'fix_0058'), ] operations = [ diff --git a/seminar/migrations/fix_0058.py b/seminar/migrations/fix_0058.py new file mode 100644 index 00000000..e344d237 --- /dev/null +++ b/seminar/migrations/fix_0058.py @@ -0,0 +1,19 @@ +from django.db import migrations + +def oprav_ulohy(apps, schema_editor): + Problem = apps.get_model('seminar', 'Pohadka') + + for p in Problem.objects.filter(typ="b'uloha'"): + p.typ = "uloha" + p.save() + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0058_problem_to_uloha_tema_clanek'), + ] + + operations = [ + migrations.RunPython(oprav_ulohy, oprav_ulohy), + ] + From 54e728d2be2ce6b25d4f0e8cc196f0acb8c14d80 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 20 Aug 2020 00:40:50 +0200 Subject: [PATCH 73/80] =?UTF-8?q?A=20nakonec=20to=20stejn=C4=9B=20SQL=20je?= =?UTF-8?q?...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/migrations/fix_0058.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/seminar/migrations/fix_0058.py b/seminar/migrations/fix_0058.py index e344d237..ac36d0a0 100644 --- a/seminar/migrations/fix_0058.py +++ b/seminar/migrations/fix_0058.py @@ -1,11 +1,6 @@ from django.db import migrations -def oprav_ulohy(apps, schema_editor): - Problem = apps.get_model('seminar', 'Pohadka') - - for p in Problem.objects.filter(typ="b'uloha'"): - p.typ = "uloha" - p.save() +sql = "update seminar_problemy set typ = 'uloha' where typ like 'b_uloha_';" class Migration(migrations.Migration): @@ -14,6 +9,6 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RunPython(oprav_ulohy, oprav_ulohy), + migrations.RunSQL(sql, sql), ] From 50103535d32a42339f193b56303370f3b3056c76 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 20 Aug 2020 00:41:20 +0200 Subject: [PATCH 74/80] =?UTF-8?q?D=C4=9Bl=C3=A1=20to=20n=C4=9Bco=20=C5=A1p?= =?UTF-8?q?atn=C4=9B,=20ale=20tyhle=20printy=20nepom=C5=AF=C5=BEou?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/migrations/0058_problem_to_uloha_tema_clanek.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/seminar/migrations/0058_problem_to_uloha_tema_clanek.py b/seminar/migrations/0058_problem_to_uloha_tema_clanek.py index 509ac938..333f5453 100644 --- a/seminar/migrations/0058_problem_to_uloha_tema_clanek.py +++ b/seminar/migrations/0058_problem_to_uloha_tema_clanek.py @@ -42,7 +42,6 @@ def uloha_to_Uloha(apps,schema_editor): ulohy = Problem.objects.filter(typ = 'uloha') for uold in ulohy: - print('u') unew = Uloha.objects.create( problem_ptr = uold, # Zakomentované fieldy by se už měly nacházet v příslušném problému @@ -84,7 +83,6 @@ def clanek_to_Clanek(apps,schema_editor): clanky = Problem.objects.filter(Q(typ='org-clanek') | Q(typ='res-clanek')) for cl in clanky: - print('c') # Vybereme vhodné číslo pro článek z čísla zadání a čísla řešení: if cl.cislo_zadani_old is None: cislo = cl.cislo_reseni_old @@ -123,7 +121,6 @@ def tema_to_Tema(apps, schema_editor): temata = Problem.objects.filter(Q(typ = 'tema') | Q(typ='serial')) for t in temata: - print('t') # Vymyslíme správně ročník: if t.cislo_zadani_old is None and t.cislo_reseni_old is None: rocnik = None From 575ccf5b3f23770ca6e2d89c2bcd4652c97f9ab4 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 20 Aug 2020 00:49:51 +0200 Subject: [PATCH 75/80] =?UTF-8?q?Log=20migrace,=20a=C5=A5=20se=20v=C3=AD,?= =?UTF-8?q?=20co=20se=20nepovedlo=20a=20d=C3=A1=20se=20to=20dochytat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MIGRATIONS | 184 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) diff --git a/MIGRATIONS b/MIGRATIONS index 2bfd0dca..3cf73ac4 100644 --- a/MIGRATIONS +++ b/MIGRATIONS @@ -1,3 +1,187 @@ Jak zvládnout migrace na nový model: - V mojí verzi databáze mají úlohy-Problémy typ "b'uloha'" + + +Log migrace na nový model: + +Operations to perform: + Apply all migrations: admin, auth, contenttypes, django_comments, flatpages, fluent_comments, galerie, korektury, prednasky, reversion, seminar, sessions, sites, sitetree, taggit, threadedcomments +Running migrations: + Applying admin.0003_logentry_add_action_flag_choices... OK + Applying auth.0009_alter_user_last_name_max_length... OK + Applying auth.0010_alter_group_name_max_length... OK + Applying auth.0011_update_proxy_permissions... OK + Applying galerie.0008_auto_20190430_2340... OK + Applying galerie.0009_auto_20190610_2358... OK + Applying galerie.0010_auto_20200819_0947... OK + Applying korektury.0016_auto_20190430_2340... OK + Applying korektury.0017_auto_20190610_2358... OK + Applying prednasky.0011_auto_20190430_2340... OK + Applying prednasky.0012_auto_20190610_2358... OK + Applying seminar.0049_auto_20190430_2354... OK + Applying seminar.0050_auto_20190510_2228... OK + Applying seminar.0051_resitel_to_osoba... OK + Applying seminar.0052_user_to_organizator... OK +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2004-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (1998-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2017-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2017-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2014-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2011-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2013-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2004-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2013-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2012-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2007-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2011-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2009-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2009-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2008-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2005-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2015-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2001-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2010-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2008-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2006-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2002-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2005-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (1999-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2003-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2000-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2002-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2001-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (1996-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2000-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (1999-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (1996-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (1994-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2012-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2016-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2018-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2014-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2019-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2006-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (1995-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_do received a naive datetime (2007-12-31 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2015-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2016-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2018-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2019-01-01 00:00:00) while time zone support is active. + RuntimeWarning) +/aux/akce/mam/www/mamweb-test/env/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1427: RuntimeWarning: DateTimeField Organizator.organizuje_od received a naive datetime (2020-01-01 00:00:00) while time zone support is active. + RuntimeWarning) + Applying seminar.0053_organizator_organizuje_od_do... OK + Applying seminar.0055_smazat_nemigrovane_zastarale_veci... OK + Applying seminar.0056_vrcholy_pro_rocniky_a_cisla... OK + Applying seminar.0057_reseni_to_reseni_hodnoceni...!!!!!!!!!!!!!!! +31397 Reseni object (31397) +!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!! +31396 Reseni object (31396) +!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!! +31395 Reseni object (31395) +!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!! +31394 Reseni object (31394) +!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!! +31393 Reseni object (31393) +!!!!!!!!!!!!!!! + OK + Applying seminar.0058_problem_to_uloha_tema_clanek... OK + Applying seminar.fix_0058... OK + Applying seminar.0059_vytvorit_pohadkanode... OK + Applying seminar.0060_spoj_stromy... OK + Applying seminar.0061_kill_frankenstein... OK + Applying seminar.0062_redukce_modelu_pohadky... OK + Applying seminar.0063_procisteni_migraci... OK + Applying seminar.0064_auto_20190610_2358... OK + Applying seminar.0065_treenode_polymorphic_ctype... OK + Applying seminar.0066_problem_polymorphic_ctype... OK + Applying seminar.0067_auto_20190814_0805... OK + Applying seminar.0068_treenode_nazev... OK + Applying seminar.0069_auto_20191120_2115... OK + Applying seminar.0070_auto_20191120_2357... OK + Applying seminar.0071_remove_nastaveni_aktualni_rocnik... OK + Applying seminar.0072_auto_20191204_2257... OK + Applying seminar.0073_copy_osoba_email_to_user_email... OK + Applying seminar.0074_auto_20200228_1401... OK + Applying seminar.0075_auto_20200228_2010... OK + Applying seminar.0076_auto_20200228_2013... OK + Applying seminar.0077_auto_20200318_2146... OK + Applying seminar.0078_otistenereseninode... OK + Applying seminar.0079_clanek_resitelsky... OK + Applying seminar.0080_zruseni_claneknode_a_konferanode... OK + Applying seminar.0081_auto_20200408_2221... OK + Applying seminar.0082_auto_20200506_1951... OK + Applying seminar.0083_auto_20200506_1952... OK +WARNING 2020-08-20 00:49:07,941 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (2215) +WARNING 2020-08-20 00:49:07,953 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (2221) +WARNING 2020-08-20 00:49:07,959 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (2212) +WARNING 2020-08-20 00:49:07,965 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (1955) +WARNING 2020-08-20 00:49:07,968 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (2027) +WARNING 2020-08-20 00:49:07,971 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (1981) +WARNING 2020-08-20 00:49:07,974 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (1970) +WARNING 2020-08-20 00:49:07,978 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (2001) +WARNING 2020-08-20 00:49:07,981 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (2004) +WARNING 2020-08-20 00:49:07,984 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (1941) +WARNING 2020-08-20 00:49:07,990 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (2024) +WARNING 2020-08-20 00:49:07,993 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (2031) +WARNING 2020-08-20 00:49:07,997 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (2211) +WARNING 2020-08-20 00:49:08,005 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (2073) +WARNING 2020-08-20 00:49:08,017 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (2018) +WARNING 2020-08-20 00:49:08,022 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (2222) +WARNING 2020-08-20 00:49:08,028 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (1953) +WARNING 2020-08-20 00:49:08,034 0084_clanek_cislo: Více než jedno řešení pro článek Clanek object (2026) + Applying seminar.0084_clanek_cislo... OK + Applying seminar.0085_nepovinna_prezdivka... OK + Applying seminar.0086_auto_20200819_0959... OK + Applying sitetree.0001_initial... OK + Applying taggit.0003_taggeditem_add_unique_index... OK + From 7fb76947983d38e7e562b00fbd8e2563c562f91d Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 20 Aug 2020 00:54:40 +0200 Subject: [PATCH 76/80] Fix squashed migration --- .../migrations/0001_squashed_0067_auto_20190814_0805.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/seminar/migrations/0001_squashed_0067_auto_20190814_0805.py b/seminar/migrations/0001_squashed_0067_auto_20190814_0805.py index 05d5f265..653a9eaf 100644 --- a/seminar/migrations/0001_squashed_0067_auto_20190814_0805.py +++ b/seminar/migrations/0001_squashed_0067_auto_20190814_0805.py @@ -511,7 +511,7 @@ def vyrob_problemum_ctypes(apps, schema_editor): class Migration(migrations.Migration): atomic = False - replaces = [('seminar', '0001_initial'), ('seminar', '0002_add_body_views'), ('seminar', '0003_add_skola_zs_ss'), ('seminar', '0004_add_old_dakos_id'), ('seminar', '0005_alter_problem_autor'), ('seminar', '0006_problem_add_timestamp'), ('seminar', '0007_problem_zamereni'), ('seminar', '0008_reseni_forma'), ('seminar', '0009_rename_imported_IDs'), ('seminar', '0010_alter_rok_maturity'), ('seminar', '0011_alter_timestamp_def'), ('seminar', '0012_remove_soustredeni_ucastnici'), ('seminar', '0013_soustredeni_ucastnici_through_model'), ('seminar', '0014_uprava_poznamek'), ('seminar', '0015_soustredeni_text'), ('seminar', '0016_texty_problemu'), ('seminar', '0017_texty_problemu_minor'), ('seminar', '0018_problemnavrh_problemzadany'), ('seminar', '0019_rocnik_ciselne'), ('seminar', '0020_indexy_a_razeni'), ('seminar', '0021_cislo_verejna_vysledkovka'), ('seminar', '0022_decimal_body'), ('seminar', '0023_add_novinky'), ('seminar', '0024_add_organizator'), ('seminar', '0025_zmena_cesty_nahravani_obrazku'), ('seminar', '0026_soustredeni_typ'), ('seminar', '0027_export_flag_a_typ_akce'), ('seminar', '0028_add_body_celkem_views'), ('seminar', '0029_fix_body_celkem_views'), ('seminar', '0030_add_vysledky'), ('seminar', '0031_cislo_pdf'), ('seminar', '0032_cislo_pdf_blank_typos'), ('seminar', '0033_organizator_studuje_popisek'), ('seminar', '0034_reseni_forma_default_email'), ('seminar', '0035_django_imagekit'), ('seminar', '0036_add_org_to_soustredeni'), ('seminar', '0037_prispevek'), ('seminar', '0038_change_meta_prispevek'), ('seminar', '0039_pohadka'), ('seminar', '0040_pohadka_nepovinny_autor'), ('seminar', '0041_konfery'), ('seminar', '0042_cislo_faze'), ('seminar', '0043_uprava_faze'), ('seminar', '0044_uprava_faze'), ('seminar', '0045_cislo_pridani_faze_nahrano'), ('seminar', '0042_auto_20161005_0847'), ('seminar', '0046_merge'), ('seminar', '0047_auto_20170120_2118'), ('seminar', '0048_add_cislo_datum_deadline_soustredeni'), ('seminar', '0049_auto_20190430_2354'), ('seminar', '0050_auto_20190510_2228'), ('seminar', '0051_resitel_to_osoba'), ('seminar', '0052_user_to_organizator'), ('seminar', '0053_organizator_organizuje_od_do'), ('seminar', '0055_smazat_nemigrovane_zastarale_veci'), ('seminar', '0056_vrcholy_pro_rocniky_a_cisla'), ('seminar', '0057_reseni_to_reseni_hodnoceni'), ('seminar', '0058_problem_to_uloha_tema_clanek'), ('seminar', '0059_vytvorit_pohadkanode'), ('seminar', '0060_spoj_stromy'), ('seminar', '0061_kill_frankenstein'), ('seminar', '0062_redukce_modelu_pohadky'), ('seminar', '0063_procisteni_migraci'), ('seminar', '0064_auto_20190610_2358'), ('seminar', '0065_treenode_polymorphic_ctype'), ('seminar', '0066_problem_polymorphic_ctype'), ('seminar', '0067_auto_20190814_0805')] + replaces = [('seminar', '0001_initial'), ('seminar', '0002_add_body_views'), ('seminar', '0003_add_skola_zs_ss'), ('seminar', '0004_add_old_dakos_id'), ('seminar', '0005_alter_problem_autor'), ('seminar', '0006_problem_add_timestamp'), ('seminar', '0007_problem_zamereni'), ('seminar', '0008_reseni_forma'), ('seminar', '0009_rename_imported_IDs'), ('seminar', '0010_alter_rok_maturity'), ('seminar', '0011_alter_timestamp_def'), ('seminar', '0012_remove_soustredeni_ucastnici'), ('seminar', '0013_soustredeni_ucastnici_through_model'), ('seminar', '0014_uprava_poznamek'), ('seminar', '0015_soustredeni_text'), ('seminar', '0016_texty_problemu'), ('seminar', '0017_texty_problemu_minor'), ('seminar', '0018_problemnavrh_problemzadany'), ('seminar', '0019_rocnik_ciselne'), ('seminar', '0020_indexy_a_razeni'), ('seminar', '0021_cislo_verejna_vysledkovka'), ('seminar', '0022_decimal_body'), ('seminar', '0023_add_novinky'), ('seminar', '0024_add_organizator'), ('seminar', '0025_zmena_cesty_nahravani_obrazku'), ('seminar', '0026_soustredeni_typ'), ('seminar', '0027_export_flag_a_typ_akce'), ('seminar', '0028_add_body_celkem_views'), ('seminar', '0029_fix_body_celkem_views'), ('seminar', '0030_add_vysledky'), ('seminar', '0031_cislo_pdf'), ('seminar', '0032_cislo_pdf_blank_typos'), ('seminar', '0033_organizator_studuje_popisek'), ('seminar', '0034_reseni_forma_default_email'), ('seminar', '0035_django_imagekit'), ('seminar', '0036_add_org_to_soustredeni'), ('seminar', '0037_prispevek'), ('seminar', '0038_change_meta_prispevek'), ('seminar', '0039_pohadka'), ('seminar', '0040_pohadka_nepovinny_autor'), ('seminar', '0041_konfery'), ('seminar', '0042_cislo_faze'), ('seminar', '0043_uprava_faze'), ('seminar', '0044_uprava_faze'), ('seminar', '0045_cislo_pridani_faze_nahrano'), ('seminar', '0042_auto_20161005_0847'), ('seminar', '0046_merge'), ('seminar', '0047_auto_20170120_2118'), ('seminar', '0048_add_cislo_datum_deadline_soustredeni'), ('seminar', '0049_auto_20190430_2354'), ('seminar', '0050_auto_20190510_2228'), ('seminar', '0051_resitel_to_osoba'), ('seminar', '0052_user_to_organizator'), ('seminar', '0053_organizator_organizuje_od_do'), ('seminar', '0055_smazat_nemigrovane_zastarale_veci'), ('seminar', '0056_vrcholy_pro_rocniky_a_cisla'), ('seminar', '0057_reseni_to_reseni_hodnoceni'), ('seminar', '0058_problem_to_uloha_tema_clanek'), ('seminar', 'fix_0058'), ('seminar', '0059_vytvorit_pohadkanode'), ('seminar', '0060_spoj_stromy'), ('seminar', '0061_kill_frankenstein'), ('seminar', '0062_redukce_modelu_pohadky'), ('seminar', '0063_procisteni_migraci'), ('seminar', '0064_auto_20190610_2358'), ('seminar', '0065_treenode_polymorphic_ctype'), ('seminar', '0066_problem_polymorphic_ctype'), ('seminar', '0067_auto_20190814_0805')] initial = True @@ -1816,6 +1816,12 @@ class Migration(migrations.Migration): konfery_rucne, ), + # migr "fix 0058" + migtations.RunSQL( + "update seminar_problemy set typ = 'uloha' where typ like 'b_uloha_';", + "update seminar_problemy set typ = 'uloha' where typ like 'b_uloha_';" + ), + # migr 0059 migrations.RunPython( vytvor_pohadkanode, From 3153b31b2d2671a921ca46a79147d8f3f842892b Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 20 Aug 2020 00:56:02 +0200 Subject: [PATCH 77/80] Fix typo --- seminar/migrations/0001_squashed_0067_auto_20190814_0805.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/migrations/0001_squashed_0067_auto_20190814_0805.py b/seminar/migrations/0001_squashed_0067_auto_20190814_0805.py index 653a9eaf..5eb3e452 100644 --- a/seminar/migrations/0001_squashed_0067_auto_20190814_0805.py +++ b/seminar/migrations/0001_squashed_0067_auto_20190814_0805.py @@ -1817,7 +1817,7 @@ class Migration(migrations.Migration): ), # migr "fix 0058" - migtations.RunSQL( + migrations.RunSQL( "update seminar_problemy set typ = 'uloha' where typ like 'b_uloha_';", "update seminar_problemy set typ = 'uloha' where typ like 'b_uloha_';" ), From 303c8e4b4b10c23991ee1c53096ce3bd405d3e93 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Fri, 4 Sep 2020 14:27:35 +0200 Subject: [PATCH 78/80] =?UTF-8?q?Oprava=20vytvo=C5=99en=C3=AD=20polymorfic?= =?UTF-8?q?k=C3=BDch=20contenttypes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0065_treenode_polymorphic_ctype.py | 4 +- .../0066_problem_polymorphic_ctype.py | 4 +- seminar/migrations/0087_fix_polymorphism.py | 49 +++++++++++++++++++ 3 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 seminar/migrations/0087_fix_polymorphism.py diff --git a/seminar/migrations/0065_treenode_polymorphic_ctype.py b/seminar/migrations/0065_treenode_polymorphic_ctype.py index 71eef262..cb65d8f1 100644 --- a/seminar/migrations/0065_treenode_polymorphic_ctype.py +++ b/seminar/migrations/0065_treenode_polymorphic_ctype.py @@ -5,7 +5,7 @@ import django.db.models.deletion def vyrob_treenodum_ctypes(apps, schema_editor): # Kód zkopírovaný z dokumentace: https://django-polymorphic.readthedocs.io/en/stable/migrating.html - # XXX: Nevím, jestli se tohle náhodou nemělo spustit na všech childech (jen/i) + # NOTE: Tahle migrace je špatně, 0087 ji opravuje. Možno squashnout pryč. TreeNode = apps.get_model('seminar', 'TreeNode') ContentType = apps.get_model('contenttypes', 'ContentType') @@ -27,5 +27,5 @@ class Migration(migrations.Migration): name='polymorphic_ctype', field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_seminar.treenode_set+', to='contenttypes.ContentType'), ), - migrations.RunPython(vyrob_treenodum_ctypes, migrations.RunPython.noop), + migrations.RunPython(vyrob_treenodum_ctypes, migrations.RunPython.noop, elidable=True), ] diff --git a/seminar/migrations/0066_problem_polymorphic_ctype.py b/seminar/migrations/0066_problem_polymorphic_ctype.py index f956217e..3aab4605 100644 --- a/seminar/migrations/0066_problem_polymorphic_ctype.py +++ b/seminar/migrations/0066_problem_polymorphic_ctype.py @@ -5,7 +5,7 @@ import django.db.models.deletion def vyrob_problemum_ctypes(apps, schema_editor): # Kód zkopírovaný z dokumentace: https://django-polymorphic.readthedocs.io/en/stable/migrating.html - # XXX: Nevím, jestli se tohle náhodou nemělo spustit na všech childech (jen/i) + # NOTE: Tahle migrace je špatně, 0087 ji opravuje. Možno squashnout pryč. Problem = apps.get_model('seminar', 'Problem') ContentType = apps.get_model('contenttypes', 'ContentType') @@ -25,5 +25,5 @@ class Migration(migrations.Migration): name='polymorphic_ctype', field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_seminar.problem_set+', to='contenttypes.ContentType'), ), - migrations.RunPython(vyrob_problemum_ctypes, migrations.RunPython.noop), + migrations.RunPython(vyrob_problemum_ctypes, migrations.RunPython.noop, elidable=True), ] diff --git a/seminar/migrations/0087_fix_polymorphism.py b/seminar/migrations/0087_fix_polymorphism.py new file mode 100644 index 00000000..d38877ba --- /dev/null +++ b/seminar/migrations/0087_fix_polymorphism.py @@ -0,0 +1,49 @@ +# Generated by Django 2.2.16 on 2020-09-04 12:06 + +from django.db import migrations +from logging import getLogger + +log = getLogger(__name__) + +# Oprava migrací 0065 a 0066, kde jsem špatně pochopil django-polymorphic + +# Pomocná funkce -- děláme to samé pro obě polymorfní hierarchie +def fix_ctypes(parent: str, children, apps, schema_editor): + Parent = apps.get_model('seminar', parent) + ContentType = apps.get_model('contenttypes', 'ContentType') + + # Nejdřív všechno smažeme: + Parent.objects.update(polymorphic_ctype=None) + + # Opravíme děti + for clsname in children: + Model = apps.get_model('seminar', clsname) + ct = ContentType.objects.get_for_model(Model) + Model.objects.update(polymorphic_ctype=ct) + + + # Ostatní instance mají mít explicitně content type pro rodiče + new_ct = ContentType.objects.get_for_model(Parent) + for obj in Parent.objects.filter(polymorphic_ctype__isnull=True): + log.warn(f"{parent} {obj} neměl content type -- nejspíš to je instance přímo {parent}!") + obj.polymorphic_ctype=new_ct + obj.save() + +def fix_treenode(apps, schema_editor): + children = ['RocnikNode', 'CisloNode', 'MezicisloNode', 'TemaVCisleNode', + 'OrgTextNode', 'UlohaZadaniNode', 'UlohaVzorakNode', 'PohadkaNode', + 'TextNode', 'CastNode', 'ReseniNode'] + fix_ctypes("TreeNode", children, apps, schema_editor) + +def fix_problem(apps, schema_editor): + children = ['Tema', 'Clanek', 'Uloha', 'Konfera'] + fix_ctypes("Problem", children, apps, schema_editor) + +class Migration(migrations.Migration): + dependencies = [ + ('seminar', '0086_auto_20200819_0959'), + ] + operations = [ + migrations.RunPython(fix_treenode, migrations.RunPython.noop), + migrations.RunPython(fix_problem, migrations.RunPython.noop), + ] From f26f4a5c0fc65b031860e410dc4ecb3709d72170 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Fri, 4 Sep 2020 14:32:58 +0200 Subject: [PATCH 79/80] Fix --- seminar/migrations/0087_fix_polymorphism.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seminar/migrations/0087_fix_polymorphism.py b/seminar/migrations/0087_fix_polymorphism.py index d38877ba..40ce9adf 100644 --- a/seminar/migrations/0087_fix_polymorphism.py +++ b/seminar/migrations/0087_fix_polymorphism.py @@ -25,7 +25,7 @@ def fix_ctypes(parent: str, children, apps, schema_editor): # Ostatní instance mají mít explicitně content type pro rodiče new_ct = ContentType.objects.get_for_model(Parent) for obj in Parent.objects.filter(polymorphic_ctype__isnull=True): - log.warn(f"{parent} {obj} neměl content type -- nejspíš to je instance přímo {parent}!") + log.warn(f"{parent} \"{obj}\" neměl content type -- nejspíš to je instance přímo {parent}!") obj.polymorphic_ctype=new_ct obj.save() @@ -36,7 +36,7 @@ def fix_treenode(apps, schema_editor): fix_ctypes("TreeNode", children, apps, schema_editor) def fix_problem(apps, schema_editor): - children = ['Tema', 'Clanek', 'Uloha', 'Konfera'] + children = ['Tema', 'Clanek', 'Uloha'] # FIXME: Konfera z nějakého důvodu tenhle field vůbec nemá, asi je to špatně. fix_ctypes("Problem", children, apps, schema_editor) class Migration(migrations.Migration): From f1ef0eab077268aaaf327486634fd92a4eff9b35 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Fri, 4 Sep 2020 14:41:01 +0200 Subject: [PATCH 80/80] =?UTF-8?q?Fix=20reference=20ji=C5=BE=20neexistuj?= =?UTF-8?q?=C3=ADc=C3=ADho=20template?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/treenode.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/templates/seminar/treenode.html b/seminar/templates/seminar/treenode.html index 0fd734ef..ca4df002 100644 --- a/seminar/templates/seminar/treenode.html +++ b/seminar/templates/seminar/treenode.html @@ -1,4 +1,4 @@ -{% extends "seminar/archiv/base_ulohy.html" %} +{% extends "seminar/archiv/base.html" %} {% load comments %}