@ -13,8 +13,8 @@ from django.core.cache import cache
from imagekit . models import ImageSpecField , ProcessedImageField
from imagekit . models import ImageSpecField , ProcessedImageField
from imagekit . processors import ResizeToFit , Transpose
from imagekit . processors import ResizeToFit , Transpose
from PIL import Image
import os
import os
import subprocess
from cStringIO import StringIO
from cStringIO import StringIO
from django . core . files . base import ContentFile
from django . core . files . base import ContentFile
@ -26,12 +26,11 @@ import reversion
# PrilohaReseni method
# PrilohaReseni method
def generate_filename ( self , filename ) :
def generate_filename ( self , filename ) :
clean = filename . replace ( ' / ' , ' - ' ) . replace ( ' \0 ' , ' ' )
clean = filename . replace ( ' / ' , ' - ' ) . replace ( ' \0 ' , ' ' ) . replace ( " : " , " _ " )
datedir = timezone . now ( ) . strftime ( ' % Y- % m ' )
fname = " %s _ %s " % (
fname = " %s _ %s " % (
timezone . now ( ) . strftime ( ' % Y- % m- %d - % H: % M ' ) ,
timezone . now ( ) . strftime ( ' % Y- % m- %d - % H_ % M ' ) ,
clean )
clean )
return os . path . join ( settings . SEMINAR_RESENI_DIR , datedir , fname )
return os . path . join ( settings . KOREKTURY_PDF_DIR , fname )
#@reversion.register(ignore_duplicate_revision=True)
#@reversion.register(ignore_duplicate_revision=True)
@ -45,10 +44,40 @@ class KorekturovanePDF(models.Model):
#Interní ID
#Interní ID
id = models . AutoField ( primary_key = True )
id = models . AutoField ( primary_key = True )
cas = models . DateTimeField ( u ' čas vložení PDF ' , default = timezone . now , help_text = ' Čas vložení PDF ' )
nazev = models . CharField ( u ' název PDF ' , blank = True , max_length = 50 , help_text = ' Název (např. 22.1 verze 4) korekturovaného PDF ' )
komentar = models . TextField ( u ' komentář k PDF ' , blank = True , help_text = ' Komentář ke korekturovanému PDF (např. na co se zaměřit) ' )
pdf = models . FileField ( u ' pdf ' , upload_to = generate_filename )
pdf = models . FileField ( u ' pdf ' , upload_to = generate_filename )
stran = models . IntegerField ( u ' počet stran ' , help_text = ' Počet stran PDF ' , default = 0 )
#TODO Nepovinný foreign key k číslu
#TODO Nepovinný foreign key k číslu
def save ( self ) :
super ( KorekturovanePDF , self ) . save ( )
print ( " \n Saving " )
print ( self . pdf . path )
print ( self . pdf . url )
filename = os . path . split ( self . pdf . file . name ) [ 1 ] . split ( " . " ) [ 0 ]
try :
os . listdir ( settings . KOREKTURY_IMG_DIR )
except OSError :
os . mkdir ( settings . KOREKTURY_IMG_DIR )
while True :
res = subprocess . call ( [
" convert " ,
" -density " , " 180x180 " ,
" -geometry " , " 1024x1448 " ,
self . pdf . path + " [ %d ] " % self . stran ,
os . path . join ( settings . KOREKTURY_IMG_DIR , " %s - %d .png " % ( filename , self . stran ) ) ] )
if res == 1 :
break
self . stran + = 1
super ( KorekturovanePDF , self ) . save ( )
@reversion . register ( ignore_duplicate_revision = True )
@reversion . register ( ignore_duplicate_revision = True )
@ -63,7 +92,7 @@ class Oprava(models.Model):
#Interní ID
#Interní ID
id = models . AutoField ( primary_key = True )
id = models . AutoField ( primary_key = True )
#pdf = models.ForeignKey(KorekturovanePDF )
pdf = models . ForeignKey ( KorekturovanePDF , default = - 1 )
strana = models . IntegerField ( u ' strana s opravou ' , help_text = ' Strana s opravou (od 0) ' )
strana = models . IntegerField ( u ' strana s opravou ' , help_text = ' Strana s opravou (od 0) ' )
@ -83,7 +112,7 @@ class Oprava(models.Model):
# TODO: Změnit na cizí klíč do orgů
# TODO: Změnit na cizí klíč do orgů
autor = models . Text Field( u ' autor opravy ' , blank = True , help_text = ' Autor opravy ' )
autor = models . Char Field( u ' autor opravy ' , blank = True , max_length = 20 , help_text = ' Autor opravy ' )
text = models . TextField ( u ' text opravy ' , blank = True , help_text = ' Text opravy ' )
text = models . TextField ( u ' text opravy ' , blank = True , help_text = ' Text opravy ' )
@ -112,7 +141,7 @@ class Komentar(models.Model):
oprava = models . ForeignKey ( Oprava )
oprava = models . ForeignKey ( Oprava )
# TODO: Změnit na cizí klíč do orgů
# TODO: Změnit na cizí klíč do orgů
autor = models . Text Field( u ' autor komentáře ' , blank = True , help_text = ' Autor komentáře ' )
autor = models . Char Field( u ' autor komentáře ' , blank = True , max_length = 20 , help_text = ' Autor komentáře ' )
text = models . TextField ( u ' text komentáře ' , blank = True , help_text = ' Text komentáře ' )
text = models . TextField ( u ' text komentáře ' , blank = True , help_text = ' Text komentáře ' )