Merge branch 'treenode_editor' of gimli.ms.mff.cuni.cz:/akce/mam/git/mamweb into treenode_editor
							
								
								
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						|  | @ -24,3 +24,9 @@ TODO | |||
| 
 | ||||
| # .htpasswd kvůli přihlášení | ||||
| .htpasswd | ||||
| 
 | ||||
| # reversion kvůli historii objektů v reversion | ||||
| **/reversion | ||||
| 
 | ||||
| # pro lidi, co programují v nástrojích od JetBrains | ||||
| .idea | ||||
							
								
								
									
										187
									
								
								MIGRATIONS
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +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 | ||||
| 
 | ||||
							
								
								
									
										17
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						|  | @ -15,6 +15,9 @@ all: | |||
| 	#	. ${VENV_PATH}/bin/activate | ||||
| 	#	make install_web | ||||
| 	# | ||||
| 	# Pokud install_web říká Error: pg_config executable not found. nainstaluj si libpq-dev | ||||
| 	# Pokud chybová hláška obsahuje #include <Python.h>, nainstaluj si python3-dev | ||||
| 	# | ||||
| 	# Až skončíš s vývojem webu, spusť "deactivate". Tím zmizí '(${VENV_PATH})' ze začátku promptu. | ||||
| 
 | ||||
| venv_check: | ||||
|  | @ -64,7 +67,7 @@ schema_all.pdf: venv_check | |||
| # Deploy to current *mamweb-test* directory
 | ||||
| deploy_test: venv_check | ||||
| 	@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 | ||||
|  | @ -80,9 +83,9 @@ deploy_test: venv_check | |||
| # Deploy to current *mamweb-prod* directory
 | ||||
