parent
db9ff766f4
commit
28243bf147
|
@ -89,7 +89,7 @@ class DocumentUploadForm(BaseModelForm):
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(DocumentUploadForm, self).__init__(*args, **kwargs)
|
super(DocumentUploadForm, self).__init__(*args, **kwargs)
|
||||||
self.fields['uploadfile'].label = _(u'Document, en format PDF')
|
self.fields['uploadfile'].label = _(u'Document')
|
||||||
self.fields['uploadfile'].help_text = _(u'Taille maximum autorisée: %s.') % \
|
self.fields['uploadfile'].help_text = _(u'Taille maximum autorisée: %s.') % \
|
||||||
filesizeformat(app_settings.MAX_DOCUMENT_SIZE)
|
filesizeformat(app_settings.MAX_DOCUMENT_SIZE)
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,8 @@ logger = logging.getLogger(__name__)
|
||||||
from pyPdf import PdfFileReader
|
from pyPdf import PdfFileReader
|
||||||
from pyPdf.utils import PyPdfError
|
from pyPdf.utils import PyPdfError
|
||||||
|
|
||||||
|
import magic
|
||||||
|
|
||||||
from ..base.models import Request
|
from ..base.models import Request
|
||||||
from ..utils import cache_to_django
|
from ..utils import cache_to_django
|
||||||
|
|
||||||
|
@ -27,9 +29,13 @@ def check_pdf(filelike):
|
||||||
raise ValueError(N_(u"Vous ne pouvez envoyer que des fichiers PDF."))
|
raise ValueError(N_(u"Vous ne pouvez envoyer que des fichiers PDF."))
|
||||||
|
|
||||||
def fill_document_attributes_from_pdf_file(document, docfile):
|
def fill_document_attributes_from_pdf_file(document, docfile):
|
||||||
|
if not docfile:
|
||||||
|
return
|
||||||
try:
|
try:
|
||||||
if docfile:
|
docfile.open()
|
||||||
docfile.open()
|
mime_type = magic.from_buffer(docfile.read(), mime=True)
|
||||||
|
docfile.seek(0)
|
||||||
|
if mime_type == 'application/pdf':
|
||||||
try:
|
try:
|
||||||
pdf_file = PdfFileReader(docfile)
|
pdf_file = PdfFileReader(docfile)
|
||||||
except:
|
except:
|
||||||
|
@ -43,6 +49,9 @@ def fill_document_attributes_from_pdf_file(document, docfile):
|
||||||
titles = filter(None, [pdf_info.title, pdf_info.subject])
|
titles = filter(None, [pdf_info.title, pdf_info.subject])
|
||||||
document.name = u' - '.join(titles)[:60]
|
document.name = u' - '.join(titles)[:60]
|
||||||
document.nb_pages = pdf_file.numPages or 0
|
document.nb_pages = pdf_file.numPages or 0
|
||||||
|
if mime_type == 'image/jpeg':
|
||||||
|
return
|
||||||
|
raise ValueError(N_(u"Ce type de fichier n'est pas accepté"))
|
||||||
except PyPdfError:
|
except PyPdfError:
|
||||||
raise ValueError(N_(u"Vous ne pouvez envoyer que des fichiers PDF."))
|
raise ValueError(N_(u"Vous ne pouvez envoyer que des fichiers PDF."))
|
||||||
|
|
||||||
|
|
|
@ -13,3 +13,4 @@ django-ajax-selects==1.2.5
|
||||||
-f https://repos.entrouvert.org/python-entrouvert.git/
|
-f https://repos.entrouvert.org/python-entrouvert.git/
|
||||||
python-entrouvert
|
python-entrouvert
|
||||||
raven
|
raven
|
||||||
|
python-magic
|
||||||
|
|
Reference in New Issue