diff --git a/korektury/models.py b/korektury/models.py index 70d57e08..92c6bf41 100644 --- a/korektury/models.py +++ b/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: + if res == 1: break - self.stran +=1 + 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) diff --git a/korektury/templates/korektury/opraf.html b/korektury/templates/korektury/opraf.html index 7c013e42..a91d58b4 100644 --- a/korektury/templates/korektury/opraf.html +++ b/korektury/templates/korektury/opraf.html @@ -47,7 +47,7 @@