Browse Source

pokusy s archivem, pokouším se do kontextu k ročníku přidat cestu k png 1. čísla, teď to nefunguje

middleware_test
Kateřina Čížková 5 years ago
parent
commit
732a2273db
  1. 2
      seminar/templates/seminar/archiv/cisla.html
  2. 166
      seminar/views/views_all.py

2
seminar/templates/seminar/archiv/cisla.html

@ -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 %}

166
seminar/views/views_all.py

@ -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)
# )
# Pokud obrázek neexistuje nebo není aktuální, vytvoř jej else:
png_path = op.join(png_dir, png_filename) filename = os.path.split(c.pdf.file.name)[1].split(".")[0]
if not op.exists(png_path) or \ png_filename = "{}.png".format(filename)
op.getmtime(png_path) < op.getmtime(c.pdf.path):
# Pokud obrázek neexistuje nebo není aktuální, vytvoř jej
subprocess.call([ png_path = op.join(png_dir, png_filename)
"convert", if not op.exists(png_path) or \
"-density", "300x300", op.getmtime(png_path) < op.getmtime(c.pdf.path):
"-geometry", "{}x{}".format(vyska, sirka),
"-background", "white", subprocess.call([
"-flatten", "convert",
"-rotate", str(90 * i), "-density", "300x300",
"{}[0]".format(c.pdf.path), # titulní strana "-geometry", "{}x{}".format(vyska, sirka),
png_path "-background", "white",
]) "-flatten",
"{}[0]".format(c.pdf.path), # titulní strana
urls.append( png_path
(op.join(settings.MEDIA_URL, "cislo", "png", png_filename), c) ])
)
vyska, sirka = sirka, vyska / 2 urls[c.rocnik] = op.join(settings.MEDIA_URL, "cislo", "png", png_filename)
#urls.append(
tags = [] #(op.join(settings.MEDIA_URL, "cislo", "png", png_filename), c.rocnik)
#)
def spirala(urls, tags, idx):
"""Rekurzivně prochází urls a generuje strom elementů do tags""" context["object_list"] = urls
if idx >= len(urls):
return # for i, c in enumerate(cisla):
# if not c.pdf:
img_url, cislo = urls[idx] # continue
tags.append( # filename = os.path.split(c.pdf.file.name)[1].split(".")[0]
"<div style='top:{}%;left:{}%;width:{}%;height:{}%;'>" # png_filename = "{}-{}px.png".format(filename, vyska)
.format(
50 if idx % 4 == 2 else 0, # # Pokud obrázek neexistuje nebo není aktuální, vytvoř jej
50 if idx % 4 == 1 else 0, # png_path = op.join(png_dir, png_filename)
50 if idx % 2 == 1 else 100, # if not op.exists(png_path) or \
50 if idx > 0 and idx % 2 == 0 else 100 # op.getmtime(png_path) < op.getmtime(c.pdf.path):
)
) # subprocess.call([
tags.append("<a href='{}' title='{}'>".format( # "convert",
cislo.verejne_url(), cislo.kod() # "-density", "300x300",
)) # "-geometry", "{}x{}".format(vyska, sirka),
tags.append( # "-background", "white",
"<img src='{}' style='top:{}%;left:{}%;width:{}%;height:{}%;'>" # "-flatten",
.format( # "-rotate", str(90 * i),
img_url, # "{}[0]".format(c.pdf.path), # titulní strana
50 if idx % 4 == 3 else 0, # png_path
50 if idx % 4 == 2 else 0, # ])
50 if idx % 2 == 0 else 100,
50 if idx % 2 == 1 else 100 # urls.append(
) # (op.join(settings.MEDIA_URL, "cislo", "png", png_filename), c)
) # )
tags.append("</a>") # vyska, sirka = sirka, vyska / 2
spirala(urls, tags, idx + 1)
tags.append("</div>") # tags = []
spirala(urls, tags, 0)
# def spirala(urls, tags, idx):
context["nahledy"] = "\n".join(tags) # """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…
Cancel
Save