@ -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 )