request: accept jpg files

fixes #4027
This commit is contained in:
Benjamin Dauvergne 2014-01-23 15:17:02 +01:00
parent db9ff766f4
commit 28243bf147
3 changed files with 13 additions and 3 deletions

View File

@ -89,7 +89,7 @@ class DocumentUploadForm(BaseModelForm):
def __init__(self, *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.') % \
filesizeformat(app_settings.MAX_DOCUMENT_SIZE)

View File

@ -8,6 +8,8 @@ logger = logging.getLogger(__name__)
from pyPdf import PdfFileReader
from pyPdf.utils import PyPdfError
import magic
from ..base.models import Request
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."))
def fill_document_attributes_from_pdf_file(document, docfile):
if not docfile:
return
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:
pdf_file = PdfFileReader(docfile)
except:
@ -43,6 +49,9 @@ def fill_document_attributes_from_pdf_file(document, docfile):
titles = filter(None, [pdf_info.title, pdf_info.subject])
document.name = u' - '.join(titles)[:60]
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:
raise ValueError(N_(u"Vous ne pouvez envoyer que des fichiers PDF."))

View File

@ -13,3 +13,4 @@ django-ajax-selects==1.2.5
-f https://repos.entrouvert.org/python-entrouvert.git/
python-entrouvert
raven
python-magic