pokusy s archivem, pokouším se do kontextu k ročníku přidat cestu k png 1. čísla, teď to nefunguje
This commit is contained in:
		
							parent
							
								
									2a347d988f
								
							
						
					
					
						commit
						732a2273db
					
				
					 2 changed files with 94 additions and 60 deletions
				
			
		|  | @ -15,6 +15,7 @@ | ||||||
|   <ul> |   <ul> | ||||||
|     {% for r in object_list %} |     {% for r in object_list %} | ||||||
|     <li><a href='{{ r.verejne_url }}'>Ročník {{ r }}</a> |     <li><a href='{{ r.verejne_url }}'>Ročník {{ r }}</a> | ||||||
|  |       <img src="{{ object_list.r }}" alt=""> | ||||||
|     {% empty %} |     {% empty %} | ||||||
|       Nejsou žádné ročníky |       Nejsou žádné ročníky | ||||||
|     {% endfor %} |     {% endfor %} | ||||||
|  | @ -22,4 +23,3 @@ | ||||||
| 
 | 
 | ||||||
| </div> | </div> | ||||||
| {% endblock content %} | {% endblock content %} | ||||||
| 
 |  | ||||||
|  |  | ||||||
|  | @ -311,79 +311,113 @@ class ArchivView(generic.ListView): | ||||||
| 		vyska = 297  # px | 		vyska = 297  # px | ||||||
| 		sirka = 210  # px | 		sirka = 210  # px | ||||||
| 
 | 
 | ||||||
| 		# nejnovějších 10 zveřejněných čísel | 		# první číslo z každého ročníku | ||||||
| 		# cisla = Cislo.objects.filter(verejne_db=True)[:10] | 		cisla = Cislo.objects.filter(poradi=1)	 | ||||||
| 		cisla = Cislo.objects.filter(poradi=1)[:10]		 |  | ||||||
| 
 | 
 | ||||||
| 		# op == os.path, udělá z argumentů cestu | 		# op == os.path, udělá z argumentů cestu | ||||||
| 		png_dir = op.join(settings.MEDIA_ROOT, "cislo", "png") | 		png_dir = op.join(settings.MEDIA_ROOT, "cislo", "png") | ||||||
| 
 | 
 | ||||||
| 		# seznam [(url obrázku, číslo)] | 		# seznam [(url obrázku, číslo)] | ||||||
| 		urls = [] | 		urls ={} | ||||||
| 
 | 
 | ||||||
| 		for i, c in enumerate(cisla): | 		for i,c in enumerate(cisla): | ||||||
| 			if not c.pdf: | 			if not c.pdf: | ||||||
| 				continue | 				urls[c.rocnik] = op.join(settings.MEDIA_URL, "cislo", "png", "default.png") | ||||||
| 			filename = os.path.split(c.pdf.file.name)[1].split(".")[0] | 				# urls.append( | ||||||
| 			png_filename = "{}-{}px.png".format(filename, vyska) | 				# 	(op.join(settings.MEDIA_URL, "cislo", "png", "default.png"), c.rocnik) | ||||||
|  | 				# ) | ||||||
|  | 			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 | 				# Pokud obrázek neexistuje nebo není aktuální, vytvoř jej | ||||||
| 			png_path = op.join(png_dir, png_filename) | 				png_path = op.join(png_dir, png_filename) | ||||||
| 			if not op.exists(png_path) or \ | 				if not op.exists(png_path) or \ | ||||||
| 					op.getmtime(png_path) < op.getmtime(c.pdf.path): | 						op.getmtime(png_path) < op.getmtime(c.pdf.path): | ||||||
| 
 | 
 | ||||||
| 				subprocess.call([ | 					subprocess.call([ | ||||||
| 					"convert", | 						"convert", | ||||||
| 					"-density", "300x300", | 						"-density", "300x300", | ||||||
| 					"-geometry", "{}x{}".format(vyska, sirka), | 						"-geometry", "{}x{}".format(vyska, sirka), | ||||||
| 					"-background", "white", | 						"-background", "white", | ||||||
| 					"-flatten", | 						"-flatten", | ||||||
| 					"-rotate", str(90 * i), | 						"{}[0]".format(c.pdf.path),  # titulní strana | ||||||
| 					"{}[0]".format(c.pdf.path),  # titulní strana | 						png_path | ||||||
| 					png_path | 					]) | ||||||
| 				]) |  | ||||||
| 
 | 
 | ||||||
| 			urls.append( | 				urls[c.rocnik] = op.join(settings.MEDIA_URL, "cislo", "png", png_filename) | ||||||
| 				(op.join(settings.MEDIA_URL, "cislo", "png", png_filename), c) | 				#urls.append( | ||||||
| 			) | 					#(op.join(settings.MEDIA_URL, "cislo", "png", png_filename), c.rocnik) | ||||||
| 			vyska, sirka = sirka, vyska / 2 | 				#) | ||||||
| 
 | 
 | ||||||
| 		tags = [] | 		context["object_list"] = urls | ||||||
| 
 | 
 | ||||||
| 		def spirala(urls, tags, idx): | 		# for i, c in enumerate(cisla): | ||||||
| 			"""Rekurzivně prochází urls a generuje strom elementů do tags""" | 		# 	if not c.pdf: | ||||||
| 			if idx >= len(urls): | 		# 		continue | ||||||
| 				return | 		# 	filename = os.path.split(c.pdf.file.name)[1].split(".")[0] | ||||||
|  | 		# 	png_filename = "{}-{}px.png".format(filename, vyska) | ||||||
| 
 | 
 | ||||||
| 			img_url, cislo = urls[idx] | 		# 	# Pokud obrázek neexistuje nebo není aktuální, vytvoř jej | ||||||
| 			tags.append( | 		# 	png_path = op.join(png_dir, png_filename) | ||||||
| 				"<div style='top:{}%;left:{}%;width:{}%;height:{}%;'>" | 		# 	if not op.exists(png_path) or \ | ||||||
| 				.format( | 		# 			op.getmtime(png_path) < op.getmtime(c.pdf.path): | ||||||
| 					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) | 		# 		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) | ||||||
|  | 		print(context) | ||||||
|  | 		for i in context["object_list"]: | ||||||
|  | 			print(context["object_list"][i]) | ||||||
| 		return context | 		return context | ||||||
| 
 | 
 | ||||||
| ### Výsledky | ### Výsledky | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Kateřina Čížková
						Kateřina Čížková