Merge branch 'data_migrations' of gimli.ms.mff.cuni.cz:/akce/mam/git/mamweb into data_migrations
This commit is contained in:
		
						commit
						ac7dfd002b
					
				
					 8 changed files with 257 additions and 116 deletions
				
			
		
							
								
								
									
										
											BIN
										
									
								
								Schema_new.dia
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Schema_new.dia
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -14,8 +14,31 @@ div.container { | |||
| 	margin: auto; | ||||
| } | ||||
| 
 | ||||
| .org-logged-in div.container { | ||||
| 	margin-top: 20px; | ||||
| } | ||||
| 
 | ||||
| div.login-bar { | ||||
| 	background: #6a0043; | ||||
| 	color: #f9d59e; | ||||
| 	width: 100%; | ||||
| 
 | ||||
| 	position: fixed; | ||||
| 	margin-top: -20px; | ||||
| 	min-height: 20px; | ||||
| 	z-index: 20; | ||||
| 
 | ||||
| 	padding-left: 5px; | ||||
| 	padding-right: 5px; | ||||
| } | ||||
| 
 | ||||
| div.login-bar div { | ||||
| 	display: inline; | ||||
| } | ||||
| 
 | ||||
| a.login-ref-admin { | ||||
| 	display: inline; | ||||
| 	color: #fffbf6; | ||||
| } | ||||
| 
 | ||||
