Merge branch 'test_deadline' into data_migrations
This commit is contained in:
		
						commit
						6a1109ba4d
					
				
					 14 changed files with 80895 additions and 827 deletions
				
			
		|  | @ -260,7 +260,7 @@ | ||||||
|   "fields": { |   "fields": { | ||||||
|     "url": "/co-je-MaM/kontakt/", |     "url": "/co-je-MaM/kontakt/", | ||||||
|     "title": "Kontakt", |     "title": "Kontakt", | ||||||
|     "content": "<p>Sv\u00e1 \u0159e\u0161en\u00ed \u010di p\u0159\u00edpadn\u00e9 dotazy n\u00e1m m\u016f\u017eete pos\u00edlat bu\u010f klasickou, nebo elektronickou po\u0161tou:</p>\r\n\r\n<table align=\"left\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\r\n\t<tbody>\r\n\t\t<tr>\r\n\t\t\t<td>\r\n\t\t\t<p><strong>Adresa redakce</strong>:</p>\r\n\r\n\t\t\t<p>M&M, OPMK MFF UK<br />\r\n\t\t\tKe Karlovu 3<br />\r\n\t\t\t121 16 Praha 2</p>\r\n\t\t\t</td>\r\n\t\t\t<td>\r\n\t\t\t<p><strong>E-mail</strong>: <a href=\"mailto:mam@matfyz.cz\" style=\"color: rgb(133, 49, 1); line-height: 20.8px;\">mam@matfyz.cz</a></p>\r\n\r\n\t\t\t<p><strong>Facebook:</strong> <a href=\"https://www.facebook.com/casopis.MaM?fref=ts\">Koresponden\u010dn\u00ed semin\u00e1\u0159 M&M</a></p>\r\n\r\n\t\t\t<p><strong>Google Kalend\u00e1\u0159:</strong> <a href=\"https://calendar.google.com/calendar/embed?src=casopis.mam%40gmail.com&ctz=Europe%2FPrague\">casopis.mam@gmail.com</a></p>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</tbody>\r\n</table>\r\n\r\n<p> </p>\r\n\r\n<p>B\u011bhem \u0161koln\u00edho roku je velk\u00e1 \u010d\u00e1st <a href=\"/co-je-MaM/organizatori/\"><strong>organiz\u00e1tor\u016f</strong></a> k zasti\u017een\u00ed na koleji 17. listopadu \u010di jinde po Praze.</p>\r\n\r\n<p><strong>Adresa koleje:</strong></p>\r\n\r\n<p>P\u00e1tkova 3<br />\r\n182 00, Praha 8</p>", |     "content": "<p>Sv\u00e1 \u0159e\u0161en\u00ed \u010di p\u0159\u00edpadn\u00e9 dotazy n\u00e1m m\u016f\u017eete pos\u00edlat bu\u010f klasickou, nebo elektronickou po\u0161tou:</p>\r\n\r\n<p><strong>Adresa redakce</strong>:</p>\r\n\r\n<p>M&M, OPMK MFF UK<br />\r\nKe Karlovu 3<br />\r\n121 16 Praha 2</p>\r\n\r\n<p><strong>E-mail</strong>:<a href=\"mailto:mam@matfyz.cz\" style=\"color: rgb(133, 49, 1); line-height: 20.8px;\"> mam@matfyz.cz</a></p>\r\n\r\n<p> </p>\r\n\r\n<p><strong>Facebook:</strong> <a href=\"https://www.facebook.com/casopis.MaM?fref=ts\">Koresponden\u010dn\u00ed semin\u00e1\u0159 M&M</a></p>\r\n\r\n<p><strong>Google Kalend\u00e1\u0159:</strong> <a href=\"https://calendar.google.com/calendar/embed?src=casopis.mam%40gmail.com&ctz=Europe%2FPrague\">casopis.mam@gmail.com</a></p>\r\n\r\n<p> </p>\r\n\r\n<p>B\u011bhem \u0161koln\u00edho roku je velk\u00e1 \u010d\u00e1st <a href=\"/co-je-MaM/organizatori/\"><strong>organiz\u00e1tor\u016f</strong></a> k zasti\u017een\u00ed na koleji 17. listopadu \u010di jinde po Praze.</p>\r\n\r\n<p><strong>Adresa koleje:</strong></p>\r\n\r\n<p>P\u00e1tkova 3<br />\r\n182 00, Praha 8</p>", | ||||||
|     "enable_comments": false, |     "enable_comments": false, | ||||||
|     "template_name": "", |     "template_name": "", | ||||||
|     "registration_required": false, |     "registration_required": false, | ||||||
|  |  | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -101,6 +101,26 @@ h6 { | ||||||
| 	color: black; | 	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 { | .org-logged-in .mam-text-plugin { | ||||||
|   border: dashed 1px #6a0043; |   border: dashed 1px #6a0043; | ||||||
|  | @ -286,7 +306,11 @@ ul.submenu li>a:hover { | ||||||
| 	color: black; | 	color: black; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ul.menu li.active>a, ul.submenu li.active>a { | ul.menu li.active>a { | ||||||
|  | 	color: #f9d59e; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | ul.submenu li.active>a { | ||||||
| 	color: black; | 	color: black; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -367,13 +391,82 @@ input[type="file"] { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .field-with-comment:hover span.field-comment{ | .field-with-comment:hover span.field-comment{ | ||||||
|   display:block; |   display: block; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| input { | input { | ||||||
| 	margin: 5px; | 	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 |  * Zmenšování displeje | ||||||
| ***********************/ | ***********************/ | ||||||
|  | @ -403,42 +496,22 @@ input { | ||||||
| 		width: 100%; | 		width: 100%; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|   div.novinky{ | 	ul.menu { | ||||||
|     max-width: 100%; | 		font-size: 90%; | ||||||
|     margin-left: auto; | 		margin-top: -7px; | ||||||
|     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 li { | ||||||
| 	font-size: 90%; | 		margin-top: 10px; /* posunutí textu hlavního menu níže */ | ||||||
| 	margin-top: -7px; | 	} | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| ul.menu li { | 	ul.submenu li { | ||||||
| 	margin-top: 10px; /* posunutí textu hlavního menu níže */ | 		margin-top: 0px; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ | ||||||
| } | 	} | ||||||
| 
 |  | ||||||
| ul.submenu li { |  | ||||||
| 	margin-top: 0px; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ul.submenu { |  | ||||||
| 	margin-top: 8px; /* mezera mezi hlavním menu a submenu */ |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
|  | 	ul.submenu { | ||||||
|  | 		margin-top: 8px; /* mezera mezi hlavním menu a submenu */ | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -470,11 +543,53 @@ ul.submenu { | ||||||
| 		display: inline-grid; | 		display: inline-grid; | ||||||
| 		max-width: 300px; | 		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 */ | /* malý tablet, mobil */ | ||||||
| @media (max-width: 650px) { | @media (max-width: 650px) { | ||||||
| 
 | 
 | ||||||
|  | 	.no-mobile{ | ||||||
|  | 		display: none; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|   #hide-if-small.login-bar-flatpage { |   #hide-if-small.login-bar-flatpage { | ||||||
| 		display: none; | 		display: none; | ||||||
| 	} | 	} | ||||||
|  | @ -611,19 +726,35 @@ ul.submenu { | ||||||
| 		text-align: justify; | 		text-align: justify; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|   div.novinky { |  | ||||||
|     max-width: 100%; |  | ||||||
|     float: none; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
| 	div.graf { |  | ||||||
| 		width: 100%; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	table.form td, table.form tr { | 	table.form td, table.form tr { | ||||||
|  		display: inherit; |  		display: inherit; | ||||||
|  	} |  	} | ||||||
| 
 | 
 | ||||||
|  | 	 /* titulni stranka */ | ||||||
|  | 
 | ||||||
|  | 	.titulnistrana { | ||||||
|  | 		display: block; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	.graf { | ||||||
|  | 		padding-top: 40px; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	.titulnistrana_obsah { | ||||||
|  | 		width: 100%; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	.vitej_titulka, .temata_titulka { | ||||||
|  | 		width: 100%; | ||||||
|  | 		padding: 10px; | ||||||
|  | 		display: block; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	.titulnistrana_novinky { | ||||||
|  | 		width: 100%; | ||||||
|  | 		padding: 10px; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*stránka organizátorů*/ | /*stránka organizátorů*/ | ||||||
|  | @ -704,11 +835,6 @@ div.org_email { | ||||||
|  backface-visibility: hidden; |  backface-visibility: hidden; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* Style the front side (fallback if image is missing) */ |  | ||||||
| .flip-card-front { |  | ||||||
|  background-color: #bbb; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| div.flip-card-foto img { | div.flip-card-foto img { | ||||||
| 	width: 100%; | 	width: 100%; | ||||||
| 	height: 100%; | 	height: 100%; | ||||||
|  | @ -724,6 +850,10 @@ div.flip-card-foto img { | ||||||
|  padding-top: 20px; |  padding-top: 20px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | #archiv.flip-card-back { | ||||||
|  | 	background-color: white; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| /* karty archiv */ | /* karty archiv */ | ||||||
| 
 | 
 | ||||||
| div.popis_rocniku { | div.popis_rocniku { | ||||||
|  | @ -920,46 +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%; |  | ||||||
| 	max-width: 400px; /*FIXME*/ |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 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 { | ul.form { | ||||||
| 	list-style-type: none; | 	list-style-type: none; | ||||||
| 	padding-left: 0px; | 	padding-left: 0px; | ||||||
|  | @ -984,3 +1076,20 @@ p.gdpr { | ||||||
| div.gdpr { | div.gdpr { | ||||||
| 	font-size: 6pt; | 	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
									
								
							
							
						
						
									
										26847
									
								
								mamweb/static/images/jakresit_1.svg
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| After Width: | Height: | Size: 1.8 MiB | 
							
								
								
									
										26847
									
								
								mamweb/static/images/jakresit_2.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26847
									
								
								mamweb/static/images/jakresit_2.svg
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| After Width: | Height: | Size: 1.8 MiB | 
							
								
								
									
										26847
									
								
								mamweb/static/images/jakresit_3.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26847
									
								
								mamweb/static/images/jakresit_3.svg
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| After Width: | Height: | Size: 1.8 MiB | 
|  | @ -56,14 +56,17 @@ | ||||||
| 		<div class='col-md-12'> | 		<div class='col-md-12'> | ||||||
|           <a href='/'> |           <a href='/'> | ||||||
| 	    <div id="title" >M&M - korespondenční seminář a časopis MFF UK</div> | 	    <div id="title" >M&M - korespondenční seminář a časopis MFF UK</div> | ||||||
|             <div id="header" style="background-image: url('{{ fotka }}')"> |             <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 #} |                 {# 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" %} | 		{% sitetree_menu from "main_menu" include "trunk" template "logo.html" %} | ||||||
|  |                 </div> | ||||||
| 		<img class="logo-mobile" src="{% static 'images/logo-mobile.svg' %}" /> | 		<img class="logo-mobile" src="{% static 'images/logo-mobile.svg' %}" /> | ||||||
|             </div> |             </div> | ||||||
|             </a> |             </a> | ||||||
|         </div> |         </div> | ||||||
|       </div> |       </div> | ||||||
|  | 
 | ||||||
|       <div class='row'> |       <div class='row'> | ||||||
| 	    <div class='col-md-12'> | 	    <div class='col-md-12'> | ||||||
| 
 | 
 | ||||||
|  | @ -73,6 +76,9 @@ | ||||||
| 
 | 
 | ||||||
| {# ========= MENU MOBILE ========== #} | {# ========= MENU MOBILE ========== #} | ||||||
| 
 | 
 | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  | 
 | ||||||
| <!--Navbar--> | <!--Navbar--> | ||||||
| <nav class="nav-button"> | <nav class="nav-button"> | ||||||
| 
 | 
 | ||||||
|  | @ -95,13 +101,15 @@ | ||||||
| 
 | 
 | ||||||
| {# ========= END MENU ========== #} | {# ========= END MENU ========== #} | ||||||
| 
 | 
 | ||||||
| 
 |     <div class='row'> | ||||||
| 	<div class='row content'> | 	<div class='row content'> | ||||||
| 	<div class='col-md-12'> | 	<div class='col-md-12'> | ||||||
| 	    {% block content %} | 	    {% block content %} | ||||||
| 	    {% endblock content %} | 	    {% endblock content %} | ||||||
| 	</div> | 	        </div> | ||||||
|  |         </div> | ||||||
|     </div> |     </div> | ||||||
|  | 
 | ||||||
| 	<div class='row'> | 	<div class='row'> | ||||||
| 	  <div class='col-md-12'> | 	  <div class='col-md-12'> | ||||||
| 		<div id="footer"> | 		<div id="footer"> | ||||||
|  | @ -110,6 +118,7 @@ | ||||||
| 		<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> | 		<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> | 	</div> | ||||||
|  | 
 | ||||||
|     </div> |     </div> | ||||||
| 
 | 
 | ||||||
|     <script src="{% static 'js/bootstrap.js' %}"></script> |     <script src="{% static 'js/bootstrap.js' %}"></script> | ||||||
|  |  | ||||||
|  | @ -706,6 +706,7 @@ class Problem(SeminarModelBase,PolymorphicModel): | ||||||
| 		(STAV_SMAZANY, 'Smazaný'), | 		(STAV_SMAZANY, 'Smazaný'), | ||||||
| 		] | 		] | ||||||
| 	stav = models.CharField('stav problému', max_length=32, choices=STAV_CHOICES, blank=False, default=STAV_NAVRH) | 	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í',  | 	zamereni = TaggableManager(verbose_name='zaměření',  | ||||||
| 		help_text='Zaměření M/F/I/O problému, příp. další tagy', blank=True) | 		help_text='Zaměření M/F/I/O problému, příp. další tagy', blank=True) | ||||||
|  |  | ||||||
|  | @ -8,10 +8,6 @@ | ||||||
|     {% endblock %}{% endblock %} |     {% endblock %}{% endblock %} | ||||||
|   </h2> |   </h2> | ||||||
| 
 | 
 | ||||||
|   <!-- <div class='nahledy_cisel'> |  | ||||||
|     {% autoescape off %}{{ nahledy }}{% endautoescape %} |  | ||||||
|   </div>--> |  | ||||||
| 
 |  | ||||||
|     {% for rocnik, url_png in object_list.items %} |     {% for rocnik, url_png in object_list.items %} | ||||||
| 
 | 
 | ||||||
|     <div class="rocnik_pole"> |     <div class="rocnik_pole"> | ||||||
|  | @ -33,7 +29,7 @@ | ||||||
|       </div> |       </div> | ||||||
| 
 | 
 | ||||||
|       </div> |       </div> | ||||||
|        <div class="flip-card-back"> |        <div class="flip-card-back" id="archiv"> | ||||||
|       <div class="popis_rocniku"> |       <div class="popis_rocniku"> | ||||||
|         Jednotlivá čísla: |         Jednotlivá čísla: | ||||||
|         <ul> |         <ul> | ||||||
|  |  | ||||||
							
								
								
									
										16
									
								
								seminar/templates/seminar/jak-resit.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								seminar/templates/seminar/jak-resit.html
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | ||||||
|  | {% extends 'base.html' %} | ||||||
|  | 
 | ||||||
|  | {% load humanize %} | ||||||
|  | {% load staticfiles %} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | {% block content %} | ||||||
|  | 
 | ||||||
|  | <div class=jakresit> | ||||||
|  | 
 | ||||||
|  | <img class="jakresit_obrazek" alt="" src="{% static 'images/jakresit_1.svg' %}" /> | ||||||
|  | <img class="jakresit_obrazek" alt="" src="{% static 'images/jakresit_2.svg' %}" /> | ||||||
|  | <img class="jakresit_obrazek" alt="" src="{% static 'images/jakresit_3.svg' %}" /> | ||||||
|  | 
 | ||||||
|  | </div> | ||||||
|  | {% endblock %} | ||||||
|  | @ -9,7 +9,7 @@ | ||||||
|   {% endif %} |   {% endif %} | ||||||
|   {% if novinka.zverejneno or user.je_org %} |   {% if novinka.zverejneno or user.je_org %} | ||||||
|   {# datum #} |   {# datum #} | ||||||
|   <div><b>{{novinka.datum}}</b></div> |   <div class=novinka_datum>{{novinka.datum}}</div> | ||||||
|   {# text #} |   {# text #} | ||||||
|   {{ novinka.text | safe }} |   {{ novinka.text | safe }} | ||||||
|   {# obrazek #} |   {# obrazek #} | ||||||
|  | @ -25,12 +25,12 @@ | ||||||
|     </div> |     </div> | ||||||
|   {% endif %} |   {% endif %} | ||||||
|   {# autor #} |   {# autor #} | ||||||
|   <div class=novinky_name><p>{{novinka.autor.first_name}} |   <div class=novinka_autor> | ||||||
|     {% if novinka.autor.organizator.prezdivka%} |     {{novinka.autor.osoba.jmeno}} | ||||||
|       „{{novinka.autor.organizator.prezdivka}}“ |     {% if novinka.autor.osoba.prezdivka%} | ||||||
|  |       „{{novinka.autor.osoba.prezdivka}}“ | ||||||
|     {% endif %} |     {% endif %} | ||||||
|     {{novinka.autor.last_name}} |     {{novinka.autor.osoba.prijmeni}} | ||||||
|       </p> |  | ||||||
|   </div> |   </div> | ||||||
|   {% endif %} |   {% endif %} | ||||||
|   {% if not novinka.zverejneno and user.je_org %} |   {% if not novinka.zverejneno and user.je_org %} | ||||||
|  |  | ||||||
|  | @ -5,32 +5,53 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| {% block content %} | {% block content %} | ||||||
|   {# Uvitaci text #} |  | ||||||
|   <h1> |  | ||||||
|     {% block nadpis1a %}{% block nadpis1b %} |  | ||||||
|       Vítej! |  | ||||||
|     {% endblock %}{% endblock %} |  | ||||||
|   </h1> |  | ||||||
| <p> |  | ||||||
| M&M je korespondenční seminář. Několikrát do roka zdarma vydáváme časopis a v něm zajímavé podněty k přemýšlení. Ty na ně můžeš reagovat.<br> |  | ||||||
| 
 | 
 | ||||||
|  M&M je taky soutěž. Můžeš vyhrát knížky, deskovky nebo dokonce dort. Můžeš se dostat na matfyz bez přijímaček. A především s námi můžeš jet na skvělé soustředění. | {% if nejblizsi_deadline %} | ||||||
| </p> | <div class="odpocet"> | ||||||
| 
 | 	<p><b><big>Do konce <a href="/zadani/aktualni/">odeslání řešení</a> {% if typ_deadline == 'soustredeni' %}(pro účast na soustředění) {% elif typ_deadline == 'preddeadline' %}(pro otištění došlých řešení) {% endif %}zbývá: | ||||||
| <div class="novinky"> |       {{nejblizsi_deadline|timeuntil}}</big></b></p> | ||||||
|   {% if dead %} |  | ||||||
|   <div class="odpocet"> |  | ||||||
|     <p><b>Do konce <a href="/zadani/aktualni/">odeslání řešení</a> {% if deadline_soustredeni %}(pro účast na soustředění) {% endif %}zbývá:<br> |  | ||||||
|       <big>{{ted|timesince:dead}}</big></b></p> |  | ||||||
|   </div> |  | ||||||
|   {% endif %} |  | ||||||
| 
 |  | ||||||
|   {# Novinky #} |  | ||||||
|   <h1>Novinky</h1> |  | ||||||
|   {% include 'seminar/novinky.html' %} |  | ||||||
| 
 |  | ||||||
|   <a href='/stare-novinky/'>Archiv novinek</a> |  | ||||||
| </div> | </div> | ||||||
|  | {% endif %} | ||||||
|  | 
 | ||||||
|  | <div class=titulnistrana> | ||||||
|  | 
 | ||||||
|  | <div class="titulnistrana_obsah"> | ||||||
|  | 
 | ||||||
|  | <div class="vitej_titulka"> | ||||||
|  | 
 | ||||||
|  |   <h1> | ||||||
|  |     {% block nadpis1a %} | ||||||
|  |       Vítej | ||||||
|  |     {% endblock %} | ||||||
|  |       mezi námi | ||||||
|  |   </h1> | ||||||
|  | 
 | ||||||
|  |   <div> | ||||||
|  |     M&M je korespondenční seminář. Vydáváme časopis a v něm zajímavé podněty k přemýšlení. Ty na ně můžeš reagovat, | ||||||
|  |     experimentovat a objevovat s námi fascinující zákoutí matiky, fyziky a informatiky. | ||||||
|  |     <a href="auth/registrace"> <div class="button"> Zaregistruj se! </div> </a> {# FIXME odkaz #} | ||||||
|  |     M&M je taky soutěž. Za svá řešení dostaneš body a můžeš vyhrát zajímavé ceny, dostat se | ||||||
|  |     na Matfyz bez přijímaček a především, můžeš s námi jet na skvělé soustředění. | ||||||
|  |     <a href="cojemam/odmeny"> <div class="button"> Co můžeš vyhrát? </div> </a> {# FIXME odkaz #} | ||||||
|  |   </div> | ||||||
|  |    | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | <div class="temata_titulka"> | ||||||
|  | 
 | ||||||
|  |   <h1> | ||||||
|  |       Řeš témata! | ||||||
|  |   </h1> | ||||||
|  | 
 | ||||||
|  |   <div> | ||||||
|  |     Přidej se k nám! Pusť se do řešení témát. | ||||||
|  |     {% for tema in aktualni_temata %} | ||||||
|  |     <a href="{{ tema.url }}"> <div class="button"> {{ tema.nazev }} </div> </a> | ||||||
|  |     {% endfor %} | ||||||
|  |   </div> | ||||||
|  |    | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
| <div class="graf"> | <div class="graf"> | ||||||
| 
 | 
 | ||||||
| <div class="graf-svg"> | <div class="graf-svg"> | ||||||
|  | @ -38,8 +59,24 @@ M&M je korespondenční seminář. Několikrát do roka zdarma vydáváme č | ||||||
| </div> | </div> | ||||||
| 
 | 
 | ||||||
|   <span class="zjistit_vic"> |   <span class="zjistit_vic"> | ||||||
|     <h2><a href="/co-je-MaM/uvod/">Zjistit víc!</a></h2> |     <h2><a href="/co-je-MaM/uvod/">Zjisti víc!</a></h2> | ||||||
|  |     <hr> | ||||||
|   </span> |   </span> | ||||||
| </div> | </div> | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | <div class="titulnistrana_novinky"> | ||||||
|  | 
 | ||||||
|  |   {# Novinky #} | ||||||
|  |   <h1>Co je nového?</h1> | ||||||
|  |   {% include 'seminar/novinky.html' %} | ||||||
|  | 
 | ||||||
|  |   <a href='/stare-novinky/'>Archiv novinek</a> | ||||||
|  | 
 | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
| {% endblock %} | {% endblock %} | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ urlpatterns = [ | ||||||
| 	path('archiv/temata/', views.ArchivTemataView.as_view()), | 	path('archiv/temata/', views.ArchivTemataView.as_view()), | ||||||
| 
 | 
 | ||||||
| 	path('rocnik/<int:rocnik>/', views.RocnikView.as_view(), name='seminar_rocnik'), | 	path('rocnik/<int:rocnik>/', views.RocnikView.as_view(), name='seminar_rocnik'), | ||||||
| 	path('cislo/<int:rocnik>.<str:cislo>/', views.CisloView.as_view(), name='seminar_cislo'), # odkomentované jenom kvůli testování archivu | 	path('cislo/<int:rocnik>.<str:cislo>/', views.CisloView.as_view(), name='seminar_cislo'), | ||||||
| 	path('problem/<int:pk>/', views.ProblemView.as_view(), name='seminar_problem'), | 	path('problem/<int:pk>/', views.ProblemView.as_view(), name='seminar_problem'), | ||||||
| 	path('treenode/<int:pk>/', views.TreeNodeView.as_view(), name='seminar_treenode'), | 	path('treenode/<int:pk>/', views.TreeNodeView.as_view(), name='seminar_treenode'), | ||||||
| 	#path('problem/(?P<pk>\d+)/(?P<prispevek>\d+)/', views.PrispevekView.as_view(), name='seminar_problem_prispevek'), | 	#path('problem/(?P<pk>\d+)/(?P<prispevek>\d+)/', views.PrispevekView.as_view(), name='seminar_problem_prispevek'), | ||||||
|  | @ -150,6 +150,7 @@ urlpatterns = [ | ||||||
| 	path('temp/nahraj_reseni', resitel_required(views.NahrajReseniView.as_view()), name='seminar_nahraj_reseni'), | 	path('temp/nahraj_reseni', resitel_required(views.NahrajReseniView.as_view()), name='seminar_nahraj_reseni'), | ||||||
| 
 | 
 | ||||||
| 	path('', views.TitulniStranaView.as_view(), name='titulni_strana'), | 	path('', views.TitulniStranaView.as_view(), name='titulni_strana'), | ||||||
|  | 	path('jak-resit/', views.JakResitView.as_view(), name='jak-resit'), | ||||||
| 
 | 
 | ||||||
| 	# Ceka na autocomplete v3 | 	# Ceka na autocomplete v3 | ||||||
| 	# path('autocomplete/organizatori/', | 	# path('autocomplete/organizatori/', | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ from seminar import utils, treelib | ||||||
| from seminar.forms import PrihlaskaForm, LoginForm, ProfileEditForm | from seminar.forms import PrihlaskaForm, LoginForm, ProfileEditForm | ||||||
| import seminar.forms as f | import seminar.forms as f | ||||||
| 
 | 
 | ||||||
| from datetime import timedelta, date, datetime | from datetime import timedelta, date, datetime, MAXYEAR | ||||||
| from django.utils import timezone | from django.utils import timezone | ||||||
| from itertools import groupby | from itertools import groupby | ||||||
| from collections import OrderedDict | from collections import OrderedDict | ||||||
|  | @ -44,14 +44,15 @@ import time | ||||||
| 
 | 
 | ||||||
| from seminar.utils import aktivniResitele, resi_v_rocniku | from seminar.utils import aktivniResitele, resi_v_rocniku | ||||||
| 
 | 
 | ||||||
| 
 | # ze starého modelu | ||||||
| def verejna_temata(rocnik): | #def verejna_temata(rocnik): | ||||||
| 	"""Vrací queryset zveřejněných témat v daném ročníku. | #	""" | ||||||
| 	""" | #	Vrací queryset zveřejněných témat v daném ročníku. | ||||||
| 	return Problem.objects.filter(typ=Problem.TYP_TEMA, cislo_zadani__rocnik=rocnik, cislo_zadani__verejne_db=True).order_by('kod') | #	""" | ||||||
| 
 | #	return Problem.objects.filter(typ=Problem.TYP_TEMA, cislo_zadani__rocnik=rocnik, cislo_zadani__verejne_db=True).order_by('kod') | ||||||
| def temata_v_rocniku(rocnik): | # | ||||||
| 	return Problem.objects.filter(typ=Problem.TYP_TEMA, rocnik=rocnik) | #def temata_v_rocniku(rocnik): | ||||||
|  | #	return Problem.objects.filter(typ=Problem.TYP_TEMA, rocnik=rocnik) | ||||||
| 
 | 
 | ||||||
| def get_problemy_k_tematu(tema): | def get_problemy_k_tematu(tema): | ||||||
| 	return Problem.objects.filter(nadproblem = tema) | 	return Problem.objects.filter(nadproblem = tema) | ||||||
|  | @ -242,45 +243,51 @@ def spravne_novinky(request): | ||||||
| 		qs = qs.filter(zverejneno=True) | 		qs = qs.filter(zverejneno=True) | ||||||
| 	return qs.order_by('-datum') | 	return qs.order_by('-datum') | ||||||
| 
 | 
 | ||||||
|  | def aktualni_temata(rocnik): | ||||||
|  | 	""" | ||||||
|  | 	Vrací PolymorphicQuerySet témat v daném ročníku, ke kterým se aktuálně dá něco odevzdat. | ||||||
|  | 	""" | ||||||
|  | 	return Tema.objects.filter(rocnik=rocnik, stav='zadany').order_by('kod') | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class TitulniStranaView(generic.ListView): | class TitulniStranaView(generic.ListView): | ||||||
| 	template_name='seminar/titulnistrana.html' | 	template_name='seminar/titulnistrana.html' | ||||||
| 
 | 
 | ||||||
| 	def get_queryset(self): | 	def get_queryset(self): | ||||||
| 		return spravne_novinky(self.request)[:5] | 		return spravne_novinky(self.request)[:3] | ||||||
| 
 | 
 | ||||||
| 	def get_context_data(self, **kwargs): | 	def get_context_data(self, **kwargs): | ||||||
| 		context = super(TitulniStranaView, self).get_context_data(**kwargs) | 		context = super(TitulniStranaView, self).get_context_data(**kwargs) | ||||||
| 		nastaveni = get_object_or_404(Nastaveni) | 		nastaveni = get_object_or_404(Nastaveni) | ||||||
| 		 | 		 | ||||||
| 		# zjisteni spravneho terminu | 		deadline_soustredeni = (nastaveni.aktualni_cislo.datum_deadline_soustredeni, "soustredeni") | ||||||
| 		if nastaveni.aktualni_cislo.datum_deadline_soustredeni: | 		preddeadline = (nastaveni.aktualni_cislo.datum_preddeadline, "preddeadline") | ||||||
| 			cas_deadline_soustredeni = nastaveni.aktualni_cislo.\ | 		deadline = (nastaveni.aktualni_cislo.datum_deadline, "deadline") | ||||||
| 				datum_deadline_soustredeni |  | ||||||
| 			if (datetime.now().date() <= cas_deadline_soustredeni): |  | ||||||
| 				cas_deadline = cas_deadline_soustredeni |  | ||||||
| 				deadline_soustredeni = True |  | ||||||
| 			else: |  | ||||||
| 				cas_deadline = nastaveni.aktualni_cislo.datum_deadline |  | ||||||
| 				deadline_soustredeni = False |  | ||||||
| 		else: |  | ||||||
| 			cas_deadline = nastaveni.aktualni_cislo.datum_deadline |  | ||||||
| 			deadline_soustredeni = False |  | ||||||
| 
 | 
 | ||||||
| 		# Pokud neni zverejnene cislo nezverejnuj odpocet | 		try: | ||||||
| 		if nastaveni.aktualni_cislo.verejne(): | 			nejblizsi_deadline = sorted(filter(lambda dl: dl[0] is not None and dl[0] >= date.today(), [deadline_soustredeni, preddeadline, deadline]))[0] | ||||||
| 			# pokus se zjistit termin odeslani a pokud neni zadany, | 		except IndexError: | ||||||
| 			# nezverejnuj odpocet | 			nejblizsi_deadline = (None, None) # neni zadna aktualni deadline | ||||||
| 			context['deadline_soustredeni'] = deadline_soustredeni | 
 | ||||||
| 			try: | 		if nejblizsi_deadline[0] is not None: | ||||||
| 				context['dead'] = datetime.combine(cas_deadline, | 			context['nejblizsi_deadline'] = datetime.combine(nejblizsi_deadline[0], datetime.max.time()) | ||||||
| 												 datetime.max.time()) |  | ||||||
| 				context['ted'] = datetime.now() |  | ||||||
| 			except: |  | ||||||
| 				context['dead'] = None |  | ||||||
| 		else: | 		else: | ||||||
| 			context['dead'] = None | 			context['nejblizsi_deadline'] = None | ||||||
| 			context['deadline_soustredeni'] = deadline_soustredeni | 		 | ||||||
|  | 		context['typ_deadline'] = nejblizsi_deadline[1] | ||||||
|  | 
 | ||||||
|  | 		# Aktuální témata | ||||||
|  | 		nazvy_a_odkazy_na_aktualni_temata = [] | ||||||
|  | 		akt_temata = aktualni_temata(nastaveni.aktualni_rocnik) | ||||||
|  | 
 | ||||||
|  | 		for tema in akt_temata: | ||||||
|  | 			# FIXME: netuším, jestli funguje tema.verejne_url(), nemáme testdata na témátka - je to asi url vzhledem k ročníku | ||||||
|  | 			nazvy_a_odkazy_na_aktualni_temata.append({'nazev':tema.nazev,'url':tema.verejne_url()}) | ||||||
|  | 
 | ||||||
|  | 		context['aktualni_temata'] = nazvy_a_odkazy_na_aktualni_temata | ||||||
|  | 
 | ||||||
|  | 		print(context) | ||||||
|  | 
 | ||||||
| 		return context | 		return context | ||||||
| 
 | 
 | ||||||
| class StareNovinkyView(generic.ListView): | class StareNovinkyView(generic.ListView): | ||||||
|  | @ -343,7 +350,8 @@ class ArchivView(generic.ListView): | ||||||
| ### Výsledky | ### Výsledky | ||||||
| 
 | 
 | ||||||
| def sloupec_s_poradim(setrizene_body): | def sloupec_s_poradim(setrizene_body): | ||||||
| 	""" Ze seznamu obsahujícího sestupně setřízené body řešitelů za daný ročník  | 	""" | ||||||
|  | 	Ze seznamu obsahujícího sestupně setřízené body řešitelů za daný ročník  | ||||||
| 	vytvoří seznam s pořadími (včetně 3.-5. a pak 2 volná místa atp.), | 	vytvoří seznam s pořadími (včetně 3.-5. a pak 2 volná místa atp.), | ||||||
| 	podle toho, jak jdou za sebou ve výsledkovce. | 	podle toho, jak jdou za sebou ve výsledkovce. | ||||||
| 	Parametr: | 	Parametr: | ||||||
|  | @ -383,7 +391,8 @@ def sloupec_s_poradim(setrizene_body): | ||||||
| 	return sloupec_s_poradim | 	return sloupec_s_poradim | ||||||
| 
 | 
 | ||||||
| def cisla_rocniku(rocnik, jen_verejne=True): | def cisla_rocniku(rocnik, jen_verejne=True): | ||||||
| 	""" Vrátí všechna čísla daného ročníku. | 	""" | ||||||
|  | 	Vrátí všechna čísla daného ročníku. | ||||||
| 	Parametry: | 	Parametry: | ||||||
| 		rocnik (Rocnik): ročník semináře | 		rocnik (Rocnik): ročník semináře | ||||||
| 		jen_verejne (bool): zda se mají vrátit jen veřejná, nebo všechna čísla | 		jen_verejne (bool): zda se mají vrátit jen veřejná, nebo všechna čísla | ||||||
|  | @ -773,6 +782,7 @@ def vysledkovka_cisla(cislo, context=None): | ||||||
| 	return context | 	return context | ||||||
| 
 | 
 | ||||||
| class CisloView(generic.DetailView): | class CisloView(generic.DetailView): | ||||||
|  | 	# FIXME zobrazování témátek a vůbec, teď je tam jen odkaz na číslo v pdf | ||||||
| 	model = Cislo | 	model = Cislo | ||||||
| 	template_name = 'seminar/archiv/cislo.html' | 	template_name = 'seminar/archiv/cislo.html' | ||||||
| 
 | 
 | ||||||
|  | @ -1332,3 +1342,10 @@ def formularOKView(request): | ||||||
| 	} | 	} | ||||||
| 	return render(request, template_name, context) | 	return render(request, template_name, context) | ||||||
| 
 | 
 | ||||||
|  | #------------------ Jak řešit - možná má být udělané úplně jinak | ||||||
|  |      | ||||||
|  | class JakResitView(generic.ListView): | ||||||
|  | 	template_name = 'seminar/jak-resit.html' | ||||||
|  |      | ||||||
|  | 	def get_queryset(self): | ||||||
|  | 		return None | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Pavel "LEdoian" Turinsky
						Pavel "LEdoian" Turinsky