diff --git a/apps/sources/models.py b/apps/sources/models.py index 77830f86a9..5f7cbeccd6 100644 --- a/apps/sources/models.py +++ b/apps/sources/models.py @@ -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):