| /* odkazy a nadpisy */ | ||||
|  | @ -74,16 +97,16 @@ h6 { | |||
| 
 | ||||
| 
 | ||||
| .org-logged-in .mam-text-plugin { | ||||
|   border: dashed 1px #f77; | ||||
|   border: dashed 1px #6a0043; | ||||
|   padding: 5px; | ||||
|   margin: -5px; | ||||
| } | ||||
| 
 | ||||
| .mam-org-only { | ||||
|   background: #fff0d7; | ||||
|   background: #eee4ec; | ||||
|   padding: 10px; | ||||
|   margin: 10px -10px; | ||||
|   border: orange 2px dashed; | ||||
|   border: #6a0043 2px dashed; | ||||
| } | ||||
| 
 | ||||
| .mam-org-only .mam-org-only { | ||||
|  | @ -123,6 +146,8 @@ h1 { | |||
| 	margin-top: 0px; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| /* Comments */ | ||||
| 
 | ||||
| #id_comment { | ||||
|  | @ -191,7 +216,7 @@ vikendovka | |||
| #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/vikendovka.jpg");} | ||||
| #header.NOCarchiv { background-image: url("../images/header/stiny.jpg");} | ||||
| 
 | ||||
| 
 | ||||
| #header img.logo { | ||||
|  | @ -407,6 +432,10 @@ ul.submenu { | |||
| /* malý tablet, mobil */ | ||||
| @media (max-width: 650px) { | ||||
| 
 | ||||
|   #hide-if-small.login-bar-flatpage { | ||||
| 		display: none; | ||||
| 	} | ||||
| 
 | ||||
| 	#title { | ||||
| 		display: none; | ||||
| 	} | ||||
|  | @ -558,7 +587,7 @@ div.seznam_orgu { | |||
| 	text-align: center; | ||||
| } | ||||
| 
 | ||||
| div.org_pole { | ||||
| div.org_pole, div.rocnik_pole { | ||||
| 	display: inline-block; | ||||
| 	width: 30%; | ||||
| 	min-width: 300px; | ||||
|  | @ -576,16 +605,24 @@ div.org_email { | |||
| 	font-weight: bold; | ||||
| } | ||||
| 
 | ||||
| /*otáčecí karty organizátorů*/ | ||||
| /*otáčecí karty (orgové, archiv) */ | ||||
| 
 | ||||
| .flip-card { | ||||
|  width: 200px; | ||||
|  height: 250px; | ||||
|  perspective: 1000px; /* Remove this if you don't want the 3D effect */ | ||||
|  margin-left: auto; | ||||
|  margin-right: auto; | ||||
| } | ||||
| 
 | ||||
| #organizatori.flip-card { | ||||
| 	width: 200px; | ||||
| 	height: 250px; | ||||
| } | ||||
| 
 | ||||
| #archiv.flip-card { | ||||
| 	width: 210px; | ||||
| 	height: 298px; | ||||
| } | ||||
| 
 | ||||
| /* This container is needed to position the front and back side */ | ||||
| .flip-card-inner { | ||||
|  position: relative; | ||||
|  | @ -614,9 +651,10 @@ div.org_email { | |||
|  background-color: #bbb; | ||||
| } | ||||
| 
 | ||||
| div.foto_org img { | ||||
| div.flip-card-foto img { | ||||
| 	width: 100%; | ||||
| 	height: 100%; | ||||
| 	filter: drop-shadow(0px 3px 3px rgba(0, 0, 0, 0.4)); /* FIXME:  obecně k obrázkům */ | ||||
| } | ||||
| 
 | ||||
| /* Style the back side */ | ||||
|  | @ -631,6 +669,23 @@ div.foto_org img { | |||
|  padding-top: 20px; | ||||
| } | ||||
| 
 | ||||
| /* karty archiv */ | ||||
| 
 | ||||
| div.popis_rocniku { | ||||
| 	text-align: left; | ||||
| 	font-weight: bold; | ||||
| 	margin: 20px; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| div.popis_rocniku a{ | ||||
|   color: black; | ||||
| } | ||||
| 
 | ||||
| div.popis_rocniku a:hover{ | ||||
| 	color: #6f2509; | ||||
| } | ||||
| 
 | ||||
| /* graf na úvodní stránce */ | ||||
| 
 | ||||
| a span.popup { | ||||
|  |  | |||
|  | @ -36,22 +36,22 @@ | |||
|   </head> | ||||
|   <body class='{% if user.is_staff %}org-logged-in{% endif %}'> | ||||
| 
 | ||||
|     {% if user.is_staff %} | ||||
|       <div class="login-bar" > | ||||
|         {% if view.object %} | ||||
|           Objekt {{ view.object }}: {{ view.object }} | ||||
|           {% if view.object.admin_url %}<a class="login-ref-admin" href='{{ view.object.admin_url }}'>[admin]</a>{% endif %} | ||||
|         {% endif %} | ||||
|         {% if flatpage %} | ||||
|           <div class="login-bar-flatpage" id="hide-if-small"> Stránka <tt>{{ flatpage.url }}</tt>  ({{ flatpage.title }})</div> | ||||
|           <a class="login-ref-admin" href='{% url 'admin:flatpages_flatpage_change' flatpage.id %}'>[admin]</a> | ||||
|         {% endif %} | ||||
|         <a class="login-ref-admin" href='/admin'>[admin mainpage]</a> | ||||
|       </div> | ||||
|     {% endif %} | ||||
| 
 | ||||
|    <div class="container"> | ||||
| 
 | ||||
|   {% if user.is_staff %} | ||||
|     <div class="login-bar" > | ||||
|       {% if view.object %} | ||||
| 	Objekt {{ view.object }}: {{ view.object }} | ||||
| 	{% if view.object.admin_url %}<a href='{{ view.object.admin_url }}'>[admin]</a>{% endif %} | ||||
|       {% endif %} | ||||
|       {% if flatpage %} | ||||
| 	Stránka <tt>{{ flatpage.url }}</tt>  ({{ flatpage.title }}) | ||||
| 	<a href='{% url 'admin:flatpages_flatpage_change' flatpage.id %}'>[admin]</a> | ||||
|       {% endif %} | ||||
|     </div> | ||||
|   {% endif %} | ||||
| 
 | ||||
| 
 | ||||
| 	  <div class='row'> | ||||
| 		<div class='col-md-12'> | ||||
|           <a href='/'> | ||||
|  |  | |||
|  | @ -8,18 +8,56 @@ | |||
|     {% endblock %}{% endblock %} | ||||
|   </h2> | ||||
| 
 | ||||
|   <div class='nahledy_cisel'> | ||||
|   <!-- <div class='nahledy_cisel'> | ||||
|     {% autoescape off %}{{ nahledy }}{% endautoescape %} | ||||
|   </div> | ||||
|   </div>--> | ||||
| 
 | ||||
|     {% for rocnik, url_png in object_list.items %} | ||||
| 
 | ||||
|     <div class="rocnik_pole"> | ||||
| 
 | ||||
|       <h3> | ||||
|       <a href='{{ rocnik.verejne_url }}'>Ročník {{ rocnik }}</a> | ||||
|       </h3> | ||||
| 
 | ||||
| 
 | ||||
|       {# karta ročníku - zepředu obrázek prvního čísla, zezadu odkaz na jednotlivá čísla a výsledkovku #} | ||||
| 
 | ||||
|       <div class="flip-card" id="archiv"> | ||||
| 
 | ||||
|       <div class="flip-card-inner"> | ||||
|         <div class="flip-card-front"> | ||||
| 
 | ||||
|       <div class="flip-card-foto"> | ||||
|         <img src="{{ url_png }}" height=200px alt="{{ rocnik }}"> | ||||
|       </div> | ||||
| 
 | ||||
|       </div> | ||||
|        <div class="flip-card-back"> | ||||
|       <div class="popis_rocniku"> | ||||
|         Jednotlivá čísla: | ||||
|         <ul> | ||||
|           {% for cislo in rocnik.cisla.all reversed %} | ||||
|           <li><a href='{{ cislo.verejne_url }}'>{{ cislo.poradi }}. číslo</a> {% if cislo.pdf %}(<a href='{{ cislo.pdf.url }}'>pdf</a>) {% endif %} | ||||
|           {% empty %} | ||||
|             --- | ||||
|           {% endfor %} | ||||
|           </ul> | ||||
|           <a href='{{ rocnik.verejne_url }}'>Výsledková listina</a> <!-- FIXME:  url výsledkovky--> | ||||
|       </div> | ||||
| 
 | ||||
|       </div> | ||||
|       </div> | ||||
|       </div> | ||||
| 
 | ||||
|       {# konec karty ročníku #} | ||||
| 
 | ||||
|     <hr> | ||||
|     </div> | ||||
| 
 | ||||
|   <ul> | ||||
|     {% for r in object_list %} | ||||
|     <li><a href='{{ r.verejne_url }}'>Ročník {{ r }}</a> | ||||
|     {% empty %} | ||||
|       Nejsou žádné ročníky | ||||
|     {% endfor %} | ||||
|   </ul> | ||||
| 
 | ||||
| </div> | ||||
| {% endblock content %} | ||||
| 
 | ||||
|  |  | |||
|  | @ -46,7 +46,7 @@ | |||
|           <li><a href="obalkovani">Obálkování</a></li> | ||||
|         </ul> | ||||
|       </div> | ||||
|   {% endif %}  | ||||
|   {% endif %} | ||||
| 
 | ||||
|   {% if cislo.verejna_vysledkovka %} | ||||
|   <h2>Výsledkovka</h2> | ||||
|  | @ -86,7 +86,7 @@ | |||
|       </tr> | ||||
|     {% endfor %} | ||||
|     </table> | ||||
|   {% endif %}  | ||||
|   {% endif %} | ||||
| 
 | ||||
|   {% if not cislo.verejna_vysledkovka and user.is_staff %} | ||||
|       </div> | ||||
|  | @ -94,4 +94,3 @@ | |||
| 
 | ||||
| </div>  | ||||
| {% endblock content %}  | ||||
| 
 | ||||
|  |  | |||
|  | @ -2,22 +2,11 @@ | |||
| 
 | ||||
| {% block content %} | ||||
| <div> | ||||
|   <h1> | ||||
|   <h2> | ||||
|     {% block nadpis1a %}{% block nadpis1b %} | ||||
|       Ročník {{ rocnik.roman }} | ||||
|       Ročník {{ rocnik }} | ||||
|     {% endblock %}{% endblock %} | ||||
|   </h1> | ||||
| 
 | ||||
|   <p>Ročník číslo {{ rocnik.rocnik }} ({{ rocnik.prvni_rok }}/{{ rocnik.druhy_rok }}) | ||||
| 
 | ||||
|   <ul> | ||||
|   {% for c in rocnik.verejna_cisla %} | ||||
|   <li><a href="{{ c.verejne_url }}">Číslo {{ c.kod }}</a> | ||||
|       {% if c.pdf %} | ||||
|         (<a href='{{ c.pdf.url }}'>pdf</a>) | ||||
|       {% endif %} | ||||
|   {% endfor %} | ||||
|   </ul> | ||||
|   </h2> | ||||
| 
 | ||||
|   {% if temata_v_rocniku %} | ||||
|     <h2>Témata</h2> | ||||
|  | @ -28,6 +17,15 @@ | |||
|     </ul> | ||||
|   {% endif %} | ||||
| 
 | ||||
|   <ul> | ||||
|   {% for c in rocnik.verejna_cisla %} | ||||
|   <li><a href="{{ c.verejne_url }}">Číslo {{ c.kod }}</a> | ||||
|       {% if c.pdf %} | ||||
|         (<a href='{{ c.pdf.url }}'>pdf</a>) | ||||
|       {% endif %} | ||||
|   {% endfor %} | ||||
|   </ul> | ||||
| 
 | ||||
|   {% if vysledkovka %} | ||||
|     {% if user.is_staff %} | ||||
|       <div class='mam-org-only'> | ||||
|  | @ -50,7 +48,3 @@ | |||
| 
 | ||||
| </div> | ||||
| {% endblock content %} | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -46,12 +46,12 @@ | |||
| 
 | ||||
|     {# karta organizátora - zepředu fotka, zezadu popis, u neaktivních data kdy organizovali #} | ||||
| 
 | ||||
|     <div class="flip-card"> | ||||
|     <div class="flip-card" id="organizatori"> | ||||
| 
 | ||||
|     <div class="flip-card-inner"> | ||||
|       <div class="flip-card-front"> | ||||
| 
 | ||||
|     <div class="foto_org"> | ||||
|     <div class="flip-card-foto"> | ||||
|     {% if org.osoba.foto %} | ||||
|       <a href="{{org.osoba.foto.url}}"><img src="{{org.osoba.foto_male.url}}" height="{{org.osoba.foto_male.height}}" alt="{{org.osoba.jmeno}} {{org.osoba.prijmeni}}"></a> | ||||
|     {% else %} {# pokud osoba nemá fotku, zobrazuje se defaultní obrázek #} | ||||
|  |  | |||
|  | @ -308,82 +308,137 @@ class ArchivView(generic.ListView): | |||
| 	def get_context_data(self, **kwargs): | ||||
| 		context = super(ArchivView, self).get_context_data(**kwargs) | ||||
| 
 | ||||
| 		vyska = 297  # px | ||||
| 		sirka = 210  # px | ||||
| 		vyska = 594  # px | ||||
| 		sirka = 420  # px | ||||
| 
 | ||||
| 		# nejnovějších 10 zveřejněných čísel | ||||
| 		# cisla = Cislo.objects.filter(verejne_db=True)[:10] | ||||
| 		cisla = Cislo.objects.filter(poradi=1)[:10]		 | ||||
| 		# první číslo z každého ročníku | ||||
| 		cisla = Cislo.objects.filter(poradi=1)	 | ||||
| 
 | ||||
| 		# op == os.path, udělá z argumentů cestu | ||||
| 		png_dir = op.join(settings.MEDIA_ROOT, "cislo", "png") | ||||
| 
 | ||||
| 		# seznam [(url obrázku, číslo)] | ||||
| 		urls = [] | ||||
| 		# slovník {(ročník, url obrázku)} | ||||
| 		urls ={} | ||||
| 
 | ||||
| 		for i, c in enumerate(cisla): | ||||
| 			if not c.pdf: | ||||
| 				continue | ||||
| 			filename = os.path.split(c.pdf.file.name)[1].split(".")[0] | ||||
| 			png_filename = "{}-{}px.png".format(filename, vyska) | ||||
| 		# for j, rocnik in enumerate(Rocnik.objects.all()): | ||||
| 		# 	urls_rocnik = {} | ||||
| 		# 	for i,c in enumerate(rocnik.cisla.all()): | ||||
| 		# 		if not c.pdf: | ||||
| 		# 			urls_rocnik[c.poradi] = op.join(settings.MEDIA_URL, "cislo", "png", "default.png") | ||||
| 		# 		else: | ||||
| 		# 			filename = os.path.split(c.pdf.file.name)[1].split(".")[0] | ||||
| 		# 			png_filename = "{}.png".format(filename) | ||||
| 
 | ||||
| 			# Pokud obrázek neexistuje nebo není aktuální, vytvoř jej | ||||
| 			png_path = op.join(png_dir, png_filename) | ||||
| 			if not op.exists(png_path) or \ | ||||
| 					op.getmtime(png_path) < op.getmtime(c.pdf.path): | ||||
| 		# 			# Pokud obrázek neexistuje nebo není aktuální, vytvoř jej | ||||
| 		# 			png_path = op.join(png_dir, png_filename) | ||||
| 		# 			if not op.exists(png_path) or \ | ||||
| 		# 					op.getmtime(png_path) < op.getmtime(c.pdf.path): | ||||
| 
 | ||||
| 				subprocess.call([ | ||||
| 					"convert", | ||||
| 					"-density", "300x300", | ||||
| 					"-geometry", "{}x{}".format(vyska, sirka), | ||||
| 					"-background", "white", | ||||
| 					"-flatten", | ||||
| 					"-rotate", str(90 * i), | ||||
| 					"{}[0]".format(c.pdf.path),  # titulní strana | ||||
| 					png_path | ||||
| 				]) | ||||
| 		# 				subprocess.call([ | ||||
| 		# 					"convert", | ||||
| 		# 					"-density", "300x300", | ||||
| 		# 					"-geometry", "{}x{}".format(vyska, sirka), | ||||
| 		# 					"-background", "white", | ||||
| 		# 					"-flatten", | ||||
| 		# 					"{}[0]".format(c.pdf.path),  # titulní strana | ||||
| 		# 					png_path | ||||
| 		# 				]) | ||||
| 
 | ||||
| 			urls.append( | ||||
| 				(op.join(settings.MEDIA_URL, "cislo", "png", png_filename), c) | ||||
| 			) | ||||
| 			vyska, sirka = sirka, vyska / 2 | ||||
| 		# 			urls_rocnik[c.poradi] = op.join(settings.MEDIA_URL, "cislo", "png", png_filename) | ||||
| 		# 	urls[rocnik] = urls_rocnik | ||||
| 		 | ||||
| 		for i,c in enumerate(cisla): | ||||
| 				if not c.pdf: | ||||
| 					urls[c.rocnik] = op.join(settings.MEDIA_URL, "cislo", "png", "default.png") | ||||
| 				else: | ||||
| 					filename = os.path.split(c.pdf.file.name)[1].split(".")[0] | ||||
| 					png_filename = "{}.png".format(filename) | ||||
| 
 | ||||
| 		tags = [] | ||||
| 					# Pokud obrázek neexistuje nebo není aktuální, vytvoř jej | ||||
| 					png_path = op.join(png_dir, png_filename) | ||||
| 					if not op.exists(png_path) or \ | ||||
| 							op.getmtime(png_path) < op.getmtime(c.pdf.path): | ||||
| 
 | ||||
| 		def spirala(urls, tags, idx): | ||||
| 			"""Rekurzivně prochází urls a generuje strom elementů do tags""" | ||||
| 			if idx >= len(urls): | ||||
| 				return | ||||
| 						subprocess.call([ | ||||
| 							"convert", | ||||
| 							"-density", "300x300", | ||||
| 							"-geometry", "{}x{}".format(vyska, sirka), | ||||
| 							"-background", "white", | ||||
| 							"-flatten", | ||||
| 							"{}[0]".format(c.pdf.path),  # titulní strana | ||||
| 							png_path | ||||
| 						]) | ||||
| 
 | ||||
| 			img_url, cislo = urls[idx] | ||||
| 			tags.append( | ||||
| 				"<div style='top:{}%;left:{}%;width:{}%;height:{}%;'>" | ||||
| 				.format( | ||||
| 					50 if idx % 4 == 2 else 0, | ||||
| 					50 if idx % 4 == 1 else 0, | ||||
| 					50 if idx % 2 == 1 else 100, | ||||
| 					50 if idx > 0 and idx % 2 == 0 else 100 | ||||
| 				) | ||||
| 			) | ||||
| 			tags.append("<a href='{}' title='{}'>".format( | ||||
| 				cislo.verejne_url(), cislo.kod() | ||||
| 			)) | ||||
| 			tags.append( | ||||
| 				"<img src='{}' style='top:{}%;left:{}%;width:{}%;height:{}%;'>" | ||||
| 				.format( | ||||
| 					img_url, | ||||
| 					50 if idx % 4 == 3 else 0, | ||||
| 					50 if idx % 4 == 2 else 0, | ||||
| 					50 if idx % 2 == 0 else 100, | ||||
| 					50 if idx % 2 == 1 else 100 | ||||
| 				) | ||||
| 			) | ||||
| 			tags.append("</a>") | ||||
| 			spirala(urls, tags, idx + 1) | ||||
| 			tags.append("</div>") | ||||
| 		spirala(urls, tags, 0) | ||||
| 					urls[c.rocnik] = op.join(settings.MEDIA_URL, "cislo", "png", png_filename) | ||||
| 
 | ||||
| 		context["nahledy"] = "\n".join(tags) | ||||
| 		context["object_list"] = urls | ||||
| 
 | ||||
| 		print(context) | ||||
| 
 | ||||
| 		# for i, c in enumerate(cisla): | ||||
| 		# 	if not c.pdf: | ||||
| 		# 		continue | ||||
| 		# 	filename = os.path.split(c.pdf.file.name)[1].split(".")[0] | ||||
| 		# 	png_filename = "{}-{}px.png".format(filename, vyska) | ||||
| 
 | ||||
| 		# 	# Pokud obrázek neexistuje nebo není aktuální, vytvoř jej | ||||
| 		# 	png_path = op.join(png_dir, png_filename) | ||||
| 		# 	if not op.exists(png_path) or \ | ||||
| 		# 			op.getmtime(png_path) < op.getmtime(c.pdf.path): | ||||
| 
 | ||||
| 		# 		subprocess.call([ | ||||
| 		# 			"convert", | ||||
| 		# 			"-density", "300x300", | ||||
| 		# 			"-geometry", "{}x{}".format(vyska, sirka), | ||||
| 		# 			"-background", "white", | ||||
| 		# 			"-flatten", | ||||
| 		# 			"-rotate", str(90 * i), | ||||
| 		# 			"{}[0]".format(c.pdf.path),  # titulní strana | ||||
| 		# 			png_path | ||||
| 		# 		]) | ||||
| 
 | ||||
| 		# 	urls.append( | ||||
| 		# 		(op.join(settings.MEDIA_URL, "cislo", "png", png_filename), c) | ||||
| 		# 	) | ||||
| 		# 	vyska, sirka = sirka, vyska / 2 | ||||
| 
 | ||||
| 		# tags = [] | ||||
| 
 | ||||
| 		# def spirala(urls, tags, idx): | ||||
| 		# 	"""Rekurzivně prochází urls a generuje strom elementů do tags""" | ||||
| 		# 	if idx >= len(urls): | ||||
| 		# 		return | ||||
| 
 | ||||
| 		# 	img_url, cislo = urls[idx] | ||||
| 		# 	tags.append( | ||||
| 		# 		"<div style='top:{}%;left:{}%;width:{}%;height:{}%;'>" | ||||
| 		# 		.format( | ||||
| 		# 			50 if idx % 4 == 2 else 0, | ||||
| 		# 			50 if idx % 4 == 1 else 0, | ||||
| 		# 			50 if idx % 2 == 1 else 100, | ||||
| 		# 			50 if idx > 0 and idx % 2 == 0 else 100 | ||||
| 		# 		) | ||||
| 		# 	) | ||||
| 		# 	tags.append("<a href='{}' title='{}'>".format( | ||||
| 		# 		cislo.verejne_url(), cislo.kod() | ||||
| 		# 	)) | ||||
| 		# 	tags.append( | ||||
| 		# 		"<img src='{}' style='top:{}%;left:{}%;width:{}%;height:{}%;'>" | ||||
| 		# 		.format( | ||||
| 		# 			img_url, | ||||
| 		# 			50 if idx % 4 == 3 else 0, | ||||
| 		# 			50 if idx % 4 == 2 else 0, | ||||
| 		# 			50 if idx % 2 == 0 else 100, | ||||
| 		# 			50 if idx % 2 == 1 else 100 | ||||
| 		# 		) | ||||
| 		# 	) | ||||
| 		# 	tags.append("</a>") | ||||
| 		# 	spirala(urls, tags, idx + 1) | ||||
| 		# 	tags.append("</div>") | ||||
| 		# spirala(urls, tags, 0) | ||||
| 
 | ||||
| 		# context["nahledy"] = "\n".join(tags) | ||||
| 		 | ||||
| 		return context | ||||
| 
 | ||||
| ### Výsledky | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Anet
						Anet