| deploy_prod: venv_check | ||||
| 	@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 ) | ||||
| 	( cd -P .. && ./backup_prod_db.sh ) | ||||
| 	@echo "Installing version from origin/master ..." | ||||
| 	git pull origin master | ||||
| 	git clean -f | ||||
|  | @ -108,7 +111,7 @@ 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 [ `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
 | ||||
|  | @ -138,3 +141,9 @@ sync_local_db: | |||
| 
 | ||||
| # Sync database and media. See above lines
 | ||||
| sync_local: sync_local_media sync_local_db | ||||
| 
 | ||||
| # Push local compiled Vue to gimli test site
 | ||||
| push_compiled_vue_to_test: | ||||
| 	scp vue_frontend/webpack-stats.json mam-web@gimli:/akce/mam/www/mamweb-test/vue_frontend/ | ||||
| 	rsync -ave ssh seminar/static/seminar/vue mam-web@gimli:/akce/mam/www/mamweb-test/seminar/static/seminar/ | ||||
| 	ssh mam-web@gimli.ms.mff.cuni.cz 'cd /akce/mam/www/mamweb-test/ && . env/bin/activate && ./manage.py collectstatic --noinput' | ||||
|  |  | |||
							
								
								
									
										207
									
								
								data/fotka_header.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,207 @@ | |||
| [ | ||||
| { | ||||
|   "model": "header_fotky.fotkaheader", | ||||
|   "pk": "baliky.jpg", | ||||
|   "fields": { | ||||
|     "cas": "2020-09-20T09:18:34.562Z", | ||||
|     "fotka": "header/baliky.jpg" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaheader", | ||||
|   "pk": "beh.jpg", | ||||
|   "fields": { | ||||
|     "cas": "2020-09-20T09:18:34.562Z", | ||||
|     "fotka": "header/beh.jpg" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaheader", | ||||
|   "pk": "kryptografie.jpg", | ||||
|   "fields": { | ||||
|     "cas": "2020-09-20T09:18:34.562Z", | ||||
|     "fotka": "header/kryptografie.jpg" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaheader", | ||||
|   "pk": "mam_cernobile.jpg", | ||||
|   "fields": { | ||||
|     "cas": "2020-09-20T09:18:34.562Z", | ||||
|     "fotka": "header/mam_cernobile.jpg" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaheader", | ||||
|   "pk": "noc.jpg", | ||||
|   "fields": { | ||||
|     "cas": "2020-09-20T09:18:34.562Z", | ||||
|     "fotka": "header/noc.jpg" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaheader", | ||||
|   "pk": "ohen.jpg", | ||||
|   "fields": { | ||||
|     "cas": "2020-09-20T09:18:34.562Z", | ||||
|     "fotka": "header/ohen.jpg" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaheader", | ||||
|   "pk": "snih.jpg", | ||||
|   "fields": { | ||||
|     "cas": "2020-09-20T09:18:34.562Z", | ||||
|     "fotka": "header/snih.jpg" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaheader", | ||||
|   "pk": "spolecna.jpg", | ||||
|   "fields": { | ||||
|     "cas": "2020-09-20T09:18:34.562Z", | ||||
|     "fotka": "header/spolecna.jpg" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaheader", | ||||
|   "pk": "stiny.jpg", | ||||
|   "fields": { | ||||
|     "cas": "2020-09-20T09:18:34.562Z", | ||||
|     "fotka": "header/stiny.jpg" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaheader", | ||||
|   "pk": "vikendovka.jpg", | ||||
|   "fields": { | ||||
|     "cas": "2020-09-20T09:18:34.562Z", | ||||
|     "fotka": "header/vikendovka.jpg" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaheader", | ||||
|   "pk": "vylet.jpg", | ||||
|   "fields": { | ||||
|     "cas": "2020-09-20T09:18:34.562Z", | ||||
|     "fotka": "header/vylet.jpg" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaurlvazba", | ||||
|   "pk": 1, | ||||
|   "fields": { | ||||
|     "url": "/archiv/", | ||||
|     "fotka": "stiny.jpg", | ||||
|     "denni_doba": "oboji" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaurlvazba", | ||||
|   "pk": 2, | ||||
|   "fields": { | ||||
|     "url": "/clanky/", | ||||
|     "fotka": "kryptografie.jpg", | ||||
|     "denni_doba": "den" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaurlvazba", | ||||
|   "pk": 3, | ||||
|   "fields": { | ||||
|     "url": "/clanky/", | ||||
|     "fotka": "ohen.jpg", | ||||
|     "denni_doba": "noc" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaurlvazba", | ||||
|   "pk": 4, | ||||
|   "fields": { | ||||
|     "url": "/zadani/", | ||||
|     "fotka": "baliky.jpg", | ||||
|     "denni_doba": "den" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaurlvazba", | ||||
|   "pk": 5, | ||||
|   "fields": { | ||||
|     "url": "/zadani/", | ||||
|     "fotka": "stiny.jpg", | ||||
|     "denni_doba": "noc" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaurlvazba", | ||||
|   "pk": 6, | ||||
|   "fields": { | ||||
|     "url": "/co-je-MaM/", | ||||
|     "fotka": "vikendovka.jpg", | ||||
|     "denni_doba": "den" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaurlvazba", | ||||
|   "pk": 7, | ||||
|   "fields": { | ||||
|     "url": "/co-je-MaM/", | ||||
|     "fotka": "noc.jpg", | ||||
|     "denni_doba": "noc" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaurlvazba", | ||||
|   "pk": 8, | ||||
|   "fields": { | ||||
|     "url": "/soustredeni/", | ||||
|     "fotka": "beh.jpg", | ||||
|     "denni_doba": "den" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaurlvazba", | ||||
|   "pk": 9, | ||||
|   "fields": { | ||||
|     "url": "/soustredeni/", | ||||
|     "fotka": "vylet.jpg", | ||||
|     "denni_doba": "noc" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaurlvazba", | ||||
|   "pk": 10, | ||||
|   "fields": { | ||||
|     "url": "/login/", | ||||
|     "fotka": "baliky.jpg", | ||||
|     "denni_doba": "den" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaurlvazba", | ||||
|   "pk": 11, | ||||
|   "fields": { | ||||
|     "url": "/login/", | ||||
|     "fotka": "stiny.jpg", | ||||
|     "denni_doba": "noc" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaurlvazba", | ||||
|   "pk": 12, | ||||
|   "fields": { | ||||
|     "url": "/profil/", | ||||
|     "fotka": "baliky.jpg", | ||||
|     "denni_doba": "den" | ||||
|   } | ||||
| }, | ||||
| { | ||||
|   "model": "header_fotky.fotkaurlvazba", | ||||
|   "pk": 13, | ||||
|   "fields": { | ||||
|     "url": "/profil/", | ||||
|     "fotka": "stiny.jpg", | ||||
|     "denni_doba": "noc" | ||||
|   } | ||||
| } | ||||
| ] | ||||
							
								
								
									
										1
									
								
								data/sitetree_new.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -30,14 +30,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') | ||||
| 	search_fields = ['nazev','popis'] | ||||
| 
 | ||||
| class GalerieAdmin(admin.ModelAdmin): | ||||
|  |  | |||
							
								
								
									
										18
									
								
								galerie/migrations/0010_auto_20200819_0947.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,18 @@ | |||
| # Generated by Django 2.2.15 on 2020-08-19 07:47 | ||||
| 
 | ||||
| from django.db import migrations, models | ||||
| 
 | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ('galerie', '0009_auto_20190610_2358'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.AlterField( | ||||
|             model_name='galerie', | ||||
|             name='poradi', | ||||
|             field=models.IntegerField(blank=True, default=0, verbose_name='Pořadí'), | ||||
|         ), | ||||
|     ] | ||||
|  | @ -94,7 +94,7 @@ class Galerie(models.Model): | |||
| 		on_delete=models.SET_NULL) | ||||
| 	soustredeni = models.ForeignKey(Soustredeni, blank = True, null = True, | ||||
| 		on_delete=models.PROTECT) | ||||
| 	poradi = models.IntegerField('Pořadí', blank = True, null = True) | ||||
| 	poradi = models.IntegerField('Pořadí', blank = True, null = False, default = 0) | ||||
| 
 | ||||
| 	def __str__(self): | ||||
| 		return self.nazev | ||||
|  |  | |||
|  | @ -1,6 +0,0 @@ | |||
| {% extends "base.html" %} | ||||
| 
 | ||||
| {# TODO predelat pres context processor #} | ||||
| {% block header %}soustredeni{% endblock %} | ||||
| {% block menu_soustredeni %}selected{% endblock %} | ||||
| {% block submenu %}{% include 'seminar/soustredeni/submenu.html' %}{% endblock %} | ||||
|  | @ -1,4 +1,4 @@ | |||
| {% extends "galerie/Base.html" %} | ||||
| {% extends "base.html" %} | ||||
| 
 | ||||
| 
 | ||||
| {% block nadpis1a %} | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| {% extends "galerie/Base.html" %} | ||||
| {% extends "base.html" %} | ||||
| 
 | ||||
| {% block nadpis1a %} | ||||
| Galerie {{galerie.nazev}} | ||||
|  | @ -61,7 +61,7 @@ Galerie {{galerie.nazev}} | |||
|             {{ galerie|truncatechars:max_delka_nazvu }} | ||||
|             </div> | ||||
|         </a> | ||||
|         {% if user.is_staff and galerie.zobrazit > 0 %} | ||||
|         {% if user.je_org and galerie.zobrazit > 0 %} | ||||
|           <div class="mam-org-only-galerie"> | ||||
|             ({{galerie.poradi}}) | ||||
|             <span class="plus"><a href="plus/{{galerie.pk}}/">+</a></span> | ||||
|  | @ -73,7 +73,7 @@ Galerie {{galerie.nazev}} | |||
|       {% endwith %} | ||||
|     {% endif %} | ||||
|   {% endif %} | ||||
|   {% if user.is_staff and galerie.zobrazit > 0 %} | ||||
|   {% if user.je_org and galerie.zobrazit > 0 %} | ||||
|   <div class="mam-org-only"> | ||||
|       <a href="./new">Vytvořit novou podgalerii </a> | ||||
|   </div> | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| {% extends "galerie/Base.html" %} | ||||
| {% extends "base.html" %} | ||||
| 
 | ||||
| {% block title %}{% block nadpis1a %} | ||||
| Vytvářím novou galerii | ||||
|  |  | |||
|  | @ -1,13 +1,14 @@ | |||
| # coding: utf-8 | ||||
| 
 | ||||
| from django.urls import path | ||||
| from seminar.utils import org_required | ||||
| from . import views | ||||
| 
 | ||||
| urlpatterns = [ | ||||
| 	path('<int:pk>/', views.nahled), | ||||
| 	path('<int:pk>/<int:fotka>/', views.detail), | ||||
| 	path('<int:galerie>/new/', views.new_galerie), | ||||
| 	path('<int:galerie>/plus/<int:subgalerie>/', views.plus_galerie), | ||||
| 	path('<int:galerie>/minus/<int:subgalerie>/', views.minus_galerie), | ||||
| 	path('<int:galerie>/new/', org_required(views.new_galerie)), | ||||
| 	path('<int:galerie>/plus/<int:subgalerie>/', org_required(views.plus_galerie)), | ||||
| 	path('<int:galerie>/minus/<int:subgalerie>/', org_required(views.minus_galerie)), | ||||
| ] | ||||
| 
 | ||||
|  |  | |||
|  | @ -14,7 +14,7 @@ from galerie.forms import KomentarForm, NewGalerieForm | |||
| def zobrazit(galerie, request): | ||||
| 	preview = False | ||||
| 	if galerie.zobrazit >= 1: | ||||
| 		if request.user.is_staff: | ||||
| 		if request.user.je_org: | ||||
| 			preview = True; | ||||
| 		else: | ||||
| 			raise Http404 | ||||
|  | @ -35,16 +35,16 @@ def nahled(request, pk, soustredeni): | |||
| 	galerie = get_object_or_404(Galerie, pk=pk) | ||||
| 
 | ||||
| 	podgalerie = Galerie.objects.filter(galerie_up = galerie).order_by('poradi') | ||||
| 	if not request.user.is_staff: | ||||
| 	if not request.user.je_org: | ||||
| 		podgalerie = podgalerie.filter(zobrazit__lt=1) | ||||
| 
 | ||||
| 	obrazky = Obrazek.objects.filter(galerie = galerie) | ||||
| 	obrazky = Obrazek.objects.filter(galerie = galerie).order_by('poradi', 'nazev') | ||||
| 	preview = zobrazit(galerie, request) | ||||
| 
 | ||||
| 	sourozenci = [] | ||||
| 	if galerie.galerie_up: | ||||
| 		sourozenci = galerie.galerie_up.galerie_set.all().order_by('poradi') | ||||
| 		if not request.user.is_staff: | ||||
| 		if not request.user.je_org: | ||||
| 			sourozenci = sourozenci.filter(zobrazit__lt=1) | ||||
| 
 | ||||
| 	predchozi = None | ||||
|  | @ -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', 'nazev') | ||||
| 
 | ||||
| 	# vytvoreni a obslouzeni formulare | ||||
| 	if request.method == 'POST': | ||||
|  | @ -96,22 +96,23 @@ 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. | ||||
| 		raise Http404 | ||||
| 
 | ||||
| 	 | ||||
| 	# Nacteni okolnich obrazku a galerii | ||||
| 	# TODO vyjmout zjisteni predchozich a nasledujicich galerii | ||||
| 	# 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).\ | ||||
|  | @ -120,10 +121,14 @@ 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):		# 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: | ||||
|  | @ -155,7 +160,6 @@ def detail(request, pk, fotka, soustredeni): | |||
| 		 'cesta': cesta_od_korene(galerie), | ||||
| 		}) | ||||
| 
 | ||||
| 
 | ||||
| def new_galerie(request, galerie, soustredeni): | ||||
| 
 | ||||
| 	# zjistime k jakemu soustredeni se vaze nove vytvarena galerie | ||||
|  |  | |||
							
								
								
									
										0
									
								
								header_fotky/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										10
									
								
								header_fotky/admin.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,10 @@ | |||
| from django.contrib import admin | ||||
| from django.contrib.admin import ModelAdmin | ||||
| import header_fotky.models as m | ||||
| 
 | ||||
| 
 | ||||
| class FotkaPozadiAdmin(ModelAdmin): | ||||
|     readonly_fields = ['cas'] | ||||
| 
 | ||||
| admin.site.register(m.FotkaHeader, FotkaPozadiAdmin) | ||||
| admin.site.register(m.FotkaUrlVazba) | ||||
							
								
								
									
										5
									
								
								header_fotky/apps.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,5 @@ | |||
| from django.apps import AppConfig | ||||
| 
 | ||||
| 
 | ||||
| class HeaderFotkyConfig(AppConfig): | ||||
|     name = 'header_fotky' | ||||
							
								
								
									
										45
									
								
								header_fotky/context_processors.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,45 @@ | |||
| 
 | ||||
| from datetime import datetime, date | ||||
| import random | ||||
| 
 | ||||
| from django.conf import settings | ||||
| 
 | ||||
| from header_fotky.models import FotkaUrlVazba | ||||
| 
 | ||||
| 
 | ||||
| def vzhled(request): | ||||
|     ''' Podle casu prida do templatu, zdali je nebo neni noc ''' | ||||
|     hodin = datetime.now().hour | ||||
|     if (hodin <= 6) or (hodin >= 20): | ||||
|         noc = True | ||||
|         nedoba = 'den' | ||||
|         doba = 'noc' | ||||
|     else: | ||||
|         noc = False | ||||
|         nedoba = 'noc' | ||||
|         doba = 'den' | ||||
|     url = request.path | ||||
| 
 | ||||
|     fotky = FotkaUrlVazba.objects.exclude(denni_doba=nedoba) | ||||
|     fotka = None | ||||
| 
 | ||||
|     # TODO rychlejší patternmatch? | ||||
|     while (fotka is None) and (url != ''): | ||||
|         presne = fotky.filter(url__exact=url) | ||||
|         if presne.count() > 0: | ||||
|             presne_doba = presne.filter(denni_doba=doba) | ||||
|             if presne_doba.count() > 0: | ||||
|                 fotka = random.choice(presne_doba).url_fotky() | ||||
|             else: | ||||
|                 fotka = random.choice(presne).url_fotky() | ||||
| 
 | ||||
|         url = url[:-1] | ||||
|         index = url.rfind('/') | ||||
|         if index != -1: | ||||
|             url = url[:index+1] | ||||
| 
 | ||||
|     if fotka is None: | ||||
|         fotka = settings.STATIC_URL + "images/header/vikendovka.jpg" | ||||
| 
 | ||||
|     return {'noc': noc, 'fotka': fotka} | ||||
| 
 | ||||
							
								
								
									
										63
									
								
								header_fotky/migrations/0001_initial.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,63 @@ | |||
| # Generated by Django 2.2.15 on 2020-09-20 09:14 | ||||
| 
 | ||||
| from django.db import migrations, models | ||||
| import django.db.models.deletion | ||||
| import django.utils.timezone | ||||
| 
 | ||||
| from shutil import copytree | ||||
| 
 | ||||
| 
 | ||||
| def zkopiruj_fotky(apps, schema_editor): | ||||
|     try: | ||||
|         copytree("mamweb/static/images/header/", "media/header/") # FIXME: bylo tu dirs_exists_ok=True, nekompatibilní s Py 3.7 | ||||
|     except FileExistsError: | ||||
|         pass | ||||
| 
 | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
|     initial = True | ||||
| 
 | ||||
|     dependencies = [ | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.CreateModel( | ||||
|             name='FotkaHeader', | ||||
|             fields=[ | ||||
|                 ('cas', models.DateTimeField(default=django.utils.timezone.now, help_text='Čas vložení fotky', | ||||
|                                              verbose_name='čas vložení fotky')), | ||||
|                 ('nazev', | ||||
|                  models.CharField(help_text='Název např. archiv_noc', max_length=50, primary_key=True, serialize=False, | ||||
|                                   unique=True, verbose_name='název fotky')), | ||||
|                 ('fotka', models.ImageField(upload_to='header')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'fotka do pozadí menu', | ||||
|                 'verbose_name_plural': 'fotky do pozadí menu', | ||||
|                 'db_table': 'fotky_header', | ||||
|                 'ordering': ['-cas'], | ||||
|             }, | ||||
|         ), | ||||
|         migrations.CreateModel( | ||||
|             name='FotkaUrlVazba', | ||||
|             fields=[ | ||||
|                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | ||||
|                 ('url', | ||||
|                  models.CharField(blank=True, help_text='url prefix stránek např: /archiv/ nebo /', max_length=100, | ||||
|                                   verbose_name='URL')), | ||||
|                 ('denni_doba', models.CharField(choices=[('den', 'Zobrazit jen ve dne'), ('noc', 'Zobrazit jen v noci'), | ||||
|                                                          ('oboji', 'Zobrazovat pořád')], default='oboji', max_length=16, | ||||
|                                                 verbose_name='denní doba')), | ||||
|                 ('fotka', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='header_fotky.FotkaHeader', | ||||
|                                             verbose_name='fotka')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'vazba url a fotky do pozadí menu', | ||||
|                 'verbose_name_plural': 'vazby url a fotek do pozadí menu', | ||||
|                 'db_table': 'fotky_url_vazby', | ||||
|                 'ordering': ['url'], | ||||
|             }, | ||||
| 
 | ||||
|         ), | ||||
|         migrations.RunPython(zkopiruj_fotky, migrations.RunPython.noop), | ||||
|     ] | ||||
							
								
								
									
										0
									
								
								header_fotky/migrations/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										65
									
								
								header_fotky/models.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,65 @@ | |||
| from django.core.exceptions import ValidationError | ||||
| from django.db import models | ||||
| from django.utils import timezone | ||||
| 
 | ||||
| 
 | ||||
| class FotkaHeader(models.Model): | ||||
| 	class Meta: | ||||
| 		ordering = ['-cas'] | ||||
| 		db_table = 'fotky_header' | ||||
| 		verbose_name = u'fotka do pozadí menu' | ||||
| 		verbose_name_plural = u'fotky do pozadí menu' | ||||
| 
 | ||||
| 	cas = models.DateTimeField(u'čas vložení fotky', default=timezone.now, help_text='Čas vložení fotky') | ||||
| 
 | ||||
| 	nazev = models.CharField( | ||||
| 		u'název fotky', null=False, blank=False, unique=True, primary_key=True, | ||||
| 		max_length=50, help_text='Název např. archiv_noc' | ||||
| 	) | ||||
| 
 | ||||
| 	fotka = models.ImageField(upload_to='header', null=False, blank=False) | ||||
| 
 | ||||
| 	def __str__(self): | ||||
| 		return self.nazev | ||||
| 
 | ||||
| 	def clean(self): | ||||
| 		if not self.fotka: | ||||
| 			raise ValidationError("Chybí obrázek") | ||||
| 		""" Kontroluje, zda sedí poměr stran """ | ||||
| 		if abs(self.fotka.width - (self.fotka.height * 970 / 350)) > 2: | ||||
| 			raise ValidationError("Obrázek by měl mít rozměry 970w na 350h, nebo alespoň podobný poměr stran.") | ||||
| 		super().clean() | ||||
| 
 | ||||
| 
 | ||||
| class FotkaUrlVazba(models.Model): | ||||
| 	class Meta: | ||||
| 		ordering = ['url'] | ||||
| 		db_table = 'fotky_url_vazby' | ||||
| 		verbose_name = u'vazba url a fotky do pozadí menu' | ||||
| 		verbose_name_plural = u'vazby url a fotek do pozadí menu' | ||||
| 
 | ||||
| 	url = models.CharField( | ||||
| 		u'URL', blank=True, null=False, max_length=100, | ||||
| 		help_text='url prefix stránek např: /archiv/ nebo /' | ||||
| 	) | ||||
| 
 | ||||
| 	fotka = models.ForeignKey( | ||||
| 		FotkaHeader, blank=False, null=False, verbose_name='fotka', | ||||
| 		on_delete=models.CASCADE | ||||
| 	) | ||||
| 
 | ||||
| 	DOBA_DEN = 'den' | ||||
| 	DOBA_NOC = 'noc' | ||||
| 	DOBA_OBOJI = 'oboji' | ||||
| 	DOBA_CHOICES = [ | ||||
| 		(DOBA_DEN, 'Zobrazit jen ve dne'), | ||||
| 		(DOBA_NOC, 'Zobrazit jen v noci'), | ||||
| 		(DOBA_OBOJI, 'Zobrazovat pořád')] | ||||
| 
 | ||||
| 	denni_doba = models.CharField('denní doba', max_length=16, choices=DOBA_CHOICES, blank=False, default=DOBA_OBOJI) | ||||
| 
 | ||||
| 	def __str__(self): | ||||
| 		return self.url | ||||
| 
 | ||||
| 	def url_fotky(self): | ||||
| 		return self.fotka.fotka.url | ||||
							
								
								
									
										16
									
								
								init_local.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						|  | @ -0,0 +1,16 @@ | |||
| #!/bin/sh | ||||
| 
 | ||||
| set -e # Spadni pokud něco spadne | ||||
| 
 | ||||
| # Check venvu | ||||
| # NOTE: zkontroluje i správnou složku -- existencí Makefilu | ||||
| make venv_check | ||||
| 
 | ||||
| # Vygenerujeme testdata | ||||
| ./manage.py testdata | ||||
| 
 | ||||
| # Nahrajeme statický obsah modelů | ||||
| ./manage.py loaddata flat.json sitetree_new.json | ||||
| 
 | ||||
| # Posbíráme statické soubory | ||||
| ./manage.py collectstatic | ||||
|  | @ -79,22 +79,31 @@ 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 | ||||
| 		super(KorekturovanePDF, self).save() | ||||
| 
 | ||||
| 	def save(self): | ||||
| 	def save(self, **kwargs): | ||||
| 		# Pokud se nezmenilo PDF, tak nepregenerovavej nahledy | ||||
| 		try: | ||||
| 			original = KorekturovanePDF.objects.get(pk=self.pk) | ||||
|  | @ -104,7 +113,7 @@ class KorekturovanePDF(models.Model): | |||
| 		except ObjectDoesNotExist: | ||||
| 			pass | ||||
| 		# uložíme nahrávané pdf | ||||
| 		super(KorekturovanePDF, self).save() | ||||
| 		super(KorekturovanePDF, self).save(kwargs) | ||||
| 
 | ||||
| 		# uložíme png a změněný počet stran | ||||
| 		self.convert() | ||||
|  |  | |||
|  | @ -1,9 +0,0 @@ | |||
| {% extends "base.html" %} | ||||
| 
 | ||||
| {% block content %} | ||||
| {# blok do kterého se nacita text, v pripade jinyhc templatu obalit vlastnim blokem #} | ||||
| {% endblock %} | ||||
| 
 | ||||
| {% block title %} | ||||
| {# blok pro titulek stranky #} | ||||
| {% endblock %} | ||||
|  | @ -1,4 +1,5 @@ | |||
| {% extends "korektury/base.html" %} | ||||
| {% extends "base.html" %} | ||||
| 
 | ||||
| {% load staticfiles %} | ||||
| 
 | ||||
| {% block title %} Nápověda ke korigovátku {% endblock title %} | ||||
|  |  | |||
|  | @ -36,12 +36,12 @@ | |||
| 		id="neni_chyba_checkbox" | ||||
| 		name="neni_chyba_checkbox" | ||||
| 		onchange="toggle_corrections('neni_chyba')" checked> | ||||
| 	<label for="neni_chyba_checkbox">Není chyba ({{neni_chyba_cnt}})</labe> | ||||
| 	<label for="neni_chyba_checkbox">Není chyba ({{neni_chyba_cnt}})</label> | ||||
| 	<input type="checkbox" | ||||
| 		id="k_zaneseni_checkbox" | ||||
| 		name="k_zaneseni_checkbox" | ||||
| 		onchange="toggle_corrections('k_zaneseni')" checked> | ||||
| 	<label for="k_zaneseni_checkbox">K zanesení ({{k_zaneseni_cnt}})</labe> | ||||
| 	<label for="k_zaneseni_checkbox">K zanesení ({{k_zaneseni_cnt}})</label> | ||||
| 
 | ||||
| 	<hr/> | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| {% extends "korektury/base.html" %} | ||||
| {% extends "base.html" %} | ||||
| {% load staticfiles %} | ||||
| 
 | ||||
| {% block script%} | ||||
|  |  | |||
							
								
								
									
										
											BIN
										
									
								
								korektury/testpdfs/A.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										5125
									
								
								korektury/testpdfs/B.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										69
									
								
								korektury/testutils.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,69 @@ | |||
| import logging | ||||
| import os | ||||
| from shutil import copyfile, rmtree | ||||
| 
 | ||||
| from django.db import transaction | ||||
| from django.conf import settings | ||||
| 
 | ||||
| from korektury.models import KorekturovanePDF, generate_filename | ||||
| 
 | ||||
| logger = logging.getLogger(__name__) | ||||
| 
 | ||||
| @transaction.atomic | ||||
| def create_test_pdf(rnd, organizatori): | ||||
| 	logger.info('Vyrábím testovací pdf ke korekturovani') | ||||
| 	try: | ||||
| 		testpdfs = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'testpdfs') | ||||
| 
 | ||||
| 		# smaže minulé pdfka a obrázky k nim a vytvoří (znovu) jejich složky | ||||
| 		pdf_dir = os.path.join(settings.BASE_DIR, os.path.join('media', settings.KOREKTURY_PDF_DIR)) | ||||
| 		img_dir = os.path.join(settings.BASE_DIR, os.path.join('media', settings.KOREKTURY_IMG_DIR)) | ||||
| 		rmtree(pdf_dir, ignore_errors=True) | ||||
| 		os.makedirs(pdf_dir) | ||||
| 		rmtree(img_dir, ignore_errors=True) | ||||
| 		os.makedirs(img_dir) | ||||
| 
 | ||||
| 		def gen_filename(filename): | ||||
| 			name = generate_filename(None, filename) | ||||
| 			print(name) | ||||
| 			copyfile(os.path.join(testpdfs, filename), os.path.join(settings.BASE_DIR, os.path.join('media', name))) | ||||
| 			return name | ||||
| 
 | ||||
| 		# TODO silent ghostscript (vypisuje odstavec za každou stránku…) | ||||
| 
 | ||||
| 		KorekturovanePDF.objects.create( | ||||
| 			nazev='B', komentar='Neuronové sítě', org=rnd.choice(organizatori), pdf=gen_filename(filename='B.pdf') | ||||
| 		) | ||||
| 
 | ||||
| 		KorekturovanePDF.objects.create( | ||||
| 			nazev='A', komentar='M&M: Jak řešit?', org=rnd.choice(organizatori), pdf=gen_filename(filename='A.pdf') | ||||
| 		) | ||||
| 
 | ||||
| 		korekturovane_pdf = KorekturovanePDF.objects.create( | ||||
| 			nazev='A', komentar='M&M: Jak řešit?', org=rnd.choice(organizatori), pdf=gen_filename(filename='A.pdf'), | ||||
| 			status='zanaseni' | ||||
| 		) | ||||
| 
 | ||||
| 		KorekturovanePDF.objects.create( | ||||
| 			nazev='A', komentar='M&M: Jak řešit?', org=rnd.choice(organizatori), pdf=gen_filename(filename='A.pdf'), | ||||
| 			status='zastarale' | ||||
| 		) | ||||
| 	except (FileNotFoundError, Exception) as e: | ||||
| 		# TODO najít správné chyby, které vyhazují různé systémy při neexistenci ImageMagick, nebo knihoven | ||||
| 		logger.error(str(e)) | ||||
| 		logger.error( | ||||
| 			'Chyba vytváření testovacích korektur, pravděpodobně není nainstalován ImageMagick nebo některá z knihoven' | ||||
| 			'pro práci se soubory pdf (ghostscript) nebo png (libpng?).\n' | ||||
| 			''' | ||||
| 				Instalaci na linux provedete např. příkazy: | ||||
| 				sudo apt-get build-dep imagemagick | ||||
| 				git clone https://github.com/ImageMagick/ImageMagick.git | ||||
| 				cd ImageMagick/ | ||||
| 				./configure | ||||
| 				make | ||||
| 				sudo make install | ||||
| 				sudo ldconfig /usr/local/lib | ||||
| 				cd .. | ||||
| 				rm -r ImageMagick/ | ||||
| 			''' | ||||
| 		) | ||||
|  | @ -1,11 +1,10 @@ | |||
| from django.urls import path | ||||
| from django.contrib.auth.decorators import user_passes_test | ||||
| from seminar.utils import org_required | ||||
| from . import views | ||||
| 
 | ||||
| staff_member_required = user_passes_test(lambda u: u.is_staff) | ||||
| 
 | ||||
| urlpatterns = [ | ||||
| 	path('korektury/', staff_member_required(views.KorekturyListView.as_view()), name='korektury-list'), | ||||
| 	path('korektury/<int:pdf>/', staff_member_required(views.KorekturyView.as_view()), name='korektury'), | ||||
| 	path('korektury/help/', staff_member_required(views.KorekturyHelpView.as_view()), name='korektury-help'), | ||||
| 	path('korektury/', org_required(views.KorekturyAktualniListView.as_view()), name='korektury-list'), | ||||
| 	path('korektury/zastarale/', org_required(views.KorekturyZastaraleListView.as_view()), name='korektury-list'), | ||||
| 	path('korektury/<int:pdf>/', org_required(views.KorekturyView.as_view()), name='korektury'), | ||||
| 	path('korektury/help/', org_required(views.KorekturyHelpView.as_view()), name='korektury-help'), | ||||
| ] | ||||
|  |  | |||
|  | @ -29,6 +29,28 @@ class KorekturyListView(generic.ListView): | |||
| 		) | ||||
| 	template_name = 'korektury/seznam.html' | ||||
| 
 | ||||
| class KorekturyAktualniListView(KorekturyListView): | ||||
|     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['selected'] = 'aktualni' | ||||
|         return context | ||||
| 
 | ||||
| class KorekturyZastaraleListView(KorekturyListView): | ||||
|     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): | ||||
| 	model = Oprava | ||||
|  | @ -130,7 +152,9 @@ class KorekturyView(generic.TemplateView): | |||
| 		''' | ||||
| 
 | ||||
| 		# parametry e-mailu | ||||
| 		odkaz = "https://mam.mff.cuni.cz/korektury/{}/".format(oprava.pdf.pk) | ||||
| 		#odkaz = "https://mam.mff.cuni.cz/korektury/{}/".format(oprava.pdf.pk) | ||||
| 		from django.urls import reverse | ||||
| 		odkaz = self.request.build_absolute_uri(reverse('korektury', kwargs={'pdf': oprava.pdf.pk})) | ||||
| 		from_email = 'korekturovatko@mam.mff.cuni.cz' | ||||
| 		subject = 'Nová korektura od {} v {}'.format(autor, | ||||
| 													 oprava.pdf.nazev) | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ from django.contrib.flatpages.admin import FlatpageForm as FlatpageFormOld | |||
| from django import forms | ||||
| from ckeditor_uploader.widgets import CKEditorUploadingWidget | ||||
| 
 | ||||
| 
 | ||||
| class FlatpageForm(FlatpageFormOld): | ||||
|     content = forms.CharField(widget=CKEditorUploadingWidget()) | ||||
|     class Meta: | ||||
|  | @ -22,3 +23,4 @@ class FlatPageAdmin(FlatPageAdminOld): | |||
| # We have to unregister the normal admin, and then reregister ours | ||||
| admin.site.unregister(FlatPage) | ||||
| admin.site.register(FlatPage, FlatPageAdmin) | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,12 +0,0 @@ | |||
| 
 | ||||
| from datetime import datetime, date | ||||
| 
 | ||||
| def vzhled(request): | ||||
|     ''' Podle casu prida do templatu, zdali je nebo neni noc ''' | ||||
|     hodin = datetime.now().hour | ||||
|     if (hodin <= 6) or (hodin >= 20): | ||||
|         noc = True | ||||
|     else: | ||||
|         noc = False | ||||
|     return {'noc' : noc} | ||||
| 
 | ||||
|  | @ -7,4 +7,5 @@ router.register(r'ulohavzoraknode', vs.UlohaVzorakNodeViewSet,basename='ulohavzo | |||
| router.register(r'text', vs.TextViewSet) | ||||
| router.register(r'textnode', vs.TextNodeViewSet) | ||||
| router.register(r'castnode', vs.CastNodeViewSet) | ||||
| router.register(r'problem', vs.ProblemViewSet, basename='problem') | ||||
| 
 | ||||
|  |  | |||
|  | @ -77,7 +77,7 @@ TEMPLATES = [ | |||
| 		'django.template.context_processors.request', | ||||
|                 'django.contrib.messages.context_processors.messages', | ||||
|                 'sekizai.context_processors.sekizai', | ||||
|                 'mamweb.context_processors.vzhled', | ||||
|                 'header_fotky.context_processors.vzhled', | ||||
|             ) | ||||
|         }, | ||||
|     }, | ||||
|  | @ -98,7 +98,7 @@ INSTALLED_APPS = ( | |||
| 
 | ||||
|     # Utilities | ||||
|     'sekizai', | ||||
| #    'reversion', | ||||
|     'reversion', | ||||
|     'django_countries', | ||||
|     'solo', | ||||
|     'ckeditor', | ||||
|  | @ -130,6 +130,7 @@ INSTALLED_APPS = ( | |||
|     'galerie', | ||||
|     'korektury', | ||||
|     'prednasky', | ||||
|     'header_fotky', | ||||
| 
 | ||||
|     # Admin upravy: | ||||
| 
 | ||||
|  | @ -139,7 +140,6 @@ INSTALLED_APPS = ( | |||
| #    'admin_tools.theming', | ||||
| #    'admin_tools.menu', | ||||
| #    'admin_tools.dashboard', | ||||
|     'flat', | ||||
|     'django.contrib.admin', | ||||
| ) | ||||
| 
 | ||||
|  | @ -182,7 +182,8 @@ CKEDITOR_CONFIGS = { | |||
| #        'toolbar': 'full', | ||||
|         'height': '40em', | ||||
|         'width': '100%', | ||||
|         'toolbarStartupExpanded': False | ||||
|         'toolbarStartupExpanded': False, | ||||
|         'allowedContent' : True, | ||||
|     }, | ||||
| } | ||||
| 
 | ||||
|  | @ -272,7 +273,7 @@ LOGGING = { | |||
|                 'class': 'django.utils.log.AdminEmailHandler', | ||||
|                 'formatter': 'verbose',  | ||||
|                 }, | ||||
|             'mail_registraion': { | ||||
|             'mail_registration': { | ||||
|                 'level': 'WARN', | ||||
|                 'class': 'django.utils.log.AdminEmailHandler', | ||||
|                 'formatter': 'verbose',  | ||||
|  |  | |||
|  | @ -94,4 +94,6 @@ LOGGING = { | |||
| # set to 'DEBUG' for EXTRA verbose output | ||||
| # LOGGING['handlers']['console']['level'] = 'INFO' | ||||
| 
 | ||||
| # E-maily posílat chceme, ale do terminálu :-) | ||||
| EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' | ||||
| SEND_EMAIL_NOTIFICATIONS = True | ||||
|  |  | |||
|  | @ -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', | ||||
|     ) | ||||
| 
 | ||||
|  | @ -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 | ||||
|  |  | |||
|  | @ -55,6 +55,8 @@ a:focus, a:hover, a:active { | |||
| 
 | ||||
| img { | ||||
| 	filter: drop-shadow(0px 3px 3px rgba(0, 0, 0, 0.4)); | ||||
| 	max-width: 100%; | ||||
| 	height: auto; | ||||
| } | ||||
| 
 | ||||
| h1 {	/*todo: odlišit 1 a 2 */ | ||||
|  | @ -99,6 +101,26 @@ h6 { | |||
| 	color: black; | ||||
| } | ||||
| 
 | ||||
| .button { | ||||
| 	margin: 10px 0px 10px 0px; | ||||
| 	padding: 4px 0; /*vertikální centování textu*/ | ||||
| 	text-align: center; | ||||
| 	background-color: #e84e10; | ||||
| 	color: #fffbf6; | ||||
| 	font-size: 150%; | ||||
| 	font-weight: bold; | ||||
| 	font-variant: small-caps; | ||||
| 	filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); | ||||
| } | ||||
| 
 | ||||
| .button:hover { | ||||
| 	position: relative; | ||||
| 	top: 2px; | ||||
| 	left:2px; | ||||
| 	background-color: #df490e; | ||||
| ; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| .org-logged-in .mam-text-plugin { | ||||
|   border: dashed 1px #6a0043; | ||||
|  | @ -191,38 +213,6 @@ h1 { | |||
| 	top: 58px; | ||||
| } | ||||
| 
 | ||||
| /* | ||||
| fotky: | ||||
| 
 | ||||
| todo url | ||||
| 
 | ||||
| kryptografie | ||||
| baliky | ||||
| beh | ||||
| mam_cernobile -pro archiv? asi ne | ||||
| vylet | ||||
| spolecna -spíš ne, moc lidí | ||||
| snih | ||||
| ohen | ||||
| noc | ||||
| stiny | ||||
| vikendovka | ||||
| */ | ||||
| 
 | ||||
| #header.cojemam { background-image: url("../images/header/vikendovka.jpg");} | ||||
| #header.soustredeni { background-image: url("../images/header/beh.jpg");} | ||||
| #header.zadani { background-image: url("../images/header/baliky.jpg");} | ||||
| #header.clanky { background-image: url("../images/header/kryptografie.jpg");} | ||||
| #header.archiv { background-image: url("../images/header/stiny.jpg");} | ||||
| 
 | ||||
| #header.NOC {background-image: url("../images/header/noc.jpg");} | ||||
| #header.NOCcojemam { background-image: url("../images/header/noc.jpg");} | ||||
| #header.NOCsoustredeni { background-image: url("../images/header/vylet.jpg");} | ||||
| #header.NOCzadani { background-image: url("../images/header/stiny.jpg");} | ||||
| #header.NOCclanky { background-image: url("../images/header/ohen.jpg");} | ||||
| #header.NOCarchiv { background-image: url("../images/header/stiny.jpg");} | ||||
| 
 | ||||
| 
 | ||||
| #header img.logo { | ||||
| 	position: absolute center; | ||||
| 	width: 100%; | ||||
|  | @ -316,6 +306,14 @@ ul.submenu li>a:hover { | |||
| 	color: black; | ||||
| } | ||||
| 
 | ||||
| ul.menu li.active>a { | ||||
| 	color: #f9d59e; | ||||
| } | ||||
| 
 | ||||
| ul.submenu li.active>a { | ||||
| 	color: black; | ||||
| } | ||||
| 
 | ||||
| /* konec nového menu */ | ||||
| 
 | ||||
| div.novinky_name { | ||||
|  | @ -393,13 +391,82 @@ input[type="file"] { | |||
| } | ||||
| 
 | ||||
| .field-with-comment:hover span.field-comment{ | ||||
|   display:block; | ||||
|   display: block; | ||||
| } | ||||
| 
 | ||||
| input { | ||||
| 	margin: 5px; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /* titulni stranka */ | ||||
| 
 | ||||
| .titulnistrana { | ||||
| 	display: flex; | ||||
| 	text-align: justify; | ||||
| } | ||||
| 
 | ||||
| .titulnistrana h1 { | ||||
| 	text-align: center; | ||||
| } | ||||
| 
 | ||||
| .zjistit_vic{ | ||||
|   text-align: center; | ||||
|   margin-bottom: 30px; | ||||
| } | ||||
| 
 | ||||
| .zjistit_vic hr { | ||||
| 	display: none; | ||||
| } | ||||
| 
 | ||||
| .graf-svg { | ||||
| 	display: flex; | ||||
| } | ||||
| 
 | ||||
| #svg-graf { | ||||
| 	width: 100%; | ||||
| 	height: auto; | ||||
| 	margin: 30px; | ||||
| } | ||||
| 
 | ||||
| .titulnistrana_obsah { | ||||
| 	width: 66%; | ||||
| } | ||||
| 
 | ||||
| .vitej_titulka, .temata_titulka { | ||||
| 	width: 49%; | ||||
| 	padding: 10px; | ||||
| 	display: table-cell; | ||||
| } | ||||
| 
 | ||||
| .titulnistrana_novinky { | ||||
| 	width: 33%; | ||||
| 	padding: 10px; | ||||
| } | ||||
| 
 | ||||
| .novinka_obrazek { | ||||
| 	margin: 10px 0px 10px 0px; | ||||
| 	width: 100%; | ||||
| } | ||||
| 
 | ||||
| .novinka_datum { | ||||
| 	font-weight: bold; | ||||
| } | ||||
| 
 | ||||
| .novinka_autor { | ||||
| 	text-align: right; | ||||
| 	font-style: italic; | ||||
| } | ||||
| 
 | ||||
| div.org-text { | ||||
|     font-style: italic; | ||||
| } | ||||
| 
 | ||||
| div.odpocet { | ||||
| 	margin: 20px; | ||||
| 	text-align: center; | ||||
| } | ||||
| 
 | ||||
| /********************** | ||||
|  * Zmenšování displeje | ||||
| ***********************/ | ||||
|  | @ -429,42 +496,22 @@ input { | |||
| 		width: 100%; | ||||
| 	} | ||||
| 
 | ||||
|   div.novinky{ | ||||
|     max-width: 100%; | ||||
|     margin-left: auto; | ||||
|     margin-right: auto; | ||||
|     float: none; | ||||
|   } | ||||
| 
 | ||||
|   div.graf{ | ||||
| 		width: 70%; | ||||
|     float: none; | ||||
|     margin-left: auto; | ||||
|     margin-right: auto; | ||||
| 		margin-top: 10px; | ||||
|   } | ||||
| 	#svg-graf{ | ||||
| 		width: 100%; | ||||
| 		height: auto;; | ||||
| 	} | ||||
| 
 | ||||
| ul.menu { | ||||
| 	ul.menu { | ||||
| 		font-size: 90%; | ||||
| 		margin-top: -7px; | ||||
| } | ||||
| 	} | ||||
| 
 | ||||
| ul.menu li { | ||||
| 	ul.menu li { | ||||
| 		margin-top: 10px; /* posunutí textu hlavního menu níže */ | ||||
| } | ||||
| 	} | ||||
| 
 | ||||
| ul.submenu li { | ||||
| 	ul.submenu li { | ||||
| 		margin-top: 0px; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ | ||||
| } | ||||
| 	} | ||||
| 
 | ||||
| ul.submenu { | ||||
| 	ul.submenu { | ||||
| 		margin-top: 8px; /* mezera mezi hlavním menu a submenu */ | ||||
| } | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
|  | @ -496,11 +543,53 @@ ul.submenu { | |||
| 		display: inline-grid; | ||||
| 		max-width: 300px; | ||||
| 	} | ||||
| 
 | ||||
| 	/* titulni stranka */ | ||||
| 
 | ||||
| 	.titulnistrana { | ||||
| 		display: block; | ||||
| 	} | ||||
| 
 | ||||
| 	.graf { | ||||
| 		padding-top: 40px; | ||||
| 	} | ||||
| 
 | ||||
| 	.titulnistrana_obsah { | ||||
| 		width: 100%; | ||||
| 	} | ||||
| 
 | ||||
| 	.vitej_titulka, .temata_titulka { | ||||
| 		width: 49%; | ||||
| 		padding: 10px; | ||||
| 		display: table-cell; | ||||
| 	} | ||||
| 
 | ||||
| 	.titulnistrana_novinky { | ||||
| 		width: 100%; | ||||
| 		max-width: 500px; | ||||
| 		padding: 10px; | ||||
| 		margin: auto; | ||||
| 	} | ||||
| 
 | ||||
| 	#svg-graf { | ||||
| 		width: 100%; | ||||
| 		max-width: 500px; | ||||
| 		padding: 10px; | ||||
| 		margin: auto; | ||||
| 	} | ||||
| 
 | ||||
| 	.zjistit_vic hr { | ||||
| 		display: flex; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| /* malý tablet, mobil */ | ||||
| @media (max-width: 650px) { | ||||
| 
 | ||||
| 	.no-mobile{ | ||||
| 		display: none; | ||||
| 	} | ||||
| 
 | ||||
|   #hide-if-small.login-bar-flatpage { | ||||
| 		display: none; | ||||
| 	} | ||||
|  | @ -637,17 +726,33 @@ ul.submenu { | |||
| 		text-align: justify; | ||||
| 	} | ||||
| 
 | ||||
|   div.novinky { | ||||
|     max-width: 100%; | ||||
|     float: none; | ||||
| 	table.form td, table.form tr { | ||||
|  		display: inherit; | ||||
|  	} | ||||
| 
 | ||||
| 	div.graf { | ||||
| 	 /* titulni stranka */ | ||||
| 
 | ||||
| 	.titulnistrana { | ||||
| 		display: block; | ||||
| 	} | ||||
| 
 | ||||
| 	.graf { | ||||
| 		padding-top: 40px; | ||||
| 	} | ||||
| 
 | ||||
| 	.titulnistrana_obsah { | ||||
| 		width: 100%; | ||||
| 	} | ||||
| 
 | ||||
| 	table.form td, table.form tr { | ||||
|  		display: inherit; | ||||
| 	.vitej_titulka, .temata_titulka { | ||||
| 		width: 100%; | ||||
| 		padding: 10px; | ||||
| 		display: block; | ||||
| 	} | ||||
| 
 | ||||
| 	.titulnistrana_novinky { | ||||
| 		width: 100%; | ||||
| 		padding: 10px; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
|  | @ -730,11 +835,6 @@ div.org_email { | |||
|  backface-visibility: hidden; | ||||
| } | ||||
| 
 | ||||
| /* Style the front side (fallback if image is missing) */ | ||||
| .flip-card-front { | ||||
|  background-color: #bbb; | ||||
| } | ||||
| 
 | ||||
| div.flip-card-foto img { | ||||
| 	width: 100%; | ||||
| 	height: 100%; | ||||
|  | @ -750,6 +850,10 @@ div.flip-card-foto img { | |||
|  padding-top: 20px; | ||||
| } | ||||
| 
 | ||||
| #archiv.flip-card-back { | ||||
| 	background-color: white; | ||||
| } | ||||
| 
 | ||||
| /* karty archiv */ | ||||
| 
 | ||||
| div.popis_rocniku { | ||||
|  | @ -946,45 +1050,8 @@ div.cislo_odkazy ul { | |||
| } | ||||
| 
 | ||||
| 
 | ||||
| /* titulni stranka */ | ||||
| /**/ | ||||
| 
 | ||||
| .zjistit_vic{ | ||||
|   text-align: center; | ||||
| } | ||||
| 
 | ||||
| .graf{ | ||||
|   float: left; | ||||
| } | ||||
| 
 | ||||
| .novinky{ | ||||
|   float: right; | ||||
|   max-width: 42%; | ||||
| } | ||||
| 
 | ||||
| .novinka_obrazek img { | ||||
|     margin-bottom: 15px; | ||||
| } | ||||
| 
 | ||||
| div.novinka_obrazek { | ||||
|     width: 100%; | ||||
| } | ||||
| 
 | ||||
| div.org-text { | ||||
|     font-style: italic; | ||||
| } | ||||
| 
 | ||||
| div.nahledy_cisel { | ||||
|     float: right; | ||||
|     height: 297px; | ||||
|     width: 420px; | ||||
|     position: relative; | ||||
|     margin-right: 10%; | ||||
|     margin-bottom: 50px; | ||||
| } | ||||
| 
 | ||||
| div.nahledy_cisel div, div.nahledy_cisel img { | ||||
|     position: absolute; | ||||
| } | ||||
| ul.form { | ||||
| 	list-style-type: none; | ||||
| 	padding-left: 0px; | ||||
|  | @ -1009,3 +1076,20 @@ p.gdpr { | |||
| div.gdpr { | ||||
| 	font-size: 6pt; | ||||
| } | ||||
| 
 | ||||
| /* Jak řešit */ | ||||
| 
 | ||||
| .jakresit img { | ||||
| 	width: 33%; | ||||
| 	padding: 10px; | ||||
| 	filter: none; | ||||
| } | ||||
| 
 | ||||
| @media(max-width: 860px) { | ||||
| 	.jakresit img { | ||||
| 		margin: auto; | ||||
| 		display: grid; | ||||
| 		width: 100%; | ||||
| 		max-width: 360px; | ||||
| 	} | ||||
| } | ||||
|  |  | |||
							
								
								
									
										26847
									
								
								mamweb/static/images/jakresit_1.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.8 MiB | 
							
								
								
									
										26847
									
								
								mamweb/static/images/jakresit_2.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.8 MiB | 
							
								
								
									
										26847
									
								
								mamweb/static/images/jakresit_3.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.8 MiB | 
							
								
								
									
										208
									
								
								mamweb/static/images/logo_1.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,208 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| 
 | ||||
| <svg | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    version="1.1" | ||||
|    id="svg2" | ||||
|    xml:space="preserve" | ||||
|    width="1116.5013" | ||||
|    height="404.98737" | ||||
|    viewBox="0 0 1116.5013 404.98736" | ||||
|    sodipodi:docname="logo_co-je-mam.svg" | ||||
|    inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"><metadata | ||||
|      id="metadata8"><rdf:RDF><cc:Work | ||||
|          rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs | ||||
|      id="defs6" /><sodipodi:namedview | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1" | ||||
|      objecttolerance="10" | ||||
|      gridtolerance="10" | ||||
|      guidetolerance="10" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:window-width="1916" | ||||
|      inkscape:window-height="1151" | ||||
|      id="namedview4" | ||||
|      showgrid="true" | ||||
|      inkscape:zoom="1.1893563" | ||||
|      inkscape:cx="542.48119" | ||||
|      inkscape:cy="65.762526" | ||||
|      inkscape:window-x="1922" | ||||
|      inkscape:window-y="47" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="g12" | ||||
|      inkscape:snap-page="true"><inkscape:grid | ||||
|        type="xygrid" | ||||
|        id="grid903" | ||||
|        originx="-3.4986323" | ||||
|        originy="-416.4963" /></sodipodi:namedview><g | ||||
|      id="g10" | ||||
|      inkscape:groupmode="layer" | ||||
|      inkscape:label="ink_ext_XXXXXX" | ||||
|      transform="matrix(1.3333333,0,0,-1.3333333,-3.4986322,821.48366)"><g | ||||
|        id="g12" | ||||
|        transform="scale(0.1)"><path | ||||
|          d="m 8335.3454,4798.1624 -595.1505,-620.7555 h -585.3165 l 595.2607,620.7555 h 585.2063" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.18195856" | ||||
|          id="path14" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7078.5791,4120.5393 h -0.5073 l 0.2556,0.2663 z" | ||||
|          style="fill:#e84e10;fill-opacity:0.94117647;fill-rule:nonzero;stroke:none;stroke-width:0.93578213" | ||||
|          id="path38" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7102.4996,4177.5001 -0.089,-0.093 h -708.1905 v 738.7467 l 708.2801,-738.6537" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99787205" | ||||
|          id="path40" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6937.5002,4101.5435 v -464.0434 h -444.9049 v 464.0434 h 444.9049" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.88309515" | ||||
|          id="path42" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 6337.5002,5718.9966 V 5062.5001 L 6022.709,5390.7482 Z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89475256" | ||||
|          id="path44" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 5962.5001,4650.0001 -337.5,337.5 337.5,337.5 337.5001,-337.5 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.95725137" | ||||
|          id="path46" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6420.0002,3637.5001 v 465 l -457.5001,1.0607 -330,-466.0607 c 166.1399,-0.083 621.3604,0 787.5001,0 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.6284067" | ||||
|          id="path40-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 5587.5001,5719.164 v -656.6639 l 314.8715,328.332 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89498103" | ||||
|          id="path44-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 6000.0001,4575.0001 v -394.33 l 314.7902,-1.1147 c -6.0705,262.4914 -52.96,471.0265 -314.7902,395.4447 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89475173" | ||||
|          id="path44-3-2" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 6320.8633,4912.5001 -6.073,-732.9447 -314.7902,395.4447 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89933741" | ||||
|          id="path44-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="M 1387.5,3106.9263 26.145617,3112.5 26.239743,3429.3745 1387.5,3732.5654 Z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 2775.0001,3109.1558 H 1462.5 v 640.8443 l 525,-112.5001 787.5001,206.4179 z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 4237.5001,3110.2705 h -1387.5 l 0,752.2296 675,150 712.5,-246.8936 z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 5550.0001,3112.5 h -1237.5 l 0,626.1475 618.75,-176.1474 h 618.75 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 6937.5002,3105.8115 -1312.5001,-1.1287 0,457.8173 h 1312.5001 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 8417.4395,3112.5 -1404.9393,-3.3582 v 453.3585 l 1405.2097,262.4998 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5496583" | ||||
|          id="path42-2-0" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 8328.8772,3870.0686 -1316.377,-232.5685 v 465 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-0-4" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7290.0002,4106.2559 1127.4393,-188.0235 1.5764,187.55 z" | ||||
|          style="fill:#fce7c6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.49430776" | ||||
|          id="path42-2-0-4-1" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7928.737,4175.1068 0.056,-0.059 490.363,0.083 -1.6663,624.8689 -595.4746,-624.9521" | ||||
|          style="fill:#fce7c6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.61935329" | ||||
|          id="path40-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7447.5002,4575.0001 -322.5,-337.5 -300,337.5 h 622.5" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.95725137" | ||||
|          id="path46-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 5925.0001,4575.0001 0,-392.8359 -337.5,280.3359 0,450 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.64549828" | ||||
|          id="path14-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 5887.5001,4125.0001 -337.5,-487.5 h -600 l 600,766.3199 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5409205" | ||||
|          id="path42-2-6-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fef6eb;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.25494003;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 5234.2851,6184.7748 1476.9917,14.5116 -447.5529,-438.1391 c -176.9133,-173.1921 -301.1716,-305.5968 -301.2238,-305.5968 -242.6593,249.8656 -457.1495,460.2945 -728.215,729.2243 z" | ||||
|          id="path1203" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccscc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.84425163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 6396.6887,5762.3467 353.3115,363.8943 V 4650.0001 l -351.0821,375 z" | ||||
|          id="path1201-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:17.39934158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 6825.0002,5400.0001 c 0,0 591.4391,-696.4314 637.5,-750 l -320.7729,0 h -316.7271 z" | ||||
|          id="path1199-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7462.5002,5400.0001 0,-637.5 -637.5,750 0,600 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.16200352" | ||||
|          id="path14-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7800.0002,4875.0001 0,1295.0654 600,3.3442 0,-1298.4097 z" | ||||
|          style="fill:#fef6eb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.52054787" | ||||
|          id="path42-2-6-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6839.0906,6172.2949 v 0 l 885.9096,-2.2294 0,-920.0654 -885.9096,922.2948" | ||||
|          style="fill:#fef6eb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.21138752" | ||||
|          id="path40-0" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:9.21227551;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 7725.0002,5137.5001 -187.5,199.7622 v -649.7622 l 187.5,206.4178 z" | ||||
|          id="path1201-3-1" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 1387.5,3787.5001 562.50001,3617.6989 v 448.4953 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.09587288" | ||||
|          id="path42-2-0-4-1-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          style="opacity:1;fill:#f9d59e;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.52051163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 487.50001,4087.5001 -465.000009,165 V 3480 l 465.000009,120.0001 z" | ||||
|          id="path1201-3-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /></g></g></svg> | ||||
| After Width: | Height: | Size: 11 KiB | 
							
								
								
									
										208
									
								
								mamweb/static/images/logo_2.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,208 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| 
 | ||||
| <svg | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    version="1.1" | ||||
|    id="svg2" | ||||
|    xml:space="preserve" | ||||
|    width="1116.5013" | ||||
|    height="404.98737" | ||||
|    viewBox="0 0 1116.5013 404.98736" | ||||
|    sodipodi:docname="logo_jak-resit.svg" | ||||
|    inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"><metadata | ||||
|      id="metadata8"><rdf:RDF><cc:Work | ||||
|          rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs | ||||
|      id="defs6" /><sodipodi:namedview | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1" | ||||
|      objecttolerance="10" | ||||
|      gridtolerance="10" | ||||
|      guidetolerance="10" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:window-width="1916" | ||||
|      inkscape:window-height="1151" | ||||
|      id="namedview4" | ||||
|      showgrid="true" | ||||
|      inkscape:zoom="1.1893563" | ||||
|      inkscape:cx="542.48119" | ||||
|      inkscape:cy="65.762526" | ||||
|      inkscape:window-x="1922" | ||||
|      inkscape:window-y="47" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="g12" | ||||
|      inkscape:snap-page="true"><inkscape:grid | ||||
|        type="xygrid" | ||||
|        id="grid903" | ||||
|        originx="-3.4986323" | ||||
|        originy="-416.4963" /></sodipodi:namedview><g | ||||
|      id="g10" | ||||
|      inkscape:groupmode="layer" | ||||
|      inkscape:label="ink_ext_XXXXXX" | ||||
|      transform="matrix(1.3333333,0,0,-1.3333333,-3.4986322,821.48366)"><g | ||||
|        id="g12" | ||||
|        transform="scale(0.1)"><path | ||||
|          d="m 8335.3454,4798.1624 -595.1505,-620.7555 h -585.3165 l 595.2607,620.7555 h 585.2063" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.18195856" | ||||
|          id="path14" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7078.5791,4120.5393 h -0.5073 l 0.2556,0.2663 z" | ||||
|          style="fill:#e84e10;fill-opacity:0.94117647;fill-rule:nonzero;stroke:none;stroke-width:0.93578213" | ||||
|          id="path38" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7102.4996,4177.5001 -0.089,-0.093 h -708.1905 v 738.7467 l 708.2801,-738.6537" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99787205" | ||||
|          id="path40" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6937.5002,4101.5435 v -464.0434 h -444.9049 v 464.0434 h 444.9049" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.88309515" | ||||
|          id="path42" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 6337.5002,5718.9966 V 5062.5001 L 6022.709,5390.7482 Z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89475256" | ||||
|          id="path44" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 5962.5001,4650.0001 -337.5,337.5 337.5,337.5 337.5001,-337.5 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.95725137" | ||||
|          id="path46" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6420.0002,3637.5001 v 465 l -457.5001,1.0607 -330,-466.0607 c 166.1399,-0.083 621.3604,0 787.5001,0 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.6284067" | ||||
|          id="path40-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 5587.5001,5719.164 v -656.6639 l 314.8715,328.332 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89498103" | ||||
|          id="path44-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 6000.0001,4575.0001 v -394.33 l 314.7902,-1.1147 c -6.0705,262.4914 -52.96,471.0265 -314.7902,395.4447 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89475173" | ||||
|          id="path44-3-2" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 6320.8633,4912.5001 -6.073,-732.9447 -314.7902,395.4447 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89933741" | ||||
|          id="path44-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="M 1387.5,3106.9263 26.145617,3112.5 26.239743,3429.3745 1387.5,3732.5654 Z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 2775.0001,3109.1558 H 1462.5 v 640.8443 l 525,-112.5001 787.5001,206.4179 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 4237.5001,3110.2705 h -1387.5 l 0,752.2296 675,150 712.5,-246.8936 z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 5550.0001,3112.5 h -1237.5 l 0,626.1475 618.75,-176.1474 h 618.75 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 6937.5002,3105.8115 -1312.5001,-1.1287 0,457.8173 h 1312.5001 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 8417.4395,3112.5 -1404.9393,-3.3582 v 453.3585 l 1405.2097,262.4998 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5496583" | ||||
|          id="path42-2-0" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 8328.8772,3870.0686 -1316.377,-232.5685 v 465 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-0-4" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7290.0002,4106.2559 1127.4393,-188.0235 1.5764,187.55 z" | ||||
|          style="fill:#fce7c6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.49430776" | ||||
|          id="path42-2-0-4-1" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7928.737,4175.1068 0.056,-0.059 490.363,0.083 -1.6663,624.8689 -595.4746,-624.9521" | ||||
|          style="fill:#fce7c6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.61935329" | ||||
|          id="path40-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7447.5002,4575.0001 -322.5,-337.5 -300,337.5 h 622.5" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.95725137" | ||||
|          id="path46-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 5925.0001,4575.0001 0,-392.8359 -337.5,280.3359 0,450 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.64549828" | ||||
|          id="path14-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 5887.5001,4125.0001 -337.5,-487.5 h -600 l 600,766.3199 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5409205" | ||||
|          id="path42-2-6-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fef6eb;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.25494003;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 5234.2851,6184.7748 1476.9917,14.5116 -447.5529,-438.1391 c -176.9133,-173.1921 -301.1716,-305.5968 -301.2238,-305.5968 -242.6593,249.8656 -457.1495,460.2945 -728.215,729.2243 z" | ||||
|          id="path1203" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccscc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.84425163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 6396.6887,5762.3467 353.3115,363.8943 V 4650.0001 l -351.0821,375 z" | ||||
|          id="path1201-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:17.39934158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 6825.0002,5400.0001 c 0,0 591.4391,-696.4314 637.5,-750 l -320.7729,0 h -316.7271 z" | ||||
|          id="path1199-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7462.5002,5400.0001 0,-637.5 -637.5,750 0,600 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.16200352" | ||||
|          id="path14-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7800.0002,4875.0001 0,1295.0654 600,3.3442 0,-1298.4097 z" | ||||
|          style="fill:#fef6eb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.52054787" | ||||
|          id="path42-2-6-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6839.0906,6172.2949 v 0 l 885.9096,-2.2294 0,-920.0654 -885.9096,922.2948" | ||||
|          style="fill:#fef6eb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.21138752" | ||||
|          id="path40-0" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:9.21227551;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 7725.0002,5137.5001 -187.5,199.7622 v -649.7622 l 187.5,206.4178 z" | ||||
|          id="path1201-3-1" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 1387.5,3787.5001 562.50001,3617.6989 v 448.4953 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.09587288" | ||||
|          id="path42-2-0-4-1-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          style="opacity:1;fill:#f9d59e;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.52051163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 487.50001,4087.5001 -465.000009,165 V 3480 l 465.000009,120.0001 z" | ||||
|          id="path1201-3-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /></g></g></svg> | ||||
| After Width: | Height: | Size: 11 KiB | 
							
								
								
									
										208
									
								
								mamweb/static/images/logo_3.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,208 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| 
 | ||||
| <svg | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    version="1.1" | ||||
|    id="svg2" | ||||
|    xml:space="preserve" | ||||
|    width="1116.5013" | ||||
|    height="404.98737" | ||||
|    viewBox="0 0 1116.5013 404.98736" | ||||
|    sodipodi:docname="logo_aktualni.svg" | ||||
|    inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"><metadata | ||||
|      id="metadata8"><rdf:RDF><cc:Work | ||||
|          rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs | ||||
|      id="defs6" /><sodipodi:namedview | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1" | ||||
|      objecttolerance="10" | ||||
|      gridtolerance="10" | ||||
|      guidetolerance="10" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:window-width="1916" | ||||
|      inkscape:window-height="1151" | ||||
|      id="namedview4" | ||||
|      showgrid="true" | ||||
|      inkscape:zoom="1.1893563" | ||||
|      inkscape:cx="542.48119" | ||||
|      inkscape:cy="65.762526" | ||||
|      inkscape:window-x="1922" | ||||
|      inkscape:window-y="47" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="g12" | ||||
|      inkscape:snap-page="true"><inkscape:grid | ||||
|        type="xygrid" | ||||
|        id="grid903" | ||||
|        originx="-3.4986323" | ||||
|        originy="-416.4963" /></sodipodi:namedview><g | ||||
|      id="g10" | ||||
|      inkscape:groupmode="layer" | ||||
|      inkscape:label="ink_ext_XXXXXX" | ||||
|      transform="matrix(1.3333333,0,0,-1.3333333,-3.4986322,821.48366)"><g | ||||
|        id="g12" | ||||
|        transform="scale(0.1)"><path | ||||
|          d="m 8335.3454,4798.1624 -595.1505,-620.7555 h -585.3165 l 595.2607,620.7555 h 585.2063" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.18195856" | ||||
|          id="path14" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7078.5791,4120.5393 h -0.5073 l 0.2556,0.2663 z" | ||||
|          style="fill:#e84e10;fill-opacity:0.94117647;fill-rule:nonzero;stroke:none;stroke-width:0.93578213" | ||||
|          id="path38" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7102.4996,4177.5001 -0.089,-0.093 h -708.1905 v 738.7467 l 708.2801,-738.6537" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99787205" | ||||
|          id="path40" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6937.5002,4101.5435 v -464.0434 h -444.9049 v 464.0434 h 444.9049" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.88309515" | ||||
|          id="path42" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 6337.5002,5718.9966 V 5062.5001 L 6022.709,5390.7482 Z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89475256" | ||||
|          id="path44" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 5962.5001,4650.0001 -337.5,337.5 337.5,337.5 337.5001,-337.5 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.95725137" | ||||
|          id="path46" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6420.0002,3637.5001 v 465 l -457.5001,1.0607 -330,-466.0607 c 166.1399,-0.083 621.3604,0 787.5001,0 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.6284067" | ||||
|          id="path40-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 5587.5001,5719.164 v -656.6639 l 314.8715,328.332 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89498103" | ||||
|          id="path44-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 6000.0001,4575.0001 v -394.33 l 314.7902,-1.1147 c -6.0705,262.4914 -52.96,471.0265 -314.7902,395.4447 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89475173" | ||||
|          id="path44-3-2" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 6320.8633,4912.5001 -6.073,-732.9447 -314.7902,395.4447 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89933741" | ||||
|          id="path44-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="M 1387.5,3106.9263 26.145617,3112.5 26.239743,3429.3745 1387.5,3732.5654 Z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 2775.0001,3109.1558 H 1462.5 v 640.8443 l 525,-112.5001 787.5001,206.4179 z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 4237.5001,3110.2705 h -1387.5 l 0,752.2296 675,150 712.5,-246.8936 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 5550.0001,3112.5 h -1237.5 l 0,626.1475 618.75,-176.1474 h 618.75 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 6937.5002,3105.8115 -1312.5001,-1.1287 0,457.8173 h 1312.5001 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 8417.4395,3112.5 -1404.9393,-3.3582 v 453.3585 l 1405.2097,262.4998 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5496583" | ||||
|          id="path42-2-0" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 8328.8772,3870.0686 -1316.377,-232.5685 v 465 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-0-4" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7290.0002,4106.2559 1127.4393,-188.0235 1.5764,187.55 z" | ||||
|          style="fill:#fce7c6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.49430776" | ||||
|          id="path42-2-0-4-1" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7928.737,4175.1068 0.056,-0.059 490.363,0.083 -1.6663,624.8689 -595.4746,-624.9521" | ||||
|          style="fill:#fce7c6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.61935329" | ||||
|          id="path40-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7447.5002,4575.0001 -322.5,-337.5 -300,337.5 h 622.5" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.95725137" | ||||
|          id="path46-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 5925.0001,4575.0001 0,-392.8359 -337.5,280.3359 0,450 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.64549828" | ||||
|          id="path14-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 5887.5001,4125.0001 -337.5,-487.5 h -600 l 600,766.3199 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5409205" | ||||
|          id="path42-2-6-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fef6eb;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.25494003;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 5234.2851,6184.7748 1476.9917,14.5116 -447.5529,-438.1391 c -176.9133,-173.1921 -301.1716,-305.5968 -301.2238,-305.5968 -242.6593,249.8656 -457.1495,460.2945 -728.215,729.2243 z" | ||||
|          id="path1203" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccscc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.84425163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 6396.6887,5762.3467 353.3115,363.8943 V 4650.0001 l -351.0821,375 z" | ||||
|          id="path1201-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:17.39934158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 6825.0002,5400.0001 c 0,0 591.4391,-696.4314 637.5,-750 l -320.7729,0 h -316.7271 z" | ||||
|          id="path1199-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7462.5002,5400.0001 0,-637.5 -637.5,750 0,600 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.16200352" | ||||
|          id="path14-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7800.0002,4875.0001 0,1295.0654 600,3.3442 0,-1298.4097 z" | ||||
|          style="fill:#fef6eb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.52054787" | ||||
|          id="path42-2-6-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6839.0906,6172.2949 v 0 l 885.9096,-2.2294 0,-920.0654 -885.9096,922.2948" | ||||
|          style="fill:#fef6eb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.21138752" | ||||
|          id="path40-0" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:9.21227551;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 7725.0002,5137.5001 -187.5,199.7622 v -649.7622 l 187.5,206.4178 z" | ||||
|          id="path1201-3-1" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 1387.5,3787.5001 562.50001,3617.6989 v 448.4953 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.09587288" | ||||
|          id="path42-2-0-4-1-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          style="opacity:1;fill:#f9d59e;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.52051163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 487.50001,4087.5001 -465.000009,165 V 3480 l 465.000009,120.0001 z" | ||||
|          id="path1201-3-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /></g></g></svg> | ||||
| After Width: | Height: | Size: 11 KiB | 
							
								
								
									
										208
									
								
								mamweb/static/images/logo_4.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,208 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| 
 | ||||
| <svg | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    version="1.1" | ||||
|    id="svg2" | ||||
|    xml:space="preserve" | ||||
|    width="1116.5013" | ||||
|    height="404.98737" | ||||
|    viewBox="0 0 1116.5013 404.98736" | ||||
|    sodipodi:docname="logo_soustredeni.svg" | ||||
|    inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"><metadata | ||||
|      id="metadata8"><rdf:RDF><cc:Work | ||||
|          rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs | ||||
|      id="defs6" /><sodipodi:namedview | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1" | ||||
|      objecttolerance="10" | ||||
|      gridtolerance="10" | ||||
|      guidetolerance="10" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:window-width="1916" | ||||
|      inkscape:window-height="1151" | ||||
|      id="namedview4" | ||||
|      showgrid="true" | ||||
|      inkscape:zoom="1.1893563" | ||||
|      inkscape:cx="542.48119" | ||||
|      inkscape:cy="65.762526" | ||||
|      inkscape:window-x="1922" | ||||
|      inkscape:window-y="47" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="g12" | ||||
|      inkscape:snap-page="true"><inkscape:grid | ||||
|        type="xygrid" | ||||
|        id="grid903" | ||||
|        originx="-3.4986323" | ||||
|        originy="-416.4963" /></sodipodi:namedview><g | ||||
|      id="g10" | ||||
|      inkscape:groupmode="layer" | ||||
|      inkscape:label="ink_ext_XXXXXX" | ||||
|      transform="matrix(1.3333333,0,0,-1.3333333,-3.4986322,821.48366)"><g | ||||
|        id="g12" | ||||
|        transform="scale(0.1)"><path | ||||
|          d="m 8335.3454,4798.1624 -595.1505,-620.7555 h -585.3165 l 595.2607,620.7555 h 585.2063" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.18195856" | ||||
|          id="path14" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7078.5791,4120.5393 h -0.5073 l 0.2556,0.2663 z" | ||||
|          style="fill:#e84e10;fill-opacity:0.94117647;fill-rule:nonzero;stroke:none;stroke-width:0.93578213" | ||||
|          id="path38" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7102.4996,4177.5001 -0.089,-0.093 h -708.1905 v 738.7467 l 708.2801,-738.6537" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99787205" | ||||
|          id="path40" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6937.5002,4101.5435 v -464.0434 h -444.9049 v 464.0434 h 444.9049" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.88309515" | ||||
|          id="path42" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 6337.5002,5718.9966 V 5062.5001 L 6022.709,5390.7482 Z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89475256" | ||||
|          id="path44" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 5962.5001,4650.0001 -337.5,337.5 337.5,337.5 337.5001,-337.5 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.95725137" | ||||
|          id="path46" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6420.0002,3637.5001 v 465 l -457.5001,1.0607 -330,-466.0607 c 166.1399,-0.083 621.3604,0 787.5001,0 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.6284067" | ||||
|          id="path40-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 5587.5001,5719.164 v -656.6639 l 314.8715,328.332 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89498103" | ||||
|          id="path44-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 6000.0001,4575.0001 v -394.33 l 314.7902,-1.1147 c -6.0705,262.4914 -52.96,471.0265 -314.7902,395.4447 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89475173" | ||||
|          id="path44-3-2" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 6320.8633,4912.5001 -6.073,-732.9447 -314.7902,395.4447 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89933741" | ||||
|          id="path44-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="M 1387.5,3106.9263 26.145617,3112.5 26.239743,3429.3745 1387.5,3732.5654 Z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 2775.0001,3109.1558 H 1462.5 v 640.8443 l 525,-112.5001 787.5001,206.4179 z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 4237.5001,3110.2705 h -1387.5 l 0,752.2296 675,150 712.5,-246.8936 z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 5550.0001,3112.5 h -1237.5 l 0,626.1475 618.75,-176.1474 h 618.75 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 6937.5002,3105.8115 -1312.5001,-1.1287 0,457.8173 h 1312.5001 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 8417.4395,3112.5 -1404.9393,-3.3582 v 453.3585 l 1405.2097,262.4998 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5496583" | ||||
|          id="path42-2-0" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 8328.8772,3870.0686 -1316.377,-232.5685 v 465 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-0-4" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7290.0002,4106.2559 1127.4393,-188.0235 1.5764,187.55 z" | ||||
|          style="fill:#fce7c6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.49430776" | ||||
|          id="path42-2-0-4-1" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7928.737,4175.1068 0.056,-0.059 490.363,0.083 -1.6663,624.8689 -595.4746,-624.9521" | ||||
|          style="fill:#fce7c6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.61935329" | ||||
|          id="path40-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7447.5002,4575.0001 -322.5,-337.5 -300,337.5 h 622.5" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.95725137" | ||||
|          id="path46-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 5925.0001,4575.0001 0,-392.8359 -337.5,280.3359 0,450 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.64549828" | ||||
|          id="path14-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 5887.5001,4125.0001 -337.5,-487.5 h -600 l 600,766.3199 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5409205" | ||||
|          id="path42-2-6-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fef6eb;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.25494003;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 5234.2851,6184.7748 1476.9917,14.5116 -447.5529,-438.1391 c -176.9133,-173.1921 -301.1716,-305.5968 -301.2238,-305.5968 -242.6593,249.8656 -457.1495,460.2945 -728.215,729.2243 z" | ||||
|          id="path1203" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccscc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.84425163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 6396.6887,5762.3467 353.3115,363.8943 V 4650.0001 l -351.0821,375 z" | ||||
|          id="path1201-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:17.39934158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 6825.0002,5400.0001 c 0,0 591.4391,-696.4314 637.5,-750 l -320.7729,0 h -316.7271 z" | ||||
|          id="path1199-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7462.5002,5400.0001 0,-637.5 -637.5,750 0,600 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.16200352" | ||||
|          id="path14-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7800.0002,4875.0001 0,1295.0654 600,3.3442 0,-1298.4097 z" | ||||
|          style="fill:#fef6eb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.52054787" | ||||
|          id="path42-2-6-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6839.0906,6172.2949 v 0 l 885.9096,-2.2294 0,-920.0654 -885.9096,922.2948" | ||||
|          style="fill:#fef6eb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.21138752" | ||||
|          id="path40-0" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:9.21227551;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 7725.0002,5137.5001 -187.5,199.7622 v -649.7622 l 187.5,206.4178 z" | ||||
|          id="path1201-3-1" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 1387.5,3787.5001 562.50001,3617.6989 v 448.4953 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.09587288" | ||||
|          id="path42-2-0-4-1-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          style="opacity:1;fill:#f9d59e;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.52051163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 487.50001,4087.5001 -465.000009,165 V 3480 l 465.000009,120.0001 z" | ||||
|          id="path1201-3-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /></g></g></svg> | ||||
| After Width: | Height: | Size: 11 KiB | 
							
								
								
									
										208
									
								
								mamweb/static/images/logo_5.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,208 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| 
 | ||||
| <svg | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    version="1.1" | ||||
|    id="svg2" | ||||
|    xml:space="preserve" | ||||
|    width="1116.5013" | ||||
|    height="404.98737" | ||||
|    viewBox="0 0 1116.5013 404.98736" | ||||
|    sodipodi:docname="logo_archiv.svg" | ||||
|    inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"><metadata | ||||
|      id="metadata8"><rdf:RDF><cc:Work | ||||
|          rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs | ||||
|      id="defs6" /><sodipodi:namedview | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1" | ||||
|      objecttolerance="10" | ||||
|      gridtolerance="10" | ||||
|      guidetolerance="10" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:window-width="1916" | ||||
|      inkscape:window-height="1031" | ||||
|      id="namedview4" | ||||
|      showgrid="true" | ||||
|      inkscape:zoom="1.1893563" | ||||
|      inkscape:cx="1110.6877" | ||||
|      inkscape:cy="92.60589" | ||||
|      inkscape:window-x="2" | ||||
|      inkscape:window-y="47" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="g12" | ||||
|      inkscape:snap-page="true"><inkscape:grid | ||||
|        type="xygrid" | ||||
|        id="grid903" | ||||
|        originx="-3.4986323" | ||||
|        originy="-416.4963" /></sodipodi:namedview><g | ||||
|      id="g10" | ||||
|      inkscape:groupmode="layer" | ||||
|      inkscape:label="ink_ext_XXXXXX" | ||||
|      transform="matrix(1.3333333,0,0,-1.3333333,-3.4986322,821.48366)"><g | ||||
|        id="g12" | ||||
|        transform="scale(0.1)"><path | ||||
|          d="m 8335.3454,4798.1624 -595.1505,-620.7555 h -585.3165 l 595.2607,620.7555 h 585.2063" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.18195856" | ||||
|          id="path14" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7078.5791,4120.5393 h -0.5073 l 0.2556,0.2663 z" | ||||
|          style="fill:#e84e10;fill-opacity:0.94117647;fill-rule:nonzero;stroke:none;stroke-width:0.93578213" | ||||
|          id="path38" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7102.4996,4177.5001 -0.089,-0.093 h -708.1905 v 738.7467 l 708.2801,-738.6537" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99787205" | ||||
|          id="path40" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6937.5002,4101.5435 v -464.0434 h -444.9049 v 464.0434 h 444.9049" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.88309515" | ||||
|          id="path42" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 6337.5002,5718.9966 V 5062.5001 L 6022.709,5390.7482 Z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89475256" | ||||
|          id="path44" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 5962.5001,4650.0001 -337.5,337.5 337.5,337.5 337.5001,-337.5 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.95725137" | ||||
|          id="path46" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6420.0002,3637.5001 v 465 l -457.5001,1.0607 -330,-466.0607 c 166.1399,-0.083 621.3604,0 787.5001,0 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.6284067" | ||||
|          id="path40-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 5587.5001,5719.164 v -656.6639 l 314.8715,328.332 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89498103" | ||||
|          id="path44-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 6000.0001,4575.0001 v -394.33 l 314.7902,-1.1147 c -6.0705,262.4914 -52.96,471.0265 -314.7902,395.4447 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89475173" | ||||
|          id="path44-3-2" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 6320.8633,4912.5001 -6.073,-732.9447 -314.7902,395.4447 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89933741" | ||||
|          id="path44-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="M 1387.5,3106.9263 26.145617,3112.5 26.239743,3429.3745 1387.5,3732.5654 Z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 2775.0001,3109.1558 H 1462.5 v 640.8443 l 525,-112.5001 787.5001,206.4179 z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 4237.5001,3110.2705 h -1387.5 l 0,752.2296 675,150 712.5,-246.8936 z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 5550.0001,3112.5 h -1237.5 l 0,626.1475 618.75,-176.1474 h 618.75 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 6937.5002,3105.8115 -1312.5001,-1.1287 0,457.8173 h 1312.5001 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 8417.4395,3112.5 -1404.9393,-3.3582 v 453.3585 l 1405.2097,262.4998 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5496583" | ||||
|          id="path42-2-0" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 8328.8772,3870.0686 -1316.377,-232.5685 v 465 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-0-4" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7290.0002,4106.2559 1127.4393,-188.0235 1.5764,187.55 z" | ||||
|          style="fill:#fce7c6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.49430776" | ||||
|          id="path42-2-0-4-1" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7928.737,4175.1068 0.056,-0.059 490.363,0.083 -1.6663,624.8689 -595.4746,-624.9521" | ||||
|          style="fill:#fce7c6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.61935329" | ||||
|          id="path40-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7447.5002,4575.0001 -322.5,-337.5 -300,337.5 h 622.5" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.95725137" | ||||
|          id="path46-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 5925.0001,4575.0001 0,-392.8359 -337.5,280.3359 0,450 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.64549828" | ||||
|          id="path14-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 5887.5001,4125.0001 -337.5,-487.5 h -600 l 600,766.3199 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5409205" | ||||
|          id="path42-2-6-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fef6eb;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.25494003;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 5234.2851,6184.7748 1476.9917,14.5116 -447.5529,-438.1391 c -176.9133,-173.1921 -301.1716,-305.5968 -301.2238,-305.5968 -242.6593,249.8656 -457.1495,460.2945 -728.215,729.2243 z" | ||||
|          id="path1203" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccscc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.84425163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 6396.6887,5762.3467 353.3115,363.8943 V 4650.0001 l -351.0821,375 z" | ||||
|          id="path1201-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:17.39934158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 6825.0002,5400.0001 c 0,0 591.4391,-696.4314 637.5,-750 l -320.7729,0 h -316.7271 z" | ||||
|          id="path1199-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7462.5002,5400.0001 0,-637.5 -637.5,750 0,600 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.16200352" | ||||
|          id="path14-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7800.0002,4875.0001 0,1295.0654 600,3.3442 0,-1298.4097 z" | ||||
|          style="fill:#fef6eb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.52054787" | ||||
|          id="path42-2-6-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6839.0906,6172.2949 v 0 l 885.9096,-2.2294 0,-920.0654 -885.9096,922.2948" | ||||
|          style="fill:#fef6eb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.21138752" | ||||
|          id="path40-0" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:9.21227551;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 7725.0002,5137.5001 -187.5,199.7622 v -649.7622 l 187.5,206.4178 z" | ||||
|          id="path1201-3-1" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 1387.5,3787.5001 562.50001,3617.6989 v 448.4953 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.09587288" | ||||
|          id="path42-2-0-4-1-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          style="opacity:1;fill:#f9d59e;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.52051163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 487.50001,4087.5001 -465.000009,165 V 3480 l 465.000009,120.0001 z" | ||||
|          id="path1201-3-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /></g></g></svg> | ||||
| After Width: | Height: | Size: 11 KiB | 
							
								
								
									
										208
									
								
								mamweb/static/images/logo_6.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,208 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| 
 | ||||
| <svg | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    version="1.1" | ||||
|    id="svg2" | ||||
|    xml:space="preserve" | ||||
|    width="1116.5013" | ||||
|    height="404.98737" | ||||
|    viewBox="0 0 1116.5013 404.98736" | ||||
|    sodipodi:docname="logo_profil.svg" | ||||
|    inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"><metadata | ||||
|      id="metadata8"><rdf:RDF><cc:Work | ||||
|          rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs | ||||
|      id="defs6" /><sodipodi:namedview | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1" | ||||
|      objecttolerance="10" | ||||
|      gridtolerance="10" | ||||
|      guidetolerance="10" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:window-width="1916" | ||||
|      inkscape:window-height="1151" | ||||
|      id="namedview4" | ||||
|      showgrid="true" | ||||
|      inkscape:zoom="1.1893563" | ||||
|      inkscape:cx="542.48119" | ||||
|      inkscape:cy="65.762526" | ||||
|      inkscape:window-x="1922" | ||||
|      inkscape:window-y="47" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="g12" | ||||
|      inkscape:snap-page="true"><inkscape:grid | ||||
|        type="xygrid" | ||||
|        id="grid903" | ||||
|        originx="-3.4986323" | ||||
|        originy="-416.4963" /></sodipodi:namedview><g | ||||
|      id="g10" | ||||
|      inkscape:groupmode="layer" | ||||
|      inkscape:label="ink_ext_XXXXXX" | ||||
|      transform="matrix(1.3333333,0,0,-1.3333333,-3.4986322,821.48366)"><g | ||||
|        id="g12" | ||||
|        transform="scale(0.1)"><path | ||||
|          d="m 8335.3454,4798.1624 -595.1505,-620.7555 h -585.3165 l 595.2607,620.7555 h 585.2063" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.18195856" | ||||
|          id="path14" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7078.5791,4120.5393 h -0.5073 l 0.2556,0.2663 z" | ||||
|          style="fill:#e84e10;fill-opacity:0.94117647;fill-rule:nonzero;stroke:none;stroke-width:0.93578213" | ||||
|          id="path38" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7102.4996,4177.5001 -0.089,-0.093 h -708.1905 v 738.7467 l 708.2801,-738.6537" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99787205" | ||||
|          id="path40" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6937.5002,4101.5435 v -464.0434 h -444.9049 v 464.0434 h 444.9049" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.88309515" | ||||
|          id="path42" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 6337.5002,5718.9966 V 5062.5001 L 6022.709,5390.7482 Z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89475256" | ||||
|          id="path44" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 5962.5001,4650.0001 -337.5,337.5 337.5,337.5 337.5001,-337.5 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.95725137" | ||||
|          id="path46" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6420.0002,3637.5001 v 465 l -457.5001,1.0607 -330,-466.0607 c 166.1399,-0.083 621.3604,0 787.5001,0 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.6284067" | ||||
|          id="path40-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 5587.5001,5719.164 v -656.6639 l 314.8715,328.332 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89498103" | ||||
|          id="path44-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 6000.0001,4575.0001 v -394.33 l 314.7902,-1.1147 c -6.0705,262.4914 -52.96,471.0265 -314.7902,395.4447 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89475173" | ||||
|          id="path44-3-2" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 6320.8633,4912.5001 -6.073,-732.9447 -314.7902,395.4447 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.89933741" | ||||
|          id="path44-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="M 1387.5,3106.9263 26.145617,3112.5 26.239743,3429.3745 1387.5,3732.5654 Z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 2775.0001,3109.1558 H 1462.5 v 640.8443 l 525,-112.5001 787.5001,206.4179 z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 4237.5001,3110.2705 h -1387.5 l 0,752.2296 675,150 712.5,-246.8936 z" | ||||
|          style="fill:#f7cb87;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 5550.0001,3112.5 h -1237.5 l 0,626.1475 618.75,-176.1474 h 618.75 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccccc" /><path | ||||
|          d="m 6937.5002,3105.8115 -1312.5001,-1.1287 0,457.8173 h 1312.5001 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 8417.4395,3112.5 -1404.9393,-3.3582 v 453.3585 l 1405.2097,262.4998 z" | ||||
|          style="fill:#e84e10;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5496583" | ||||
|          id="path42-2-0" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 8328.8772,3870.0686 -1316.377,-232.5685 v 465 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.53136837" | ||||
|          id="path42-2-0-4" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7290.0002,4106.2559 1127.4393,-188.0235 1.5764,187.55 z" | ||||
|          style="fill:#fce7c6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.49430776" | ||||
|          id="path42-2-0-4-1" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 7928.737,4175.1068 0.056,-0.059 490.363,0.083 -1.6663,624.8689 -595.4746,-624.9521" | ||||
|          style="fill:#fce7c6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.61935329" | ||||
|          id="path40-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7447.5002,4575.0001 -322.5,-337.5 -300,337.5 h 622.5" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.95725137" | ||||
|          id="path46-6" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          d="m 5925.0001,4575.0001 0,-392.8359 -337.5,280.3359 0,450 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.64549828" | ||||
|          id="path14-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 5887.5001,4125.0001 -337.5,-487.5 h -600 l 600,766.3199 z" | ||||
|          style="fill:#fbe1b8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.5409205" | ||||
|          id="path42-2-6-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fef6eb;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.25494003;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 5234.2851,6184.7748 1476.9917,14.5116 -447.5529,-438.1391 c -176.9133,-173.1921 -301.1716,-305.5968 -301.2238,-305.5968 -242.6593,249.8656 -457.1495,460.2945 -728.215,729.2243 z" | ||||
|          id="path1203" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccscc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.84425163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 6396.6887,5762.3467 353.3115,363.8943 V 4650.0001 l -351.0821,375 z" | ||||
|          id="path1201-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:17.39934158;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 6825.0002,5400.0001 c 0,0 591.4391,-696.4314 637.5,-750 l -320.7729,0 h -316.7271 z" | ||||
|          id="path1199-9" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7462.5002,5400.0001 0,-637.5 -637.5,750 0,600 z" | ||||
|          style="fill:#fdedd5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.16200352" | ||||
|          id="path14-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 7800.0002,4875.0001 0,1295.0654 600,3.3442 0,-1298.4097 z" | ||||
|          style="fill:#fef6eb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.52054787" | ||||
|          id="path42-2-6-3" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="m 6839.0906,6172.2949 v 0 l 885.9096,-2.2294 0,-920.0654 -885.9096,922.2948" | ||||
|          style="fill:#fef6eb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.21138752" | ||||
|          id="path40-0" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          style="opacity:1;fill:#fdedd5;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:9.21227551;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 7725.0002,5137.5001 -187.5,199.7622 v -649.7622 l 187.5,206.4178 z" | ||||
|          id="path1201-3-1" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /><path | ||||
|          d="M 1387.5,3787.5001 562.50001,3617.6989 v 448.4953 z" | ||||
|          style="fill:#f9d59e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.09587288" | ||||
|          id="path42-2-0-4-1-7" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="cccc" /><path | ||||
|          style="opacity:1;fill:#f9d59e;fill-opacity:1;fill-rule:evenodd;stroke:#cc2200;stroke-width:22.52051163;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0" | ||||
|          d="m 487.50001,4087.5001 -465.000009,165 V 3480 l 465.000009,120.0001 z" | ||||
|          id="path1201-3-8" | ||||
|          inkscape:connector-curvature="0" | ||||
|          sodipodi:nodetypes="ccccc" /></g></g></svg> | ||||
| After Width: | Height: | Size: 11 KiB | 
|  | @ -13,6 +13,7 @@ | |||
|     <link href="{% static 'css/mamweb.css' %}" rel="stylesheet"> | ||||
|     <link href="{% static 'css/prettyPhoto.css' %}" rel="stylesheet" type="text/css" media="screen" charset="utf-8" /> | ||||
|     <script src="{% static 'js/jquery-1.11.1.js' %}"></script> | ||||
|     <script src="{% static 'js/jquery-3.4.1.js' %}"></script> | ||||
| 
 | ||||
|     <link rel="stylesheet" type="text/css" href="{% static 'fluent_comments/css/ajaxcomments.css' %}" /> | ||||
|     <script type="text/javascript" src="{% static 'fluent_comments/js/ajaxcomments.js' %}"></script> | ||||
|  | @ -56,13 +57,17 @@ | |||
| 		<div class='col-md-12'> | ||||
|           <a href='/'> | ||||
| 	    <div id="title" >M&M - korespondenční seminář a časopis MFF UK</div> | ||||
|             <div id="header" class="{% if noc %}NOC{% endif %}{% block header %}{% endblock %}"> | ||||
| 		<img class="logo" src="{% static 'images/logo.svg' %}" /> | ||||
|             <div id="header"> | ||||
|                 <div class="no-mobile" style="background-image: url('{{ fotka }}')"> | ||||
|                 {# TODO style=… není fancy řešení, ale u <img> se bojím, že mi to rozbije vzhled #} | ||||
| 		{% sitetree_menu from "main_menu" include "trunk" template "logo.html" %} | ||||
|                 </div> | ||||
| 		<img class="logo-mobile" src="{% static 'images/logo-mobile.svg' %}" /> | ||||
|             </div> | ||||
|             </a> | ||||
|         </div> | ||||
|       </div> | ||||
| 
 | ||||
|       <div class='row'> | ||||
| 	    <div class='col-md-12'> | ||||
| 
 | ||||
|  | @ -72,6 +77,9 @@ | |||
| 
 | ||||
| {# ========= MENU MOBILE ========== #} | ||||
| 
 | ||||
|         </div> | ||||
|       </div> | ||||
| 
 | ||||
| <!--Navbar--> | ||||
| <nav class="nav-button"> | ||||
| 
 | ||||
|  | @ -94,21 +102,24 @@ | |||
| 
 | ||||
| {# ========= END MENU ========== #} | ||||
| 
 | ||||
| 
 | ||||
|     <div class='row'> | ||||
| 	<div class='row content'> | ||||
| 	<div class='col-md-12'> | ||||
| 	    {% block content %} | ||||
| 	    {% endblock content %} | ||||
| 	        </div> | ||||
|         </div> | ||||
|     </div> | ||||
| 
 | ||||
| 	<div class='row'> | ||||
| 	  <div class='col-md-12'> | ||||
| 		<div id="footer"> | ||||
| 			<p class="license">S obsahem webu M&M je možné nakládat dle licence <a href="https://creativecommons.org/licenses/by/3.0/cz/">Creative Commons Attribution 3.0</a>.</p> | ||||
| 		</div> | ||||
| 		<p class="license-mobile">Korespondenční seminář M&M organizují převážně studenti <a herf="https://www.mff.cuni.cz/">MFF UK</a>. Organizaci semináře a vydávání časopisu podporuje <a href="https://jcmf.cz/">Jednota českých matematiků a fyziků</a>. S obsahem webu M&M je možné nakládat dle licence <a href="https://creativecommons.org/licenses/by/3.0/cz/">Creative Commons Attribution 3.0</a>.</p> | ||||
| 		<p class="license-mobile">Korespondenční seminář M&M organizují převážně studenti <a href="https://www.mff.cuni.cz/">MFF UK</a>. Organizaci semináře a vydávání časopisu podporuje <a href="https://jcmf.cz/">Jednota českých matematiků a fyziků</a>. S obsahem webu M&M je možné nakládat dle licence <a href="https://creativecommons.org/licenses/by/3.0/cz/">Creative Commons Attribution 3.0</a>.</p> | ||||
| 	  </div> | ||||
| 	</div> | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     <script src="{% static 'js/bootstrap.js' %}"></script> | ||||
|  |  | |||
|  | @ -9,105 +9,3 @@ | |||
| {{ flatpage.content }} | ||||
| </div> | ||||
| {% endblock content %} | ||||
| 
 | ||||
| {# nahraj spravne submenu #} | ||||
| {% block submenu %} | ||||
|   {# co-je-MaM #} | ||||
|   {% if "/co-je-MaM/" in flatpage.url %} | ||||
|     {% if "/uvod/" in flatpage.url %} | ||||
|       {% with "uvod" as selected %} | ||||
|       {% include "seminar/cojemam/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% elif "jak-resit" in flatpage.url %} | ||||
|       {% with "jak-resit" as selected %} | ||||
|       {% include "seminar/cojemam/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% elif "odmeny" in flatpage.url %} | ||||
|       {% with "odmeny" as selected %} | ||||
|       {% include "seminar/cojemam/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% elif "FAQ" in flatpage.url %} | ||||
|       {% with "FAQ" as selected %} | ||||
|       {% include "seminar/cojemam/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% elif "kontakt" in flatpage.url %} | ||||
|     {% else %} | ||||
|       {% include "seminar/cojemam/submenu.html" %} | ||||
|     {% endif %} | ||||
|   {% endif %} | ||||
|   {# soustredeni #} | ||||
|   {% if "/soustredeni/" in flatpage.url %} | ||||
|     {% if "/pripravujeme/" in flatpage.url %} | ||||
|       {% with "pripravujeme" as selected %} | ||||
|       {% include "seminar/soustredeni/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% else %} | ||||
|       {% with "uvod" as selected %} | ||||
|       {% include "seminar/soustredeni/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% endif %} | ||||
|   {% endif %} | ||||
|   {# zadani #} | ||||
|   {% if "/zadani/" in flatpage.url %} | ||||
|     {% if "/aktualni-cislo/" in flatpage.url %} | ||||
|       {% with "aktualni-cislo" as selected %} | ||||
|       {% include "seminar/zadani/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% elif "/vysledkova-listina/" in flatpage.url %} | ||||
|       {% with "vysledkova-listina" as selected %} | ||||
|       {% include "seminar/zadani/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% else %} | ||||
|       {% include "seminar/zadani/submenu.html" %} | ||||
|     {% endif %} | ||||
|   {% endif %} | ||||
|   {# clanky #} | ||||
|   {% if "/clanky/" in flatpage.url %} | ||||
|     {% if "/uvod/" in flatpage.url %} | ||||
|       {% with "uvod" as selected %} | ||||
|       {% include "seminar/clanky/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% elif "/org/" in flatpage.url %} | ||||
|       {% with "org" as selected %} | ||||
|       {% include "seminar/clanky/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% elif "/resitel/" in flatpage.url %} | ||||
|       {% with "resitel" as selected %} | ||||
|       {% include "seminar/clanky/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% elif "/jak-psat-vedecky-clanek/" in flatpage.url %} | ||||
|       {% with "jak-psat-vedecky-clanek" as selected %} | ||||
|       {% include "seminar/clanky/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% else %} | ||||
|       {% include "seminar/clanky/submenu.html" %} | ||||
|     {% endif %} | ||||
|   {% endif %} | ||||
|   {# archiv #} | ||||
|   {% if "/archiv/" in flatpage.url %} | ||||
|     {% if "/ulohy/" in flatpage.url %} | ||||
|       {% with "ulohy" as selected %} | ||||
|       {% include "seminar/archiv/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% elif "/vysledky/" in flatpage.url %} | ||||
|       {% with "vysledky" as selected %} | ||||
|       {% include "seminar/archiv/submenu.html" %} | ||||
|       {% endwith %} | ||||
|     {% else %} | ||||
|       {% include "seminar/archiv/submenu.html" %} | ||||
|     {% endif %} | ||||
|   {% endif %} | ||||
| {% endblock %} | ||||
| 
 | ||||
| {# zvirazneni menu #} | ||||
| {% block menu_uvod %}{% if not "/kontakt/" in flatpage.url %}{% if "/co-je-MaM/" in flatpage.url %}selected{% endif %}{% endif %}{% endblock %} | ||||
| {% block menu_soustredeni %}{% if "/soustredeni/" in flatpage.url %}selected{% endif %}{% endblock %} | ||||
| {% block menu_zadani %}{% if "/zadani/" in flatpage.url %}selected{% endif %}{% endblock %} | ||||
| {% block menu_clanky %}{% if "/clanky/" in flatpage.url %}selected{% endif %}{% endblock %} | ||||
| {% block menu_archiv %}{% if "/archiv/" in flatpage.url %}selected{% endif %}{% endblock %} | ||||
| {% block menu_odevzdat %}{% if "/kontakt/" in flatpage.url %}selected{% endif %}{% endblock %} | ||||
| 
 | ||||
| {# zmena titulniho obrazku #} | ||||
| {% block header %}{% if "/co-je-MaM/" in flatpage.url %}cojemam{% elif "/soustredeni/" in flatpage.url %}soustredeni{% elif "/zadani/" in flatpage.url %}zadani{% elif "/clanky/" in flatpage.url %}clanky{% elif "/archiv/" in flatpage.url %}archiv{% else %}odeslat{% endif %}{% endblock header %} | ||||
| 
 | ||||
| {# TODO zvirazneni submenu #} | ||||
|  |  | |||
							
								
								
									
										26
									
								
								mamweb/templates/logo.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,26 @@ | |||
| {% load staticfiles %} | ||||
| <img class="logo" | ||||
|     {% for item in sitetree_items %} | ||||
|         {% if item.is_active or item.in_current_branch %} | ||||
|             {% if forloop.counter == 1 %} | ||||
|                 src="{% static 'images/logo_1.svg' %}" | ||||
|             {% endif %} | ||||
|             {% if forloop.counter == 2 %} | ||||
|                 src="{% static 'images/logo_2.svg' %}" | ||||
|             {% endif %} | ||||
|             {% if forloop.counter == 3 %} | ||||
|                 src="{% static 'images/logo_3.svg' %}" | ||||
|             {% endif %} | ||||
|             {% if forloop.counter == 4 %} | ||||
|                 src="{% static 'images/logo_4.svg' %}" | ||||
|             {% endif %} | ||||
|             {% if forloop.counter == 5 %} | ||||
|                 src="{% static 'images/logo_5.svg' %}" | ||||
|             {% endif %} | ||||
|             {% if forloop.counter == 6 %} | ||||
|                 src="{% static 'images/logo_6.svg' %}" | ||||
|             {% endif %} | ||||
|         {% endif %} | ||||
|     {% endfor %} | ||||
|     src="{% static 'images/logo.svg' %}" | ||||
| /> | ||||
|  | @ -3,7 +3,9 @@ | |||
| {% autoescape off %} | ||||
| <ul class="menu"> | ||||
|     {% for item in sitetree_items %} | ||||
|         <li class="{% if item.has_children %}dropdown{% endif %} {% if item.is_current or item.in_current_branch %}active{% endif %}" >  | ||||
|         <li class="{% if item.has_children %}dropdown{% endif %} {% if item.is_current or item.in_current_branch %}active{% endif %}" | ||||
|             style="{% if item.title == "HIDDEN" %}display:none{% endif %}" | ||||
|         > | ||||
|             <a href="{% sitetree_url for item %}" > | ||||
|                 {{ item.title_resolved }} | ||||
|             </a> | ||||
|  |  | |||
|  | @ -3,7 +3,9 @@ | |||
| {% autoescape off %} | ||||
| <ul class="menu_mobile"> | ||||
|     {% for item in sitetree_items %} | ||||
|         <li class="{% if item.has_children %}dropdown{% endif %} {% if item.is_current or item.in_current_branch %}active{% endif %}"> | ||||
|         <li class="{% if item.has_children %}dropdown{% endif %} {% if item.is_current or item.in_current_branch %}active{% endif %}" | ||||
|             style="{% if item.title == "HIDDEN" %}display:none{% endif %}" | ||||
|         > | ||||
|             <a href="{% if item.has_children %}#{% else %}{% sitetree_url for item %}{% endif %}" {% if item.has_children %}class="dropdown-toggle" data-toggle="dropdown"{% endif %}> | ||||
|                 {{ item.title_resolved }} | ||||
|             </a> | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
							
								
								
									
										1603
									
								
								obalky/lisak.eps
									
									
									
									
									
								
							
							
						
						|  | @ -1,78 +0,0 @@ | |||
| \input czech.sty | ||||
| \input epsf | ||||
| \special{landscape} | ||||
| \nopagenumbers | ||||
| \hoffset=-1in | ||||
| \voffset=-1in | ||||
| \advance\voffset by 0.9cm | ||||
| %nove pridano, aby to fungovalo... | ||||
| \advance\hoffset by 6.5cm | ||||
| \hsize=22cm | ||||
| \vsize=16cm | ||||
| 
 | ||||
| \font\adrfonta=csssbx10 at 14pt | ||||
| \font\adrfontb=csssbx10 at 12pt | ||||
| \font\adrfontc=csss12 | ||||
| \font\tofont=csr12 at 16pt | ||||
| 
 | ||||
| \newdimen\fromskip | ||||
| \newdimen\toskip | ||||
| \fromskip=4.35cm | ||||
| \toskip=13.2cm | ||||
| 
 | ||||
| \def\first{\relax} | ||||
| 
 | ||||
| \catcode`_=13 | ||||
| %\catcode`_=12 | ||||
| 
 | ||||
| \def_{$\_$} | ||||
| 
 | ||||
| \advance\voffset by 2.5cm | ||||
| 
 | ||||
| 
 | ||||
| \def\obalka#1#2#3#4#5#6#7{ | ||||
| 
 | ||||
| \def\jmeno{#1} | ||||
| \def\prijm{#2} | ||||
| \def\skola{#3} | ||||
| \def\popis{} | ||||
| \def\first{} | ||||
| \def\ulice{#4} | ||||
| \def\PSC{#5} | ||||
| \def\mesto{#6} | ||||
| \def\stat{#7} | ||||
| \vskip-4mm\vbox to 0pt{\hbox to 0pt{\hskip1.4cm\epsfysize=2.55cm\epsfbox{lisak.eps}\hss}\vss} | ||||
| 
 | ||||
| \baselineskip=13pt | ||||
| \parindent=\fromskip | ||||
| \line{\indent\adrfonta Časopis M\&M,\hfil} | ||||
| \vskip3pt | ||||
| \line{\indent\adrfontb OPMK UK MFF\hfil} | ||||
| \vskip3pt | ||||
| \line{\indent\adrfontc Ke Karlovu 3, 121 16 Praha 2\hfil} | ||||
| \line{\indent\adrfontc Tel.: +420 221 911 235\hss} | ||||
| \line{\indent\adrfontc mam@atrey.karlin.mff.cuni.cz\hfil} | ||||
| 
 | ||||
| \vskip6.15cm | ||||
| \vbox to 0pt{\parindent=1.4cm\hsize=\toskip\advance\hsize by -1cm | ||||
| \vbox to 60pt{\vfil} \popis\vss} | ||||
| \parindent=\toskip | ||||
| \baselineskip=18pt | ||||
| \line{\indent\tofont\first\hfil} | ||||
| \line{\indent\tofont\jmeno\ \prijm\hfil} | ||||
| \ifx \skola \empty | ||||
| {} | ||||
| \else | ||||
| \line{\indent\tofont\skola\hfil} | ||||
| \fi | ||||
| \line{\indent\tofont\ulice\hfil} | ||||
| \line{\tofont\item{\PSC} \mesto\hfil} | ||||
| \vskip5pt | ||||
| \line{\indent\tofont\stat\hfil} | ||||
| 
 | ||||
| \vfil\eject | ||||
| } | ||||
| 
 | ||||
| %\obalka{Lenka}{Kopfová}{Leknínová 10}{746 01}{Opava} | ||||
| 
 | ||||
| 
 | ||||
|  | @ -1,53 +0,0 @@ | |||
| #!/usr/bin/python | ||||
| #coding: utf-8 | ||||
| 
 | ||||
| import psycopg2 | ||||
| import sys | ||||
| import subprocess | ||||
| import re | ||||
| 
 | ||||
| dbname="mam-prod" | ||||
| user="mam" | ||||
| 
 | ||||
| conn = psycopg2.connect("dbname={0} user={1}".format(dbname,user)) | ||||
| cur = conn.cursor() | ||||
| 
 | ||||
| names = [] | ||||
| 
 | ||||
| with open("obalky.sql") as qfile, open("obalky-template.tex") as texheader, open("obalky.tex","w") as texout : | ||||
|     texout.write(texheader.read()) | ||||
|     cur.execute(qfile.read()) | ||||
|     for row in cur.fetchall(): | ||||
|         (muz,jmeno,prijmeni,skola,ulice,mesto,psc,stat)=row | ||||
|         if (stat=='CZ'): | ||||
|             stat = "" | ||||
|         elif (stat=='SK'): | ||||
|             stat = "Slovenská republika" | ||||
|         else: | ||||
|             print("Neznamy stat: {}\n".format(stat)) | ||||
|         if (skola==None): | ||||
|             skola="" | ||||
|         psc = psc.replace(" ","") | ||||
|         psc = psc[0:3]+" "+psc[3:] | ||||
|          | ||||
|         texout.write("\\obalka{{{0}}}{{{1}}}{{{2}}}{{{3}}}{{{4}}}{{{5}}}{{{6}}}\n".format(jmeno,prijmeni,skola,ulice,psc,mesto,stat)) | ||||
|         names.append((jmeno,prijmeni)) | ||||
|     texout.write("\\bye\n") | ||||
| 
 | ||||
| cur.close() | ||||
| conn.close() | ||||
| 
 | ||||
| print("Spoustim csplain ...") | ||||
| output = subprocess.check_output(["csplain","obalky.tex"],stderr=subprocess.STDOUT) | ||||
| page = 0 | ||||
| for line in output.decode("utf-8").splitlines(): | ||||
|     pmatch = re.search("\[([0-9]+)\]",line) | ||||
|     if pmatch: | ||||
|         page = int(pmatch.group(1)) | ||||
|     errmatch = re.match("Overfull",line) | ||||
|     if errmatch: | ||||
|         print("Preteceni na strane",page,"u osoby",names[page][0],names[page][1]) | ||||
|          | ||||
| print("Spoustim dvipdf ...") | ||||
| subprocess.call(["dvipdf","obalky.dvi"]) | ||||
| print("Hotovo.") | ||||
|  | @ -1,26 +0,0 @@ | |||
| WITH akt_rocnik AS ( | ||||
| 	SELECT rocnik FROM seminar_rocniky  | ||||
| 	WHERE id=(SELECT aktualni_rocnik_id FROM seminar_nastaveni) | ||||
| ), id_rocniku AS ( | ||||
| 	SELECT id,prvni_rok  FROM seminar_rocniky  | ||||
| 	WHERE rocnik=(SELECT * FROM akt_rocnik) OR rocnik=(SELECT * FROM akt_rocnik)-1 | ||||
| ), id_cisel AS ( | ||||
| 	SELECT seminar_cisla.id FROM seminar_cisla  | ||||
| 	INNER JOIN id_rocniku ON rocnik_id=id_rocniku.id | ||||
| ), problemy AS ( | ||||
| 	SELECT seminar_problemy.id FROM seminar_problemy  | ||||
| 	INNER JOIN id_cisel ON cislo_zadani_id = id_cisel.id | ||||
| ), resitele AS( | ||||
| 	SELECT DISTINCT resitel_id FROM seminar_reseni  | ||||
| 	INNER JOIN problemy ON problem_id=problemy.id | ||||
| ) | ||||
| SELECT pohlavi_muz,jmeno,prijmeni,NULL AS skola,ulice,mesto,psc,stat FROM seminar_resitele  | ||||
| INNER JOIN resitele ON seminar_resitele.id=resitel_id | ||||
| WHERE zasilat='domu' AND rok_maturity > (SELECT MAX(prvni_rok) FROM id_rocniku) | ||||
| UNION | ||||
| SELECT res.pohlavi_muz,res.jmeno,res.prijmeni,sk.nazev,sk.ulice,sk.mesto,sk.psc,sk.stat  | ||||
| FROM seminar_resitele AS res | ||||
| INNER JOIN resitele ON res.id=resitel_id | ||||
| INNER JOIN seminar_skoly AS sk ON sk.id=skola_id | ||||
| WHERE zasilat='do_skoly' AND rok_maturity > (SELECT MAX(prvni_rok) FROM id_rocniku) | ||||
| ORDER BY prijmeni ASC, jmeno ASC | ||||
|  | @ -17,19 +17,17 @@ Jak moc by ses chtěl(a) zúčastnit následujících přednášek? | |||
| 
 | ||||
| <form enctype="multipart/form-data" action="." method="post"> | ||||
|   {% csrf_token %} | ||||
|   <table>{{form.as_table}} | ||||
|   </table> | ||||
|   <table> | ||||
|     {% for p in prednasky.prednaska_set.all %} | ||||
|     {% for p, h in prednasky %} | ||||
|     <tr><td><label>{{p.org}}: <span style="font-size: 175%">{{p.nazev}}</span></label></td></tr> | ||||
|     <tr><td><p><i>{{p.anotace}}</i></p></td></tr> | ||||
|     <tr><td><label>Obor: </label> {{p.obor}}</td></tr> | ||||
|     <tr><td><label>Obtížnost: </label> {{p.obtiznost}}</td>   </tr> | ||||
|     {% if p.klicova %}<tr><td><label>Klíčová slova: </label> {{p.klicova}}</td></tr>{% endif%} | ||||
|     <tr><td>Hodnocení: | ||||
|         <INPUT TYPE="radio" NAME="q{{p.pk}}" VALUE="-1"> rozhodně nechci | ||||
|         <INPUT TYPE="radio" NAME="q{{p.pk}}" VALUE="0" checked> je mi to jedno | ||||
|         <INPUT TYPE="radio" NAME="q{{p.pk}}" VALUE="1"> rozhodně chci | ||||
|         <INPUT TYPE="radio" NAME="q{{p.pk}}" VALUE="-1" {% if h == -1 %} CHECKED="checked" {% endif %} > rozhodně nechci | ||||
|         <INPUT TYPE="radio" NAME="q{{p.pk}}" VALUE="0" {% if h == 0 %} CHECKED="checked" {% endif %}> je mi to jedno | ||||
|         <INPUT TYPE="radio" NAME="q{{p.pk}}" VALUE="1" {% if h == 1 %} CHECKED="checked" {% endif %}> rozhodně chci | ||||
|     </td></tr> | ||||
|     <tr><td> </td></tr> | ||||
|     {% endfor %} | ||||
|  |  | |||
|  | @ -1,9 +1,5 @@ | |||
| {% extends "prednasky/base.html" %} | ||||
| 
 | ||||
| 
 | ||||
| {% block header %}hlasovani{% endblock %} | ||||
| 
 | ||||
| 
 | ||||
| {% block content %} | ||||
|   <h1>{% block nadpis1a %}{% block nadpis1b %}Hlasování o přednáškách{% endblock %}{% endblock %}</h1> | ||||
|   {# Projdi vsechny seznamy #} | ||||
|  | @ -19,6 +15,8 @@ | |||
|     <a href="/prednasky/seznam_prednasek/{{seznam.id}}/export">Export</a> | ||||
|     </li> | ||||
|   {% endfor %} | ||||
|   </ul> | ||||
|   </div> | ||||
| 
 | ||||
| {% endblock %} | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,9 +1,5 @@ | |||
| {% extends "prednasky/base.html" %} | ||||
| 
 | ||||
| 
 | ||||
| {% block header %}seznam_prednasek{% endblock %} | ||||
| 
 | ||||
| 
 | ||||
| {% block content %} | ||||
|   <h1>{% block nadpis1a %}Průběžné výsledky hlasování{% endblock %}</h1> | ||||
|   <div class="mam-org-only"> | ||||
|  | @ -15,5 +11,7 @@ | |||
|       {{ prednaska.body }} b</i>) – {{ prednaska.org }} | ||||
|     </li> | ||||
|   {% endfor %} | ||||
|   </ul> | ||||
|   </div> | ||||
| 
 | ||||
| {% endblock %} | ||||
|  |  | |||
|  | @ -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 %} | ||||
|  |  | |||
|  | @ -1,14 +1,25 @@ | |||
| from django.urls import path | ||||
| from django.contrib.auth.decorators import user_passes_test | ||||
| from seminar.utils import org_required, resitel_required | ||||
| from . import views | ||||
| 
 | ||||
| staff_member_required = user_passes_test(lambda u: u.is_staff) | ||||
| 
 | ||||
| urlpatterns = [ | ||||
| 	path('prednasky/', views.newPrednaska), | ||||
| 	path( | ||||
| 		'prednasky/', | ||||
| 		resitel_required(views.newPrednaska) | ||||
| 	), | ||||
| 	path('prednasky/hotovo', views.Prednaska_hotovo), | ||||
| 	path('prednasky/metaseznam_prednasek', staff_member_required(views.MetaSeznamListView.as_view()), name='metaseznam-list'), | ||||
| 	path('prednasky/seznam_prednasek/<int:seznam>/export', staff_member_required(views.SeznamExportView), name='seznam-export'), | ||||
| 	path('prednasky/seznam_prednasek/<int:seznam>/', staff_member_required(views.SeznamListView.as_view()), name='seznam-list'), | ||||
| #	path('korektury/help/', staff_member_required(views.KorekturyHelpView.as_view()), name='korektury-help'), | ||||
| 	path( | ||||
| 		'prednasky/metaseznam_prednasek', | ||||
| 		org_required(views.MetaSeznamListView.as_view()), | ||||
| 		name='metaseznam-list'), | ||||
| 	path( | ||||
| 		'prednasky/seznam_prednasek/<int:seznam>/export', | ||||
| 		org_required(views.SeznamExportView), | ||||
| 		name='seznam-export' | ||||
| 	), | ||||
| 	path( | ||||
| 		'prednasky/seznam_prednasek/<int:seznam>/', | ||||
| 		org_required(views.SeznamListView.as_view()), | ||||
| 		name='seznam-list' | ||||
| 	), | ||||
| ] | ||||
|  |  | |||
|  | @ -4,41 +4,52 @@ from django.views import generic | |||
| from django.shortcuts import HttpResponseRedirect | ||||
| from django.core.exceptions import ObjectDoesNotExist | ||||
| from django.db.models import Sum | ||||
| from django.forms import Form | ||||
| 
 | ||||
| from prednasky.models import Prednaska, Hlasovani, Seznam, STAV_NAVRH | ||||
| from seminar.models import Soustredeni | ||||
| from prednasky.forms import NewPrednaskyForm | ||||
| from seminar.models import Soustredeni, Osoba | ||||
| 
 | ||||
| def newPrednaska(request): | ||||
| 	# hlasovani se vztahuje k nejnovejsimu soustredeni | ||||
| 	sous = Soustredeni.objects.first() | ||||
| 	seznam = Seznam.objects.filter(soustredeni = sous, stav = STAV_NAVRH).first() | ||||
| 	print(seznam) | ||||
| 	osoba = Osoba.objects.filter(user=request.user).first() | ||||
| 	ucastnik = osoba.plne_jmeno() + ' ' + str(osoba.id) | ||||
| 	# obsluha formulare | ||||
| 	if request.method == 'POST': | ||||
| 		form = NewPrednaskyForm(request.POST, request.FILES) | ||||
| 		form = Form(request.POST, request.FILES) | ||||
| 		if form.is_valid(): | ||||
| 			jmeno = form.cleaned_data['ucastnik'] | ||||
| 			# id z důvodu duplicitních jmen (přechod z jména na objekt Osoby nějak kape na tom, | ||||
| 			# že všechna předchozí hlasování zde mají náhodný string…) | ||||
| 			# TODO Změnit to na Osobu | ||||
| 
 | ||||
| 			# TODO v následujících řádcích je zbytečně mnoho dotazů na QuerySet (pokud účastník hlasoval, hlasoval u všech) | ||||
| 			for i in request.POST: | ||||
| 				if i[0] == 'q': | ||||
| 					prednaska = Prednaska.objects.filter(pk=int(i[1:]))[0] | ||||
| 					hlasovani = Hlasovani.objects.filter(ucastnik=ucastnik, prednaska=prednaska).first() | ||||
| 					if not hlasovani: | ||||
| 						hlasovani = Hlasovani() | ||||
| 					print("q:"+i[1:]) | ||||
| 					hlasovani.prednaska = Prednaska.objects.filter(pk = int(i[1:]))[0] | ||||
| 					hlasovani.body = int(request.POST[i]) | ||||
| 					hlasovani.ucastnik = jmeno | ||||
| 						hlasovani.prednaska = prednaska | ||||
| 						hlasovani.ucastnik = ucastnik | ||||
| 						hlasovani.seznam = seznam | ||||
| 					hlasovani.body = int(request.POST[i]) | ||||
| 					hlasovani.save() | ||||
| 
 | ||||
| 			# presmerovani na prave vzniklou galerii | ||||
| 			return HttpResponseRedirect('./hotovo') | ||||
| 
 | ||||
| 	def prednaska_hodnoceni(prednaska): | ||||
| 		h = Hlasovani.objects.filter(ucastnik=ucastnik, prednaska=prednaska).first() | ||||
| 		if h: | ||||
| 			return prednaska, h.body | ||||
| 		else: | ||||
| 		form = NewPrednaskyForm() | ||||
| 			return prednaska, 0 | ||||
| 
 | ||||
| 	return render( | ||||
| 		request, | ||||
| 		'prednasky/base.html', | ||||
| 		{'form': form, 'prednasky': seznam} | ||||
| 		{'prednasky': map(prednaska_hodnoceni, seznam.prednaska_set.all())} | ||||
| 	) | ||||
| 
 | ||||
| 
 | ||||
|  | @ -57,12 +68,26 @@ 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""" | ||||
| 	"""Vypíše výsledky hlasování ve formátu pro prologovský optimalizátor""" | ||||
| 	# TODO zřejmě se nepoužívá, časem vyřadit? nahradit tabulkou vhodnější pro | ||||
| 	# lidi? | ||||
| 	hlasovani = Hlasovani.objects.filter(seznam=seznam) | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ from django.contrib import admin | |||
| from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin, PolymorphicChildModelFilter | ||||
| from reversion.admin import VersionAdmin | ||||
| from django_reverse_admin import ReverseModelAdmin | ||||
| from solo.admin import SingletonModelAdmin | ||||
| 
 | ||||
| # Todo: reversion | ||||
| 
 | ||||
|  | @ -173,5 +174,5 @@ class TextNodeAdmin(PolymorphicChildModelAdmin): | |||
| 	show_in_index = True | ||||
| 
 | ||||
| 
 | ||||
| admin.site.register(m.Nastaveni) | ||||
| admin.site.register(m.Nastaveni, SingletonModelAdmin) | ||||
| admin.site.register(m.Novinky) | ||||
|  |  | |||
|  | @ -9,6 +9,7 @@ from .models import Problem, Cislo, Reseni, Nastaveni, Rocnik, Soustredeni | |||
| #from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva | ||||
| from .ovvpfile import OvvpFile | ||||
| from seminar import views | ||||
| from seminar.utils import aktivniResitele | ||||
| 
 | ||||
| class ExportIndexView(generic.View): | ||||
| 	def get(self, request): | ||||
|  | @ -76,7 +77,7 @@ class ExportRocnikView(generic.View): | |||
| 
 | ||||
| 		rocnik = get_object_or_404(Rocnik, prvni_rok=pr, exportovat=True) | ||||
| 		cislo = rocnik.posledni_zverejnena_vysledkovka_cislo() | ||||
| 		resitele = views.aktivniResitele(cislo.rocnik.rocnik, cislo.poradi, True) | ||||
| 		resitele = aktivniResitele(cislo, True) | ||||
| 		slovnik_body = views.secti_body_za_rocnik(cislo, resitele) | ||||
| 		_, setrizeni_resitele, setrizene_body = views.setrid_resitele_a_body(slovnik_body) | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,17 +1,17 @@ | |||
| # -*- 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 | ||||
|     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'] | ||||
|  |  | |||
|  | @ -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 | ||||
| 
 | ||||
|  | @ -877,6 +877,7 @@ class Migration(migrations.Migration): | |||
|         ), | ||||
|         migrations.RunSQL( | ||||
|             sql='update seminar_rocniky set rocnik_n = cast (rocnik as integer)', | ||||
|             reverse_sql='update seminar_rocniky set rocnik_n = cast (rocnik as nvarchar(16))', | ||||
|         ), | ||||
|         migrations.RemoveField( | ||||
|             model_name='rocnik', | ||||
|  | @ -1733,15 +1734,19 @@ class Migration(migrations.Migration): | |||
|         # migr 0052 | ||||
|         migrations.RunPython( | ||||
|            spoj_k_organizatorum_osoby, | ||||
|         	reverse_code=migrations.RunPython.noop, | ||||
|         ), | ||||
|         migrations.RunPython( | ||||
|             fix_problem, | ||||
|             reverse_code=migrations.RunPython.noop, | ||||
|         ), | ||||
|         migrations.RunPython( | ||||
|             fix_pohadka, | ||||
|             reverse_code=migrations.RunPython.noop, | ||||
|         ), | ||||
|         migrations.RunPython( | ||||
|             fix_novinka, | ||||
|             reverse_code=migrations.RunPython.noop, | ||||
|         ), | ||||
| 
 | ||||
|         # migr 0053 | ||||
|  | @ -1795,35 +1800,49 @@ class Migration(migrations.Migration): | |||
|         # migr 0056 | ||||
|         migrations.RunPython( | ||||
|             generuj_RocnikNody_a_CisloNody, | ||||
|             reverse_code=migrations.RunPython.noop, | ||||
|         ), | ||||
| 
 | ||||
|         # migr 0057 | ||||
|         migrations.RunPython( | ||||
|             reseni_to_Reseni, | ||||
|             reverse_code=migrations.RunPython.noop, | ||||
|         ), | ||||
| 
 | ||||
|         # migr 0058 | ||||
|         migrations.RunPython( | ||||
|             uloha_to_Uloha, | ||||
|             reverse_code=migrations.RunPython.noop, | ||||
|         ), | ||||
|         migrations.RunPython( | ||||
|             tema_to_Tema, | ||||
|             reverse_code=migrations.RunPython.noop, | ||||
|         ), | ||||
|         migrations.RunPython( | ||||
|             clanek_to_Clanek, | ||||
|             reverse_code=migrations.RunPython.noop, | ||||
|         ), | ||||
|         migrations.RunPython( | ||||
|             konfery_rucne, | ||||
|             reverse_code=migrations.RunPython.noop, | ||||
|         ), | ||||
| 
 | ||||
|         # migr "fix 0058" | ||||
|         migrations.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, | ||||
|             reverse_code=migrations.RunPython.noop, | ||||
|         ), | ||||
| 
 | ||||
|         # migr 0060 | ||||
|         migrations.RunPython( | ||||
|             pokacej_les, | ||||
|             reverse_code=migrations.RunPython.noop, | ||||
|         ), | ||||
| 
 | ||||
|         migrations.RemoveField( | ||||
|  |  | |||
|  | @ -18,7 +18,8 @@ class Migration(migrations.Migration): | |||
|             preserve_default=False, | ||||
|         ), | ||||
|         migrations.RunSQL( | ||||
|             sql="update seminar_rocniky set rocnik_n = cast (rocnik as integer)" | ||||
|             sql="update seminar_rocniky set rocnik_n = cast (rocnik as integer)", | ||||
|             reverse_sql='update seminar_rocniky set rocnik_n = cast (rocnik as nvarchar(16))', | ||||
|         ), | ||||
|         migrations.RemoveField( | ||||
|             model_name='rocnik', | ||||
|  |  | |||
|  | @ -75,8 +75,8 @@ class Migration(migrations.Migration): | |||
| 	] | ||||
| 
 | ||||
| 	operations = [ | ||||
| 		migrations.RunPython(spoj_k_organizatorum_osoby), | ||||
| 		migrations.RunPython(fix_problem), | ||||
| 		migrations.RunPython(fix_pohadka), | ||||
| 		migrations.RunPython(fix_novinka), | ||||
| 		migrations.RunPython(spoj_k_organizatorum_osoby, migrations.RunPython.noop), | ||||
| 		migrations.RunPython(fix_problem, migrations.RunPython.noop), | ||||
| 		migrations.RunPython(fix_pohadka, migrations.RunPython.noop), | ||||
| 		migrations.RunPython(fix_novinka, migrations.RunPython.noop), | ||||
| 	] | ||||
|  |  | |||
|  | @ -43,5 +43,5 @@ class Migration(migrations.Migration): | |||
| 	] | ||||
| 
 | ||||
| 	operations = [ | ||||
| 		migrations.RunPython(generuj_RocnikNody_a_CisloNody), | ||||
| 		migrations.RunPython(generuj_RocnikNody_a_CisloNody, migrations.RunPython.noop), | ||||
| 	] | ||||
|  |  | |||
|  | @ -30,5 +30,5 @@ class Migration(migrations.Migration): | |||
| 	] | ||||
| 
 | ||||
| 	operations = [ | ||||
| 		migrations.RunPython(reseni_to_Reseni)		 | ||||
| 		migrations.RunPython(reseni_to_Reseni, migrations.RunPython.noop) | ||||
| 	] | ||||
|  |  | |||
|  | @ -154,8 +154,8 @@ class Migration(migrations.Migration): | |||
| 
 | ||||
| 	operations = [ | ||||
| 		# ashes to Ashes, dust to Dust.... | ||||
| 		migrations.RunPython(uloha_to_Uloha), | ||||
| 		migrations.RunPython(tema_to_Tema), | ||||
| 		migrations.RunPython(clanek_to_Clanek), | ||||
| 		migrations.RunPython(konfery_rucne), | ||||
| 		migrations.RunPython(uloha_to_Uloha, migrations.RunPython.noop), | ||||
| 		migrations.RunPython(tema_to_Tema, migrations.RunPython.noop), | ||||
| 		migrations.RunPython(clanek_to_Clanek, migrations.RunPython.noop), | ||||
| 		migrations.RunPython(konfery_rucne, migrations.RunPython.noop), | ||||
| 	] | ||||
|  |  | |||
|  | @ -21,9 +21,9 @@ def vytvor_pohadkanode(apps, schema_editor): | |||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
| 	dependencies = [ | ||||
| 		('seminar', '0058_problem_to_uloha_tema_clanek'), | ||||
| 		('seminar', 'fix_0058'), | ||||
| 	] | ||||
| 
 | ||||
| 	operations = [ | ||||
| 		migrations.RunPython(vytvor_pohadkanode), | ||||
| 		migrations.RunPython(vytvor_pohadkanode, migrations.RunPython.noop), | ||||
| 	] | ||||
|  |  | |||
|  | @ -108,5 +108,5 @@ class Migration(migrations.Migration): | |||
| 	] | ||||
| 
 | ||||
| 	operations = [ | ||||
| 		migrations.RunPython(pokacej_les), | ||||
| 		migrations.RunPython(pokacej_les, migrations.RunPython.noop), | ||||
| 	] | ||||
|  |  | |||
|  | @ -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), | ||||
| 	] | ||||
|  |  | |||
|  | @ -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), | ||||
| 	] | ||||
|  |  | |||
|  | @ -103,5 +103,5 @@ class Migration(migrations.Migration): | |||
|             name='nazev', | ||||
|             field=models.TextField(help_text='Tento název se zobrazuje v nabídkách pro výběr vhodného TreeNode', null=True, verbose_name='název tohoto node'), | ||||
|         ), | ||||
|         migrations.RunPython(fix_all_names), | ||||
|         migrations.RunPython(fix_all_names, migrations.RunPython.noop), | ||||
|     ] | ||||
|  |  | |||
|  | @ -65,6 +65,9 @@ class Migration(migrations.Migration): | |||
|             model_name='reseni', | ||||
|             name='text_zkraceny', | ||||
|         ), | ||||
|         migrations.DeleteModel(  # nejdříve musím smazat objekt ukazující na konferu, | ||||
|             name='KonferaNode',  # pak až změnit klíč konferám (viz další operace) | ||||
|         ), | ||||
|         migrations.AddField( | ||||
|             model_name='konfera', | ||||
|             name='problem_ptr', | ||||
|  | @ -95,9 +98,6 @@ class Migration(migrations.Migration): | |||
|         migrations.DeleteModel( | ||||
|             name='ClanekNode', | ||||
|         ), | ||||
|         migrations.DeleteModel( | ||||
|             name='KonferaNode', | ||||
|         ), | ||||
|         migrations.CreateModel( | ||||
|             name='Konfery_Ucastnici', | ||||
|             fields=[ | ||||
|  |  | |||
							
								
								
									
										56
									
								
								seminar/migrations/0084_clanek_cislo.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,56 @@ | |||
| # Generated by Django 2.2.13 on 2020-06-17 19:06 | ||||
| 
 | ||||
| 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') | ||||
| 	Reseni = apps.get_model('seminar', 'Reseni') | ||||
| 	ReseniNode = apps.get_model('seminar', 'ReseniNode') | ||||
| 	CisloNode = apps.get_model('seminar', 'CisloNode') | ||||
| 	ContentType = apps.get_model('contenttypes', 'ContentType') | ||||
| 	 | ||||
| 	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 | ||||
| 			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: | ||||
| 			#if isinstance(aktualniNode, CisloNode): # Nejde, protože aktualniNode se tváří jako obecný TreeNode... | ||||
| 			# Ale v dokumentaci k django-polymorphic se píše, že tam jsou nastavené nějaké fieldy na známé hodnoty :-) | ||||
| 			# https://django-polymorphic.readthedocs.io/en/stable/migrating.html | ||||
| 			cislonode_ct = ContentType.objects.get_for_model(CisloNode) | ||||
| 			akt_ct = aktualniNode.polymorphic_ctype | ||||
| 			if akt_ct == cislonode_ct: | ||||
| 				# Zneužíváme tu opačnou vazbu k treenode_ptr, protože | ||||
| 				# aktualniNode je "jen" TreeNode a ne CisloNode | ||||
| 				c.cislo = aktualniNode.cislonode.cislo | ||||
| 				c.save() | ||||
| 				break | ||||
| 			aktualniNode = get_parent(aktualniNode) | ||||
| 		 | ||||
| 
 | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ('seminar', '0083_auto_20200506_1952'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.AddField( | ||||
|             model_name='clanek', | ||||
|             name='cislo', | ||||
|             field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='vydane_clanky', to='seminar.Cislo', verbose_name='číslo vydání'), | ||||
|         ), | ||||
|     migrations.RunPython(najdi_cislo, migrations.RunPython.noop), | ||||
|     ] | ||||
							
								
								
									
										32
									
								
								seminar/migrations/0085_nepovinna_prezdivka.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,32 @@ | |||
| # Generated by Django 2.2.13 on 2020-06-24 22:57 | ||||
| 
 | ||||
| from django.db import migrations, models | ||||
| 
 | ||||
| def smaz_prezdivku(apps, schema_editor): | ||||
|     Osoba = apps.get_model('seminar', 'Osoba') | ||||
| 
 | ||||
|     for o in Osoba.objects.filter(prezdivka=''): | ||||
|         o.prezdivka = None | ||||
|         o.save() | ||||
| 
 | ||||
| def pridej_prezdivku(apps, schema_editor): | ||||
|     Osoba = apps.get_model('seminar', 'Osoba') | ||||
| 
 | ||||
|     for o in Osoba.objects.filter(prezdivka=None): | ||||
|         o.prezdivka = '' | ||||
|         o.save() | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ('seminar', '0084_clanek_cislo'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.AlterField( | ||||
|             model_name='osoba', | ||||
|             name='prezdivka', | ||||
|             field=models.CharField(blank=True, max_length=256, null=True, verbose_name='přezdívka'), | ||||
|         ), | ||||
|     migrations.RunPython(smaz_prezdivku, pridej_prezdivku), | ||||
|     ] | ||||
							
								
								
									
										17
									
								
								seminar/migrations/0086_auto_20200819_0959.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -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'}, | ||||
|         ), | ||||
|     ] | ||||
							
								
								
									
										49
									
								
								seminar/migrations/0087_fix_polymorphism.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -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'] # 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): | ||||
| 	dependencies = [ | ||||
| 		('seminar', '0086_auto_20200819_0959'), | ||||
| 	] | ||||
| 	operations = [ | ||||
| 		migrations.RunPython(fix_treenode, migrations.RunPython.noop), | ||||
| 		migrations.RunPython(fix_problem, migrations.RunPython.noop), | ||||
| 	] | ||||
							
								
								
									
										35
									
								
								seminar/migrations/0088_perm_org_a_ucastnik.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,35 @@ | |||
| # Generated by Django 2.2.15 on 2020-09-05 10:10 | ||||
| from django.db import migrations | ||||
| 
 | ||||
| 
 | ||||
| def add_perms(apps, schema_editor): | ||||
|     ContentType = apps.get_model('contenttypes', 'ContentType') | ||||
|     User = apps.get_model('auth', 'User') | ||||
|     Permission = apps.get_model('auth', 'Permission') | ||||
|     Resitel = apps.get_model('seminar', 'Resitel') | ||||
| 
 | ||||
|     c = ContentType.objects.get_for_model(User) | ||||
|     org_perm = Permission.objects.filter(codename__exact='org').first() | ||||
|     if not org_perm: | ||||
|         org_perm = Permission.objects.create(codename='org', name='org', content_type=c) | ||||
|     resitel_perm = Permission.objects.filter(codename__exact='resitel').first() | ||||
|     if not resitel_perm: | ||||
|         resitel_perm = Permission.objects.create(codename='resitel', name='resitel', content_type=c) | ||||
|     for r in Resitel.objects.all(): | ||||
|         u = r.osoba.user | ||||
|         if u: | ||||
|             u.user_permissions.add(resitel_perm) | ||||
|     for org in User.objects.all(): | ||||
|         if org and org.is_staff: | ||||
|             org.user_permissions.add(org_perm) | ||||
| 
 | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ('seminar', '0087_fix_polymorphism'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.RunPython(add_perms, migrations.RunPython.noop), | ||||
|     ] | ||||
							
								
								
									
										18
									
								
								seminar/migrations/0089_cislo_datum_preddeadline.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,18 @@ | |||
| # Generated by Django 2.2.16 on 2020-10-13 19:40 | ||||
| 
 | ||||
| from django.db import migrations, models | ||||
| 
 | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ('seminar', '0088_perm_org_a_ucastnik'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.AddField( | ||||
|             model_name='cislo', | ||||
|             name='datum_preddeadline', | ||||
|             field=models.DateField(blank=True, help_text='Datum pro příjem řešení, která se otisknou v dalším čísle', null=True, verbose_name='datum předdeadline'), | ||||
|         ), | ||||
|     ] | ||||
							
								
								
									
										19
									
								
								seminar/migrations/0090_auto_20201110_1958.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,19 @@ | |||
| # Generated by Django 2.2.12 on 2020-11-10 18:58 | ||||
| 
 | ||||
| from django.db import migrations, models | ||||
| import django.db.models.deletion | ||||
| 
 | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ('seminar', '0089_cislo_datum_preddeadline'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.AlterField( | ||||
|             model_name='textnode', | ||||
|             name='text', | ||||
|             field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='seminar.Text', verbose_name='text'), | ||||
|         ), | ||||
|     ] | ||||
							
								
								
									
										14
									
								
								seminar/migrations/fix_0058.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						|  | @ -0,0 +1,14 @@ | |||
| from django.db import migrations | ||||
| 
 | ||||
| sql = "update seminar_problemy set typ = 'uloha' where typ like 'b_uloha_';" | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
| 	dependencies = [ | ||||
| 		('seminar', '0058_problem_to_uloha_tema_clanek'), | ||||
| 	] | ||||
| 
 | ||||
| 	operations = [ | ||||
| 		migrations.RunSQL(sql, sql), | ||||
| 	] | ||||
| 
 | ||||
|  | @ -13,7 +13,7 @@ from django.utils.encoding import force_text | |||
| from django.utils.text import slugify | ||||
| from django.urls import reverse | ||||
| from django.core.cache import cache | ||||
| from django.core.exceptions import ObjectDoesNotExist | ||||
| from django.core.exceptions import ObjectDoesNotExist, ValidationError | ||||
| from django.contrib.contenttypes.models import ContentType | ||||
| from django.utils.text import get_valid_filename | ||||
| from imagekit.models import ImageSpecField, ProcessedImageField | ||||
|  | @ -65,7 +65,7 @@ class Osoba(SeminarModelBase): | |||
| 
 | ||||
| 	prijmeni = models.CharField('příjmení', max_length=256) | ||||
| 
 | ||||
| 	prezdivka = models.CharField('přezdívka', max_length=256)  | ||||
| 	prezdivka = models.CharField('přezdívka', blank=True, null=True, max_length=256) | ||||
| 
 | ||||
| 	# User, pokud má na webu účet | ||||
| 	user = models.OneToOneField(settings.AUTH_USER_MODEL, blank=True, null=True,  | ||||
|  | @ -442,6 +442,9 @@ class Cislo(SeminarModelBase): | |||
| 	datum_deadline = models.DateField('datum deadline', blank=True, null=True, | ||||
| 		help_text='Datum pro příjem řešení úloh zadaných v tomto čísle') | ||||
| 
 | ||||
| 	datum_preddeadline = models.DateField('datum předdeadline', blank=True, null=True, | ||||
| 		help_text='Datum pro příjem řešení, která se otisknou v dalším čísle') | ||||
| 
 | ||||
| 	datum_deadline_soustredeni = models.DateField( | ||||
| 		'datum deadline soustředění', | ||||
| 		blank=True, null=True, | ||||
|  | @ -580,6 +583,11 @@ class Organizator(SeminarModelBase): | |||
| 		help_text="Škola, např. MFF, VŠCHT, VUT, ... prostě aby se nemuselo psát do studuje" | ||||
| 		"školu, ale jen obor, možnost zobrazit zvlášť") | ||||
| 
 | ||||
| 	def clean(self): | ||||
| 		if self.organizuje_od and self.organizuje_do and (self.organizuje_od > self.organizuje_do): | ||||
| 			raise ValidationError("Organizátor nemůže skončit s organizováním dříve než začal!") | ||||
| 		super().clean() | ||||
| 
 | ||||
| 	def __str__(self): | ||||
| 		if self.osoba.prezdivka: | ||||
| 			return "{} '{}' {}".format(self.osoba.jmeno, | ||||
|  | @ -591,6 +599,11 @@ class Organizator(SeminarModelBase): | |||
| 	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? | ||||
| 		# TODO: Sjednotit s tím, jak se řadí organizátoři v seznau orgů na webu | ||||
| 		ordering = ['-organizuje_do', 'osoba__jmeno', 'osoba__prijmeni'] | ||||
| 
 | ||||
| @reversion.register(ignore_duplicates=True) | ||||
| class Soustredeni(SeminarModelBase): | ||||
|  | @ -692,6 +705,7 @@ class Problem(SeminarModelBase,PolymorphicModel): | |||
| 		(STAV_SMAZANY, 'Smazaný'), | ||||
| 		] | ||||
| 	stav = models.CharField('stav problému', max_length=32, choices=STAV_CHOICES, blank=False, default=STAV_NAVRH) | ||||
| 	# Téma je taky Problém, takže má stavy, "zadané" témátko je aktuálně otevřené a dá se k němu něco poslat (řešení nebo článek) | ||||
| 
 | ||||
| 	zamereni = TaggableManager(verbose_name='zaměření',  | ||||
| 		help_text='Zaměření M/F/I/O problému, příp. další tagy', blank=True) | ||||
|  | @ -731,7 +745,9 @@ class Problem(SeminarModelBase,PolymorphicModel): | |||
| 	def verejne(self): | ||||
| 		# FIXME: Tohle se liší podle typu problému, má se udělat polymorfně. | ||||
| 		# Zatím je tu jen dummy fail-safe default: nic není veřejné. | ||||
| 		# Doporučené řešení: dělat tohle podle stavu problému a veřejnosti čísla, ve kterém je | ||||
| 		return False | ||||
| 		# FIXME: Tohle je blbost | ||||
| 		return (self.cislo_zadani and self.cislo_zadani.verejne()) | ||||
| 	verejne.boolean = True | ||||
| 
 | ||||
|  | @ -793,6 +809,9 @@ class Clanek(Problem): | |||
| 		verbose_name = 'Článek' | ||||
| 		verbose_name_plural = 'Články' | ||||
| 	 | ||||
| 	cislo = models.ForeignKey(Cislo, blank=True, null=True, on_delete=models.PROTECT, | ||||
| 		verbose_name='číslo vydání', related_name='vydane_clanky') | ||||
| 
 | ||||
| 	def kod_v_rocniku(self): | ||||
| 		if self.stav == 'zadany': | ||||
| # Nemělo by být potřeba | ||||
|  | @ -1456,7 +1475,7 @@ class TextNode(TreeNode): | |||
| 		verbose_name = 'Text (Node)' | ||||
| 		verbose_name_plural = 'Text (Node)' | ||||
| 	text = models.ForeignKey(Text, | ||||
| 		on_delete=models.PROTECT, | ||||
| 		on_delete=models.CASCADE, | ||||
| 		verbose_name = 'text') | ||||
| 	 | ||||
| 	def aktualizuj_nazev(self): | ||||
|  |  | |||
|  | @ -1,4 +0,0 @@ | |||
| {% extends "base.html" %} | ||||
| 
 | ||||
| {# zmena fotky #}{% block header %}archiv{% endblock %} | ||||
| 
 | ||||
|  | @ -1,4 +1,4 @@ | |||
| {% extends "seminar/archiv/base.html" %} | ||||
| {% extends "base.html" %} | ||||
| 
 | ||||
| {% block content %} | ||||
| <div> | ||||
|  | @ -8,10 +8,6 @@ | |||
|     {% endblock %}{% endblock %} | ||||
|   </h2> | ||||
| 
 | ||||
|   <!-- <div class='nahledy_cisel'> | ||||
|     {% autoescape off %}{{ nahledy }}{% endautoescape %} | ||||
|   </div>--> | ||||
| 
 | ||||
|     {% for rocnik, url_png in object_list.items %} | ||||
| 
 | ||||
|     <div class="rocnik_pole"> | ||||
|  | @ -33,7 +29,7 @@ | |||
|       </div> | ||||
| 
 | ||||
|       </div> | ||||
|        <div class="flip-card-back"> | ||||
|        <div class="flip-card-back" id="archiv"> | ||||
|       <div class="popis_rocniku"> | ||||
|         Jednotlivá čísla: | ||||
|         <ul> | ||||
|  |  | |||
|  | @ -1,4 +1,5 @@ | |||
| {% extends "seminar/archiv/base.html" %} | ||||
| {% extends "base.html" %} | ||||
| {% load render_bundle from webpack_loader %} | ||||
| 
 | ||||
|  {% block content %} | ||||
|  <div> | ||||
|  | @ -18,9 +19,9 @@ | |||
|     <h2>Zadané problémy</h2> | ||||
|     <ul> | ||||
|     {% for p in v_cisle_zadane %} | ||||
|       <li{% if user.is_staff and not cislo.verejne %} class='mam-org-only'{% endif %}> | ||||
|         {% if user.is_staff or cislo.verejne %} | ||||
|           <a href='{{ p.verejne_url }}'>{% endif %}{{ p.kod_v_rocniku }} {{ p.nazev }} {{ p.body_v_zavorce }}{% if user.is_staff or cislo.verejne %}</a>{% endif %} | ||||
|       <li{% if user.je_org and not cislo.verejne %} class='mam-org-only'{% endif %}> | ||||
|         {% if user.je_org or cislo.verejne %} | ||||
|           <a href='{{ p.verejne_url }}'>{% endif %}{{ p.kod_v_rocniku }} {{ p.nazev }} {{ p.body_v_zavorce }}{% if user.je_org or cislo.verejne %}</a>{% endif %} | ||||
|     {% endfor %} | ||||
|     </ul> | ||||
|   {% endif %} | ||||
|  | @ -29,14 +30,14 @@ | |||
|     <h2>Řešené problémy</h2> | ||||
|     <ul> | ||||
|     {% for p in resene_problemy %} | ||||
|       <li{% if user.is_staff and not cislo.verejne %} class='mam-org-only'{% endif %}> | ||||
|         {% if user.is_staff or cislo.verejne %} | ||||
|           <a href='{{ p.verejne_url }}'>{% endif %}{{ p.kod_v_rocniku }} {{ p.nazev }} {{ p.body_v_zavorce }}{% if user.is_staff or cislo.verejne %}</a>{% endif %} | ||||
|       <li{% if user.je_org and not cislo.verejne %} class='mam-org-only'{% endif %}> | ||||
|         {% if user.je_org or cislo.verejne %} | ||||
|           <a href='{{ p.verejne_url }}'>{% endif %}{{ p.kod_v_rocniku }} {{ p.nazev }} {{ p.body_v_zavorce }}{% if user.je_org or cislo.verejne %}</a>{% endif %} | ||||
|     {% endfor %} | ||||
|     </ul> | ||||
|   {% endif %} | ||||
| 
 | ||||
|   {% if user.is_staff %} | ||||
|   {% if user.je_org %} | ||||
|       <div class="mam-org-only"> | ||||
|         <h2> Orgovské odkazy </h2> | ||||
|         <ul> | ||||
|  | @ -48,17 +49,25 @@ | |||
|       </div> | ||||
|   {% endif %} | ||||
| 
 | ||||
|   <script id="vuedata" type="application/json">{"treenode":{{cislo.cislonode.id}}}</script> | ||||
|   <div id="app"> | ||||
| 	  <app></app> | ||||
|   </div> | ||||
|   {% render_bundle 'chunk-vendors' %} | ||||
|   {% render_bundle 'vue_app_01' %} | ||||
| 
 | ||||
| 
 | ||||
|   {% if cislo.verejna_vysledkovka %} | ||||
|   <h2>Výsledkovka</h2> | ||||
| 
 | ||||
|   {% else %} | ||||
|     {% if user.is_staff %} | ||||
|     {% if user.je_org %} | ||||
|       <div class='mam-org-only'> | ||||
|       <h2>Výsledkovka (neveřejná)</h2> | ||||
|     {% endif %} | ||||
|   {% endif %} | ||||
| 
 | ||||
|   {% if cislo.verejna_vysledkovka or user.is_staff %} | ||||
|   {% if cislo.verejna_vysledkovka or user.je_org %} | ||||
|     <table class='vysledkovka'> | ||||
|       <tr class='border-b'> | ||||
|         <th class='border-r'># | ||||
|  | @ -66,7 +75,7 @@ | |||
|         {% for p in problemy %} | ||||
|         <th class='border-r'><a href="{{ p.verejne_url }}">{{ p.kod_v_rocniku }}</a> | ||||
|         {% endfor %} | ||||
|         <th class='border-r'>Za číslo</sup> | ||||
|         <th class='border-r'>Za číslo | ||||
|         <th class='border-r'>Za ročník | ||||
|         <th class='border-r'>Odjakživa | ||||
|     {% for rv in radky_vysledkovky %} | ||||
|  | @ -88,7 +97,7 @@ | |||
|     </table> | ||||
|   {% endif %} | ||||
| 
 | ||||
|   {% if not cislo.verejna_vysledkovka and user.is_staff %} | ||||
|   {% if not cislo.verejna_vysledkovka and user.je_org %} | ||||
|       </div> | ||||
|   {% endif %} | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| {% extends "seminar/archiv/base.html" %} | ||||
| {% extends "base.html" %} | ||||
| 
 | ||||
| {% block content %} | ||||
|   <h1> | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| {% extends "seminar/archiv/base.html" %} | ||||
| {% extends "base.html" %} | ||||
| 
 | ||||
| {% block title %} | ||||
|   {{prispevek.nazev}} | ||||
|  |  | |||
|  | @ -1,13 +1,13 @@ | |||
| {% extends "seminar/archiv/base.html" %} | ||||
| {% extends "base.html" %} | ||||
| 
 | ||||
| {% load comments %} | ||||
| 
 | ||||
| {% block content %} | ||||
| <div {% if not problem.verejne and user.is_staff %}class="mam-org-only"{% endif %}> | ||||
| <div {% if not problem.verejne and user.je_org %}class="mam-org-only"{% endif %}> | ||||
|   {% block problem %} | ||||
|   {% endblock %} | ||||
| 
 | ||||
|   {% if user.is_staff %} | ||||
|   {% if user.je_org %} | ||||
|   <div class='mam-org-only'> | ||||
| 
 | ||||
|     <h2>Text - org</h2> | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| {% extends "seminar/archiv/base.html" %} | ||||
| {% extends "base.html" %} | ||||
| 
 | ||||
| {% block content %} | ||||
| <div> | ||||
|  | @ -62,7 +62,7 @@ | |||
| </div> | ||||
| 
 | ||||
|   {% if vysledkovka %} | ||||
|     {% if user.is_staff %} | ||||
|     {% if user.je_org %} | ||||
|       <div class='mam-org-only'> | ||||
|         <a href='vysledkovka.tex'>Výsledkovka ročníku (LaTeX)</a> | ||||
|       </div> | ||||
|  | @ -72,7 +72,7 @@ | |||
|     {% include "seminar/vysledkovka_rocnik.html" %} | ||||
|   {% endif %} | ||||
| 
 | ||||
|   {% if user.is_staff and vysledkovka_s_neverejnymi %} | ||||
|   {% if user.je_org and vysledkovka_s_neverejnymi %} | ||||
|     <div class='mam-org-only'> | ||||
|     <h2>Výsledková listina včetně neveřejných bodů</h2> | ||||
|       {% with radky_vyledkovky_s_neverejnymi as radky_vysledkovky %} | ||||
|  |  | |||
|  | @ -1,14 +0,0 @@ | |||
| {% with "/archiv" as cesta %} | ||||
| 
 | ||||
| <div id='submenu'> | ||||
| <ul> | ||||
|   <li class="{% if selected == "cisla" %}selected{% endif %}"><a href="{{cesta}}/cisla/">Čísla</a> | ||||
|   {# TODO zprovoznit až budou témata v db <li class="{% if selected == "temata" %}selected{% endif %}"><a href="{{cesta}}/temata/">Témata</a> #} | ||||
|   {# TODO zprovoznit až budou úlohy v db <li class="{% if selected == "ulohy" %}selected{% endif %}"><a href="{{cesta}}/ulohy/">Úlohy</a> #} | ||||
|   {# <li class="{% if selected == "vysledky" %}selected{% endif %}"><a href="{{cesta}}/vysledky/">Výsledkové listiny</a> #} | ||||
| </ul> | ||||
| </div> | ||||
| 
 | ||||
| {% endwith %} | ||||
| 
 | ||||
| 
 | ||||
|  | @ -1,4 +1,4 @@ | |||
| {% extends "seminar/archiv/base.html" %} | ||||
| {% extends "base.html" %} | ||||
| 
 | ||||
| {% block content %} | ||||
|   <h1> | ||||
|  | @ -11,7 +11,7 @@ | |||
|     <h2>Ročník {{ rocnik }}</h2> | ||||
|     <ul> | ||||
|     {% for tema in temata %} | ||||
|     <li><a href="{{ tema.verejne_utl }}"> {{ tema.kod_v_rocniku }}: {{ tema.nazev }} </a></li> | ||||
|     <li><a href="{{ tema.verejne_url }}"> {{ tema.kod_v_rocniku }}: {{ tema.nazev }} </a></li> | ||||
|     {% endfor %} | ||||
|     </ul> | ||||
|   {% endfor %} | ||||
|  |  | |||
|  | @ -1,10 +0,0 @@ | |||
| {% extends "base.html" %} | ||||
| 
 | ||||
| {% block menu_clanky %}selected{% endblock %} | ||||
| 
 | ||||
| {# zmena fotky #}{% block header %}clanky{% endblock %} | ||||
| 
 | ||||
| {% block submenu %} | ||||
|   {% include "seminar/clanky/submenu.html" %} | ||||
| {% endblock %} | ||||
| 
 | ||||