Fix uploading of compressed files
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from ast import literal_eval
|
||||
import logging
|
||||
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
@@ -28,6 +29,8 @@ from .literals import (SOURCE_CHOICES, SOURCE_CHOICES_PLURAL,
|
||||
SOURCE_UNCOMPRESS_CHOICE_Y)
|
||||
from .compressed_file import CompressedFile, NotACompressedFile
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class BaseModel(models.Model):
|
||||
title = models.CharField(max_length=64, verbose_name=_(u'title'))
|
||||
@@ -57,19 +60,26 @@ class BaseModel(models.Model):
|
||||
return SourceTransformation.transformations.get_for_object_as_list(self)
|
||||
|
||||
def upload_file(self, file_object, filename=None, use_file_name=False, document_type=None, expand=False, metadata_dict_list=None, user=None, document=None, new_version_data=None):
|
||||
is_compressed = None
|
||||
|
||||
if expand:
|
||||
try:
|
||||
cf = CompressedFile(file_object)
|
||||
for fp in cf.children():
|
||||
self.upload_single_file(fp, None, document_type, metadata_dict_list, user)
|
||||
self.upload_single_file(file_object=fp, filename=None, document_type=document_type, metadata_dict_list=metadata_dict_list, user=user)
|
||||
fp.close()
|
||||
|
||||
except NotACompressedFile:
|
||||
self.upload_single_file(file_object, filename, document_type, metadata_dict_list, user)
|
||||
is_compressed = False
|
||||
logging.debug('Exception: NotACompressedFile')
|
||||
self.upload_single_file(file_object=file_object, filename=filename, document_type=document_type, metadata_dict_list=metadata_dict_list, user=user)
|
||||
else:
|
||||
is_compressed = True
|
||||
else:
|
||||
self.upload_single_file(file_object, filename, use_file_name, document_type, metadata_dict_list, user, document, new_version_data)
|
||||
|
||||
file_object.close()
|
||||
return {'is_compressed': is_compressed}
|
||||
|
||||
@transaction.commit_on_success
|
||||
def upload_single_file(self, file_object, filename=None, use_file_name=False, document_type=None, metadata_dict_list=None, user=None, document=None, new_version_data=None):
|
||||
|
||||
Reference in New Issue
Block a user