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