Browse Source

Korektury: oprav problém s konfliktem jmen png

Jméno png záviselo jen na čase nahrání pdf s přesností na minuty a části
jména pdf do první tečky. Nyní na čase a celém jméně nahrávaného pdf.

Z KorekturovanePDF.save() vyčleněn convert().
remotes/origin/test
Matěj Kocián 7 years ago
parent
commit
9572515cea
  1. 39
      korektury/models.py
  2. 2
      korektury/templates/korektury/opraf.html
  3. 2
      korektury/views.py

39
korektury/models.py

@ -69,33 +69,48 @@ class KorekturovanePDF(models.Model):
#TODO Nepovinný foreign key k číslu
def save(self):
# Pokud se nezmenilo PDF, tak nepregenerovavej nahledy
try:
original = KorekturovanePDF.objects.get(pk=self.pk)
if original.pdf == self.pdf:
super(KorekturovanePDF, self).save()
return
except ObjectDoesNotExist:
pass
super(KorekturovanePDF, self).save()
filename = os.path.split(self.pdf.file.name)[1].split(".")[0]
def get_prefix(self):
"""Vrať řetězec, ke kterému se připojí číslo a .png"""
# vrátíme jméno souboru bez cesty
return os.path.basename(self.pdf.file.name)
def convert(self):
"""Vytvoří jedno png za každou stranu pdf a uloží se"""
dirname = os.path.join(settings.MEDIA_ROOT, settings.KOREKTURY_IMG_DIR)
if not os.path.exists(dirname):
os.mkdir(dirname)
self.stran = 0
while True:
res = subprocess.call([
"convert",
"-density", "180x180",
"-geometry", " 1024x1448",
"%s[%d]" % (self.pdf.path, self.stran),
os.path.join(dirname, "%s-%d.png" % (filename, self.stran))
os.path.join(
dirname,
"%s-%d.png" % (self.get_prefix(), self.stran)
)
])
if res == 1:
break
self.stran += 1
# Změnil se počet stran, ukládáme
super(KorekturovanePDF, self).save()
def save(self):
# Pokud se nezmenilo PDF, tak nepregenerovavej nahledy
try:
original = KorekturovanePDF.objects.get(pk=self.pk)
if original.pdf == self.pdf:
super(KorekturovanePDF, self).save()
return
except ObjectDoesNotExist:
pass
# uložíme nahrávané pdf
super(KorekturovanePDF, self).save()
# uložíme png a změněný počet stran
self.convert()
@reversion.register(ignore_duplicate_revision=True)

2
korektury/templates/korektury/opraf.html

@ -47,7 +47,7 @@
<div class='imgdiv'>
<img width='1021' height='1448'
onclick='img_click(this,event)' id='img-{{i}}'
src='/media/korektury/img/{{img_name}}-{{i}}.png'/>
src='/media/korektury/img/{{img_prefix}}-{{i}}.png'/>
</div>
<hr/>
{% endfor %}

2
korektury/views.py

@ -167,7 +167,7 @@ class KorekturyView(generic.TemplateView):
context = super(KorekturyView,self).get_context_data(**kwargs)
pdf = get_object_or_404(KorekturovanePDF, id=self.kwargs['pdf'])
context['pdf'] = pdf
context['img_name'] = os.path.split(pdf.pdf.path)[1].split('.')[0]
context['img_prefix'] = pdf.get_prefix()
context['img_path'] = settings.KOREKTURY_IMG_DIR
context['img_indexes'] = range(pdf.stran)
context['form_oprava'] = OpravaForm()

Loading…
Cancel
Save